Javascript Google Maps API在Web浏览器中加载,但不在Android浏览器中加载

时间:2014-11-06 04:09:41

标签: javascript android api google-chrome maps

我无法理解为什么这不会在我的移动浏览器上运行,但它会在我的PC浏览器上运行,确切地说是chrome。

你们中的任何人都可以提供反馈。

链接到我正在测试的服务器:

  

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数据,它就停止在移动设备的浏览器上工作了。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:1)

navigator.geolocation.getCurrentPosition不返回位置。因此,您不能将该结果用作addDomListener的参数(window,...

它的作用是发送请求。当该请求准备就绪时,将触发回调。在该回调中,您可以触发函数成功()(我将其命名为初始化)。


只是为了表明发生了什么。 您仍然可以选择这是否是一种好的方法。 随意重命名,扩展,......

<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