我正在构建一个需要从用户手机获取高精度位置的移动网站。我使用 HTML5 Geolocation .watchPosition 函数和enableHighAccuracy: true。
在 IOS 设备上进行测试时,代码强制 GPS 打开并返回高精度数据 (4m),但是当我尝试使用 MotoX (kitkat) 和 Nexus 5 时,位置符号不会出现在手机顶部栏和精度返回值很低(100m)。
我还注意到,即使是 www.maps.google.com 也无法初始化我手机的 GPS(仅使用从 wifi+网络推断的位置),尽管所有本地应用程序(包括 Google 地图应用程序)都可以使用它和我手机的定位模式设置为“高精度”。
我在以下打开和关闭 wifi 的 Android 浏览器上对此进行了测试,结果相同:-Chrome、-Opera Classic -Opera -Dolphin
我的 JS 康德:
navigator.geolocation.watchPosition(success,fail,
{ enableHighAccuracy: true,
//timeout: 100000,
//maximumAge: 0
});
成功函数为:
function success(pos) {// Location was found
//set global variables with coordinates
globalLat=pos.coords.latitude;
globalLng=pos.coords.longitude;
$("#precision").html=pos.coords.accuracy;
alert(pos.coords.accuracy);
//create google location from coordinates
latlng=new google.maps.LatLng(globalLat, globalLng);
//send location to server and get response every 6 seconds;
setInterval(function(){SendAndGetLocation();}, 6000);
//create map or update it's center in case it was already created
if(googleMap===undefined){
createMap();
}else{
googleMap.setCenter(latlng);
}
//Draw user's location on map
drawLocalMarker(globalLat, globalLng);
}
谁能想到会发生什么?
干杯