我的应用程序中有以下代码:
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 }
);
出于某种原因,我使用上述代码在我的应用程序中获得的位置与 native map 应用程序(即 iOS map )中显示的位置非常不同(100 米,有时 1 公里或更多)。为什么是这样?
在没有 Wifi 且我在室内的地方,这个问题尤其严重。例如,最近在机场,我在原生 map 应用程序中的位置非常准确;我位于正确的航站楼 - 但是当我打开我的应用程序并在几分钟内多次刷新它时,该位置并不靠近我所在的航站楼,实际上我离机场大约 1 公里。
我需要做什么才能至少获得 native 应用能够获得的地理位置?
最佳答案
我之前多次遇到这个问题 - 即使您将 enableHighAccuracy
设置为 true
,您也无能为力。这是 HTML5 地理定位方法的问题。打开 wifi 和蓝牙可以提高准确性,但您不能保证用户每次都会这样做。
祝你好运。
关于javascript - Cordova 5.2.x 地理定位不准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43374897/