我认为,显示用户当前位置使用谷歌地图和路由到他的扩张。
问题是:用户的位置大部分时间都是不方便的,我不能把这样的应用程序放在Appstore里,它会得到不好的评论。
我检查了谷歌sdk的IOS,有没有任何属性的准确性!?喜欢:self.googleMap.accuracy = bestForNavigation
是否有任何调整或属性来设置,以提高用户的定位精度?
在Appstore上的地图应用程序是如何像google应用那样精确地显示用户位置的?
发布于 2013-11-13 08:58:15
在CoreLocationManager
中,可以将desiredAccuracy
设置为kCLLocationAccuracyBestForNavigation
。然而,GPS仍然是不完美的,根据信号质量、天景(峡谷、城市)等,你可以从GPS获得5到100米的精度。
另一个要注意的错误来源,请确保您的GPS数据与地图和道路网数据位于相同的基准(即: WGS-84)中。不同的数据可以添加小错误(或大错误)。
为了弥补固有的GPS和地图错误,大多数逐转导航应用程序使用我们所称的“快速到达道路”。我们计算用户附近的道路,如果全球定位系统的位置在距离道路30米以内(见note1),而航向(或航向,note2)在+/- 25度范围内,那么我们就“快速”到了道路上。这意味着我们更改显示的位置点的位置和方向,以便显示用户确实在道路上(从GPS点计算道路上最近的点)和沿着道路路径的方向(选择最近的道路方向)。这需要详细的道路几何数据,包括曲线和一些有趣的计算,但它真的很好,一旦你得到它。
如果它们离道路更远,或者与道路的方向不对齐,那么我们将显示它们的实际GPS位置。这真的很好,但它要求您有可用的道路网络几何(或至少他们的路线到目的地几何),以便您可以进行这些检查。
Note1:我们根据报告的horizontalAccuracy
从我们得到的CLLocation
中选择一个公差。
Note2:我们将指南针的航向(校正)和航向(来自全球定位系统)混合在一起,以确定用户的实际航向。在每小时8公里以下,我们主要使用指南针航向,上面我们主要使用GPS航向(它更精确)。我们还用GPS航向来确定指南针的误差来改正它。这使我们可以显示准确的标题,即使在一个灯或非常慢的停车场速度停下来。
发布于 2013-11-13 07:20:22
全球定位系统的精度是有限度的。
如果一个应用程序能够访问底层地图数据,并且假设该位置应该在一条道路上,那么它可能会伪造用户的位置。但如果我把车停在路边或者没有停在车里呢。
Fro:gps.gov:全球定位系统在太空中的信号将在95%的置信度下提供7.8米的“最坏情况”伪距精度。
但接收机有可能做得比这更好,特别是如果它们是静止的。在平稳情况下,平均位置可以提供很大的帮助,但是设备必须知道它是平稳的。接收者也有可能做得更糟。所以,10到20米可能是一个安全的假设。
https://stackoverflow.com/questions/19955800
复制相似问题