5

我已经查看了使用谷歌地图显示用户当前位置和路线到他的扩张。

问题:用户位置大部分时间都在路边,我不能把这样的应用放在Appstore,它会得到差评。

我检查了 google sdk 的 IOS,是否有任何准确性的属性!?喜欢:self.googleMap.accuracy = bestForNavigation

是否有任何调整或属性可以提高用户位置的准确性?

Appstore 上的地图应用如何像谷歌应用一样准确地显示用户位置? 在此处输入图像描述

4

2 回答 2

8

CoreLocationManager您可以设置desiredAccuracykCLLocationAccuracyBestForNavigation。然而,GPS 仍然从来都不是完美的,根据信号质量、天空视图(峡谷、城市)等,您可能会从 GPS 获得 5 到 100m 的精度。

另一个需要注意的错误来源,确保您的 GPS 数据与地图和道路网络数据位于相同的数据中(即:WGS-84)。不同的基准会增加小(或大)误差。

为了补偿固有的 GPS 和地图绘制误差,大多数转弯导航应用程序都使用我们所说的“snap to road”。我们计算用户附近的道路,如果 GPS 位置在道路的 30m(见注 1)范围内,并且路线(或航向,注 2)在道路方向的 +/- 25 度范围内,那么我们“捕捉”到马路。这意味着我们更改显示的位置点的位置和方向,以便它显示用户正好在道路上(计算道路上距离 GPS 点最近的点)并沿着道路路径前进(选择道路方向最接近)。这需要详细的道路几何数据,包括曲线和一些有趣的计算,但一旦你得到它,它就可以很好地工作。

如果他们远离道路或与道路方向不对齐,那么我们会显示他们的实际 GPS 位置。这非常有效,但它要求您有可用的道路网络几何图形(或至少它们到目的地几何图形的路线),以便您可以进行这些检查。

horizontalAccuracy注1:我们根据CLLocation我们得到的报告选择一个公差。

注2:我们将指南针航向(已校正)和航向(来自 GPS)混合来确定用户的实际航向。在大约 8 公里/小时以下我们主要使用指南针航向,在此以上我们主要使用 GPS 航向(它更准确)。我们还通过 GPS 路线确定罗盘误差来纠正它。这使我们能够显示准确的航向,即使在灯光很亮或停车场速度非常慢的情况下也能显示。

于 2013-11-13T16:58:15.713 回答
1

GPS 精度是有限制的。
如果应用程序可以访问底层地图数据并且假设该位置应该在道路上,那么它可能会捏造用户的位置。但是,如果我停在路边或不在车上怎么办。

来自:gps.gov:太空中的 GPS 信号将在 95% 的置信水平下提供 7.8 米的“最坏情况”伪距精度。

但是接收器有可能做得比这更好,特别是如果它们是静止的。在静止的情况下,位置平均可以提供很大帮助,但设备必须知道它是静止的事实。接收器也有可能做得更糟。因此,10 到 20 米可能是一个安全的假设。

于 2013-11-13T15:20:22.000 回答