如何使用Android手机上的本地Google Maps .html文件平移到当前位置?

如何解决如何使用Android手机上的本地Google Maps .html文件平移到当前位置?

目标是在Android手机上拥有一个本地.html文件,该文件可以通过标准的网络浏览器打开,该浏览器具有可平移至Google Maps当前位置的功能。目前,平移到当前位置可以在Android手机上的mi浏览器上运行,但最终用户希望它可以在标准网络浏览器(例如Chrome)上运行。

预期结果:顶部的“平移到当前位置”按钮将Google Map平移到手机的当前位置。 实际结果:在chrome,firefox,边缘网络浏览器上,可以打开html文件,但是按钮无法平移到手机上的当前位置。在笔记本电脑的Chrome浏览器中,按钮会平移到当前位置。在Android手机上的mi浏览器(来自Xiaomi)上,按钮会响应并平移到当前位置。

由于我是HTML / JS的初学者,所以我不知道该错误是否可以在代码解决,也可以通过Web浏览器中的设置解决。最好有一种方法可以查看具有“ pan to current location”功能的Android手机上的本地html,并了解为什么它不起作用。

如果您要运行代码,则应检索Google Maps API密钥。这是示例代码

<!DOCTYPE html>
<html>
  <head>
    <Meta name="viewport" content="initial-scale=1.0,user-scalable=no" />
    <style type="text/css">
      html { height: 100% }
      body { height: 100%; margin: 0; padding: 0 }
      #map-canvas { height: 100% }
    </style>
    <script type="text/javascript"
      src="https://maps.googleapis.com/maps/api/js?key={GOOGLE_MAPS_API_KEY}&sensor=true">
    </script>
    <script type="text/javascript">

function initialize() {

var mapOptions = {
    zoom: 15,center: new google.maps.LatLng(51.924003,4.4601963),mapTypeId: google.maps.MapTypeId.HYBRID }
var map = new google.maps.Map(document.getElementById('map-canvas'),mapOptions);
infoWindow = new google.maps.InfoWindow();
const locationButton = document.createElement("button");
  locationButton.textContent = "Pan to Current Location";
  locationButton.classList.add("custom-map-control-button");
  map.controls[google.maps.ControlPosition.TOP_CENTER].push(locationButton);
  locationButton.addEventListener("click",() => {
    // Try HTML5 geolocation.
    if (navigator.geolocation) {
      navigator.geolocation.getCurrentPosition(
        (position) => {
          const pos = {
            lat: position.coords.latitude,lng: position.coords.longitude,};
          infoWindow.setPosition(pos);
          infoWindow.setContent("Location found.");
          infoWindow.open(map);
          map.setCenter(pos);
        },() => {
          handleLocationError(true,infoWindow,map.getCenter());
        }
      );
    } else {
      // browser doesn't support Geolocation
      handleLocationError(false,map.getCenter());
    }
  });

}

google.maps.event.addDomListener(window,'load',initialize);
    </script>
  </head>
  <body>
  <div id="map-canvas"/>
  </body>
</html>

解决方法

当前的解决方案是.html通过Azure作为网站发布。该网站可以通过浏览器在电话上访问,并且具有“平移到当前位置”功能。

javascript代码无法通过电话上的本地.html文件运行的最可能的原因是在处理本地html / javascript时电话上的浏览器的安全性。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?