谷歌的Javascript地图API加载在Web浏览器而不是Android浏览器(Javascrip

2019-10-21 05:33发布

我无能,为什么这不会对我的移动浏览器上运行,但它会在我的PC浏览器上运行,铬是准确的。

可以在任何你提供反馈。

链接到我在测试这个服务器:

54.172.35.180/chat/chatlist.php

<script type="text/javascript">

    function success(position) {

      var latlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
      var myOptions = {
        zoom: 15,
        center: latlng,
      };
      var map = new google.maps.Map(document.getElementById("map-canvas"), myOptions);

      var marker = new google.maps.Marker({
          position: latlng, 
          map: map, 
          title:"You are here! (at least within a "+position.coords.accuracy+" meter radius)"
      });
    }

    google.maps.event.addDomListener(window, 'load', navigator.geolocation.getCurrentPosition(success));

</script>

我原本只是复制和粘贴来自API的网站上的代码,它工作得很好,但只要我开始拉GPS数据就停止对我的移动设备浏览器的工作。 任何帮助,将不胜感激。

Answer 1:

navigator.geolocation.getCurrentPosition不返回的位置。 所以,你不能使用的结果但addDomListener(窗口的参数,...

它所做的,是发送一个请求。 当该请求已准备就绪,一个回调triggerd。 在这种回调,你可以触发你的函数成功()(我把它命名为初始化)。


只是为了显示这是怎么回事。 您仍然可以选择,如果这是进行一个很好的方式。 随意命名,扩展,...

<script src="http://maps.googleapis.com/maps/api/js"></script>
<script type="text/javascript">
    function initialize(position, accuracy) {
      var latlng = position || new google.maps.LatLng(50.45, 4.45);    // set your own default location.  This gets called if the parameters are left blank.
      var myOptions = {
        zoom: 15,
        center: latlng
      };
      var map = new google.maps.Map(document.getElementById("map-canvas"), myOptions);
      if (position) {
        var marker = new google.maps.Marker({
            position: latlng, 
            map: map, 
            title: "You are here! (at least within a " + accuracy + " meter radius)"
        });
      }
      else {
        // position of the user not found
      }
    }
    function locationFound(position) {
      initialize( 
        new google.maps.LatLng(position.coords.latitude, position.coords.longitude),
        position.coords.accuracy
      );
    }
    function locationNotFound() {
      initialize(null, null);
    }
    function page_loaded() {
      // the page is loaded, we can send a request to search for the location of the user
      navigator.geolocation.getCurrentPosition(locationFound, locationNotFound);
    }
    google.maps.event.addDomListener(window, 'load', page_loaded);
</script>
<style>
#map-canvas {
  width: 500px;
  height: 400px;
}
</style>
<div id="map-canvas"></div>

也许这是一个更好的主意先加载地图,并设置一个默认位置。 当位置被发现,你改变了中心,并设置标志。 现在请注意:如果没有找到位置,它需要locationNotFound调用之前相当长的一段时间



文章来源: Javascript Google Maps API loading in Web Browser but not Android Browser