我一直在使用mapkit和SDK 3.0编写应用程序。除了一个细节,一切都很好。我注意到,在显示用户位置时,我在地图上获得了与当前网络相关的不同用户位置。我已经阅读过这个问题并了解它很常见吗?在我的WLAN中,用户位置正确显示。使用3G网(T-mobile)时,位置距离我的实际位置约100米。据我所知,这与使用三角测量的celluar手机网有关,在WLAN中使用的是GPS或WiFi热点。所以,对我的问题。有办法解决这个问题吗?我的应用程序显示了城镇中的位置以及与这些位置的距离。如果由于距离短而位置错误,这是非常明显的并且也会产生误导。有没有办法(在代码中)设置用于获取用户位置的方法?我已经使用地图测试了我iPhone上的所有其他应用程序,所有这些问题看起来都是一样的。 (如果有人想测试我的应用程序,它在app2商店免费下载car2go,其他评论当然也很有趣) 提前致谢! -loop-
答案 0 :(得分:1)
核心位置提供有关其报告的位置的垂直和水平精度的信息。如果位置可疑,应该使用该准确性向用户报告。 Google地图通过增加位置标记周围的蓝色圆圈的大小来实现此目的。还有其他方法可以向用户表明该位置是可疑的,警告框,如果超出某个预定的准确度,则不显示该位置等。
答案 1 :(得分:0)
为您的位置使用备用来源?便携式GPS装置可以解决问题。
真正的问题是如何纠正3G三角测量指定的数据。我想知道你是否可以做差分来纠正3G的位置错误。
1)在给定城市中,通过绘制城市来校准3G位置错误。这可以在任何时候由3G网络纠正,因此您必须有办法验证和重新校准。
2)使用已知位置校准3G网络的位置 - 3G位置以及GPS位置。将其作为可应用于其他3G位置的差分。这假定三角测量计算中的一致偏移可能不是现实。
3)等待3G网络修复它并在此期间不做任何事情。
4)在三角测量中向3G网络提供商提供错误信息,看看它们是否优先考虑。
我想不出任何其他可行的选择......
答案 2 :(得分:0)
也许您可以直接使用CoreLocation。 CLLocationManager
为您提供CLLocation
个对象,而不是包含其准确性。如果你的精确度低于50米,它的位置可能来自GPS。