科尔多瓦地理定位错误的坐标

Posted

技术标签:

【中文标题】科尔多瓦地理定位错误的坐标【英文标题】:Cordova Geolocation Wrong Coordinates 【发布时间】:2017-03-18 20:30:41 【问题描述】:

我正在编写一个应用程序来跟踪当前位置并使用 google.maps.Polyline 绘制它。 问题是即使停止,当前位置也会发生变化。直走时也会发生这种情况。像这样:

这是代码:

var watchOptions =  timeout: 1000, enableHighAccuracy: false // get the same behaviour with 'true' ;

var track = []; // coordinates to draw with Polyline

watch = $cordovaGeolocation.watchPosition(watchOptions);

changeMarker(myMarker, latLng);

watch.then(
  null,
  function(err) 
    console.log(err);
  ,
  function(position) 
    var latLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);

    // push current position to array
    track.push( lat: position.coords.latitude, lng: position.coords.longitude);

var trackPath = new google.maps.Polyline(
      path: track,  // pass coordinates
      strokeColor: "#2980b9",
      geodesic: true,
      strokeOpacity: 1.0,
      strokeWeight: 2
    );

    // draw on map
    trackPath.setMap($scope.map);

【问题讨论】:

【参考方案1】:

首先,设置enableHighAccuracy: false 将使用低精度网络三角测量,而enableHighAccuracy: true 将使用 GPS 硬件。对于导航(例如步行),您应该始终将其设置为 true。

即使这样,GPS 位置也不准确,也会出现一些错误 - 多少取决于许多因素,例如设备中的 GPS 硬件、天空的任何遮挡(例如树木、建筑物)以及有多少卫星被锁住了。

为了能够频繁发送高精度位置,我建议设置如下:


  enableHighAccuracy: true,
  maxAge: 0,
  timeout: 30000

【讨论】:

使用 wi-fi 时,位置比使用蜂窝数据更准确。有没有办法防止坐标错误? 应该有一个position.coords.accuracy 值,表示以米为单位的近似精度。对于蜂窝数据,此值会更高,因此您可以使用它来忽略过于不准确的位置,即if(position.coords.accuracy > 50) return console.log("Ignoring position as it's too inaccurate") 嘿@DaveAlden 您在评论行中回答了兄弟,我使用的是相同的配置,但这不是问题,因为我看到了您的评论并为该准确性设定了门槛,我的问题解决了。谢谢。

以上是关于科尔多瓦地理定位错误的坐标的主要内容,如果未能解决你的问题,请参考以下文章

科尔多瓦后台地理定位支持,一段时间后没有应用程序终止

科尔多瓦地理定位不准确

地理定位不适用于科尔多瓦

科尔多瓦地理定位精度上限为 10 米

谷歌地图科尔多瓦地理定位API不起作用

科尔多瓦地理定位不会立即观看或获取当前位置