use*_*734 7 cordova ionic-framework ionic-native ionic4 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])
});
}
Run Code Online (Sandbox Code Playgroud)
标记像疯了一样四处走动。发生在我测试的每个位置。它移动的不是厘米,而是我所在位置周围的数米...
我错过了什么让我的 GPS 坐标不太准确?我以为enableHighAccuracy: true够了,但还不够。
位置信息可以从不同的位置提供者返回:卫星、网络、无源。为了获得最佳结果,您应该放弃网络和无源提供商提供的位置。
据我所知,现代位置 api 不区分提供商(参见融合位置),但您始终可以检查coords.accuracy以获取位置准确性的概述。
如果通过卫星对位置进行三角测量,则精度始终是最好的。通常低于 16(以米为单位),但绝对低于 30。您可以安全地丢弃精度高于该值的坐标。
| 归档时间: |
|
| 查看次数: |
3119 次 |
| 最近记录: |