Google地理位置无法在移动浏览器中使用

时间:2013-08-16 08:33:29

标签: geolocation google-geocoding-api

来自谷歌的标准地理位置代码无法在移动浏览器中使用(Android Chrome,标准Android浏览器):

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Reverse Geocoding</title>

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
  var geocoder;

  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(successFunction, errorFunction, {enableHighAccuracy: true});
}
//Get the latitude and the longitude;
function successFunction(position) {
    var lat = position.coords.latitude;
    var lng = position.coords.longitude;
    codeLatLng(lat, lng)
}

function errorFunction(){
    alert("Geocoder failed");
}

  function initialize() {
    geocoder = new google.maps.Geocoder();



  }

  function codeLatLng(lat, lng) {

    var latlng = new google.maps.LatLng(lat, lng);
    geocoder.geocode({'latLng': latlng}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
      console.log(results)
        if (results[1]) {
         //formatted address
         alert(results[2].address_components[0].long_name) 

        } else {
          alert("No results found");
        }
      } else {
        alert("Geocoder failed due to: " + status);
      }
    });
  }
</script>
</head>
<body onload="initialize()">

</body>
</html>

但是在桌面浏览器中它工作得很好......为什么?我确定代码几天前已经运行了。我什么都没改变。谷歌有可能改变了他们的代码吗?

编辑:对我来说,获取GPS,WLAN和位置非常重要!移动网络

1 个答案:

答案 0 :(得分:1)

尝试将 sensor 参数更改为true,如下所示。

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=true"></script>

浏览Google maps API的 Geolocation documentation

  

指定传感器参数

     

使用Google Maps API需要您指明是否   应用程序正在使用传感器(如GPS定位器)来确定   用户的位置。这对于移动设备来说非常重要。   应用程序必须将所需的传感器参数传递给标记   当包含Maps API javascript代码时,指示是否   您的应用程序正在使用传感器设备。

     

通过传感器确定用户位置的应用程序必须通过   加载Maps API JavaScript时,sensor = true。

希望你明白。