Google Maps Javascript API v3地图显示在桌面浏览器上,但不会显示在移动浏览器上

时间:2015-03-05 23:25:09

标签: javascript jquery google-maps-api-3 google-maps-markers

我正在开发一个使用Google Maps Javascript API v3显示地图的应用,它会在我的桌面浏览器上显示它应该的方式,但它不在我的手机上#&#t 39;浏览器。

所以,我已经检查了这个:My Google Map javascript code displays on desktop browser but not my mobile phone browser

而且:Javascript Google Maps API loading in Web Browser but not Android Browser

这是我能找到的关于我的问题的所有内容,但是这两个都有类似的问题,即他们将navigator.geolocation.getCurrentPosition()作为参数传递给他们的初始化函数或类似的东西,而不是传递初始化为getCurrentPosition()的回调。我也看到有人因为他们在文档加载之前要求当前位置而导致同样的问题,这也不是我的问题,因为我从jQuery调用了getCurrentPosition()&# 39; s $(文件).ready()。

这是我的代码,非常感谢任何帮助:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>        
    <script type="text/javascript" 
            src="http://maps.googleapis.com/maps/api/js?sensor=true">            
    </script>
<script type="text/javascript">
  function initialize(location) {
      console.log(location);
    var currentLocation= new google.maps.LatLng(location.coords.latitude, location.coords.longitude);
    var mapOptions = {            
      center: currentLocation,
      zoom: 17,
      disableDefaultUI:true,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"), 
       mapOptions);
    var marker= new google.maps.Marker({
        position:currentLocation,
        map: map
    });
  }    

  $(document).ready(function(){
     navigator.geolocation.getCurrentPosition(initialize);
  });
</script>

1 个答案:

答案 0 :(得分:1)

在使用navigator.geolocation时,我也遇到了同样的问题,该问题似乎可以在PC上正常运行。我尝试在手机上访问它,但一直显示错误。 我终于通过在移动设备上访问的地址添加https://来解决此问题。即使您的网站上没有SSL,只需在网址中添加https://,一切都会好起来的。