1

来自 google 的标准地理位置代码在移动浏览器(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 和 获得位置对我来说很重要!移动网络

4

1 回答 1

1

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

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

浏览Google maps API 的Geolocation 文档

指定传感器参数

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

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

希望你能理解。

于 2013-08-16T08:42:26.473 回答