Ionic4 watchPosition和getCurrentPosition的地理位置与Ionic /电容器不准确

时间:2019-06-03 18:46:48

标签: cordova ionic-framework ionic4 ionic-native capacitor

我正在使用Capacitor构建我的Ionic应用。 我当然想通过GPS在地图上显示当前位置。

以下代码可以正常工作,并且可以根据需要在地图上为我提供正确的标记,但是。

async getLocation() {
    var self = this;
    let location = await Geolocation.getCurrentPosition({
        enableHighAccuracy: true,
        timeout: 1000
    });
    self.marker.setLngLat([location.coords.longitude, location.coords.latitude])
    const wait = Geolocation.watchPosition({enableHighAccuracy: true, timeout: 1000}, (position, err) => {
        self.marker.setLngLat([position.coords.longitude, position.coords.latitude])
    });
}

标记在发疯。发生在我对其进行测试的每个位置。它不是在移动厘米,而是在我所在的位置移动了几米...

我缺少什么让我获得的GPS坐标精度不高?我以为enableHighAccuracy: true就足够了,不是吗。

1 个答案:

答案 0 :(得分:2)

可以从不同的位置提供者返回位置信息:卫星,网络,无源。为了获得最佳结果,您应该丢弃由网络和被动提供商提供的位置。

据我所知,现代位置api不能区分提供程序(参见融合位置),但是您始终可以检查coords.accuracy以获得位置准确性的概述。

如果通过卫星对位置进行三角测量,则精度始终是最佳的。通常低于16 (以米为单位),但肯定低于30 。您可以安全地丢弃精度更高的坐标。