我的应用中有以下代码:
var geo = { lat: 0, lon: 0 };
navigator.geolocation.getCurrentPosition(
function( position ) {
// set global vars
geo.lat = position.coords.latitude;
geo.lon = position.coords.longitude;
},
function( error ) {
// handle error
geolocationError( error );
},
{ maximumAge: 3000, timeout: 5000, enableHighAccuracy: true }
);
出于这样或那样的原因,我使用上述代码在我的应用程序中获得的位置与本机地图应用程序(即iOS地图)中显示的位置非常不同(100米,有时是1KM或更多)。为什么是这样?
在没有Wifi且我在室内的地方,这是一个特别的问题。例如,最近在机场,我在原生地图应用程序中的位置非常准确;我被安置在正确的终端 - 但是当我打开我的应用程序并在几分钟内多次刷新时,位置不在我所在的终端附近,实际上距离机场约1KM。
我至少需要做些什么才能获得原生应用能够获得的地理定位?
答案 0 :(得分:1)
之前我曾多次遇到过这个问题 - 即使您将enableHighAccuracy
设置为true
,也无法真正做到这一点。这是HTML5地理定位方法的一个问题。打开wifi和蓝牙可以提高准确性,但是你不能保证用户每次都会这样做。
祝你好运。