- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个 View 可以使用谷歌地图显示用户的当前位置和到达他的目的地的路线。
问题:用户位置大部分时间都在路上,我不能把这样的应用放在应用商店,它会得到差评。
我检查了适用于 IOS 的 google sdk,是否有任何准确性属性!?喜欢:self.googleMap.accuracy = bestForNavigation
是否有任何调整或属性可以提高用户定位的准确性?
Appstore 上的 map 应用程序如何像谷歌应用程序一样如此准确地显示用户位置?
最佳答案
在 CoreLocationManager
中,您可以将 desiredAccuracy
设置为 kCLLocationAccuracyBestForNavigation
。然而,GPS 仍然不是完美的,您可能会从 GPS 获得 5 到 100 米的精度,具体取决于信号质量、天空 View (峡谷、城市)等。
另一个需要注意的错误来源,确保您的 GPS 数据与 map 和道路网络数据在同一基准(即:WGS-84)中。不同的基准会增加小(或大)误差。
为了补偿固有的 GPS 和 map 误差,大多数精细导航应用程序都使用我们所说的“捕捉到道路”。我们计算用户附近的道路,如果 GPS 位置在道路的 30 米以内(见注 1)并且路线(或航向,注 2)在道路方向的 +/- 25 度以内,那么我们“捕捉”到马路。这意味着我们更改显示位置点的位置和航向,以便它显示用户正好在路上(从 GPS 点计算道路上最近的点)并沿着道路路径行驶(选择道路航向最接近)。这需要详细的道路几何数据,包括曲线和一些有趣的计算,但一旦您获得它,它就会非常有效。
如果他们远离道路或与道路方向不一致,我们会显示他们的实际 GPS 位置。这非常有效,但它需要您有可用的道路网络几何图形(或至少它们到目的地几何图形的路线),以便您可以进行这些检查。
注意 1:我们根据我们得到的 CLLocation
报告的 horizontalAccuracy
选择容差。
注意 2:我们将罗盘航向(修正后)和航向(来自 GPS)混合在一起来确定用户的实际航向。低于约 8 公里/小时我们主要使用罗盘航向,高于我们主要使用 GPS 航向(它更准确)。我们还通过 GPS 航向确定罗盘误差来纠正它。这使我们能够显示准确的航向,即使是在红绿灯处 parking 或 parking 场速度非常慢时也是如此。
关于ios 谷歌地图的准确性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19955800/
leaflet:一个开源并且对移动端友好的交互式地图 JavaScript 库 中文文档: https://leafletjs.cn/reference.html 官网(英文): ht
我是一名优秀的程序员,十分优秀!