Ionic/Capacitor 的 Ionic4 watchPosition 和 getCurrentPosition 不准确
Ionic4 watchPosition and getCurrentPosition of Geolocation not accurate with Ionic/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])
});
}
Marker 正在疯狂地转来转去。发生在我测试它的每个位置。它不是在移动厘米,而是在我所在位置周围移动米...
我错过了什么让我的 GPS 坐标不太准确?我以为 enableHighAccuracy: true
就够了,但事实并非如此。
可以从不同的位置提供者返回位置信息:卫星、网络、被动。为获得最佳结果,您应该放弃网络和被动提供商提供的位置。
据我所知,现代位置 api 不区分提供商(参见融合位置),但您始终可以检查 coords.accuracy
以大致了解位置的准确性。
如果通过卫星对位置进行三角测量,则准确度始终最佳。通常 低于 16(以米为单位),但绝对 低于 30。您可以安全地丢弃精度高于该值的坐标。
我正在使用 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])
});
}
Marker 正在疯狂地转来转去。发生在我测试它的每个位置。它不是在移动厘米,而是在我所在位置周围移动米...
我错过了什么让我的 GPS 坐标不太准确?我以为 enableHighAccuracy: true
就够了,但事实并非如此。
可以从不同的位置提供者返回位置信息:卫星、网络、被动。为获得最佳结果,您应该放弃网络和被动提供商提供的位置。
据我所知,现代位置 api 不区分提供商(参见融合位置),但您始终可以检查 coords.accuracy
以大致了解位置的准确性。
如果通过卫星对位置进行三角测量,则准确度始终最佳。通常 低于 16(以米为单位),但绝对 低于 30。您可以安全地丢弃精度高于该值的坐标。