在地图上设置用户位置时使用 GPS 或三角测量?

发布于 2024-08-03 06:58:51 字数 423 浏览 2 评论 0原文

我一直在使用mapkit和SDK 3.0编写一个应用程序。除了一个细节之外,一切都正常。我注意到,当显示用户位置时,我会根据当前网络在地图上获得不同的用户位置。我已经读过这个问题并了解它很常见?在我的 WLAN 中,用户位置正确显示。使用 3G 网络(T-mobile)时,该位置与我的实际位置相距约 100 米。我知道这与使用三角测量的蜂窝电话网络有关,而 WLAN 中则使用 GPS 或 WiFi 热点。那么,对于我的问题。有办法解决这个问题吗?我的应用程序显示城镇中的位置以及到这些位置的距离。如果因为距离短而导致位置错误,这是非常明显的,而且还会产生误导。有没有办法(在代码中)设置用于获取用户位置的方法?我已经使用地图测试了 iPhone 上的所有其他应用程序,所有这些应用程序的问题似乎都是相同的。 (如果有人想测试我的应用程序,可以在应用程序商店 car2go 下免费使用,其他评论当然也很有趣) 提前致谢! -环形-

I have been programming an app using the mapkit and the SDK 3.0. Everything works allright except for one detail. I have noticed that when displaying the userlocation I get different user positions on the map dependent of the current network. I have read about this problem and understand that it is common? In my WLAN is the user position correctly displayed. When using the 3G net (T-mobile) the position is some 100 meters away from my actual position. I understand this has to do with the celluar phone net using triangulation and in WLAN is the GPS or WiFi hotspot used. So, to my question. Is there a way to go around this? My app shows positions in a town and also the distance to those positions. It is very obvious and also missleading if the position is false because of the short distances. Is there a way (in code) to set which method to be used for getting the user postion? I have tested all other apps on my iPhone using maps and the problem seem to be the same by all of them. (If someone wants to test my app it is in the app store for free under car2go also other comments are of course interesting)
Thanks in advance!
-loop-

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

吾家有女初长成 2024-08-10 06:58:51

核心位置提供有关其所报告位置的垂直和水平精度的信息。如果该位置可疑,则应使用该准确性向用户报告。谷歌地图通过增加位置标记周围蓝色圆圈的大小来实现这一点。还有其他方法可以向用户指示该位置可疑、警告框、如果位置超出预定精度则不显示该位置等。

请参阅:http://developer.apple.com/iphone/library /documentation/CoreLocation/Reference/CLLocation_Class/CLLocation/CLLocation.html#//apple_ref/occ/instp/CLLocation/horizo​​ntalAccuracy

Core Location provides information about the vertical and horizontal accuracy of the location that it is reporting. One should use that accuracy to report to the user if the location is suspect. Google maps does this by increasing the size of the blue circle around the location marker. There are other ways to indicate to the user that the location is suspect, alert boxes, not showing the location if it falls outside of some predetermined accuracy, etc.

See: http://developer.apple.com/iphone/library/documentation/CoreLocation/Reference/CLLocation_Class/CLLocation/CLLocation.html#//apple_ref/occ/instp/CLLocation/horizontalAccuracy

入画浅相思 2024-08-10 06:58:51

使用适合您所在位置的替代来源吗?便携式 GPS 装置就可以解决这个问题。

真正的问题是如何纠正 3G 三角测量指定的数据。我想知道是否可以通过差分来纠正 3G 的位置错误。

1) 在给定城市,通过绘制城市来校准 3G 位置误差。 3G 网络可以随时纠正这一问题,因此您必须有一种方法来验证和重新校准。

2) 使用已知位置(3G 位置和 GPS 位置)校准 3G 网络的位置。将此视为可应用于其他 3G 位置的差异。这假设三角测量计算中存在一致的偏移,但这可能不是现实。

3) 等待3G网络修复,在此期间什么也不做。

4) 向 3G 网络提供商提供三角测量中的错误信息,看看这是否是他们的优先事项。

我想不出任何其他可行的选择...

Use an alternate source for your location? Portable GPS units would do the trick.

The real question is how can you correct the data being specified by the 3G triangulation. I wonder if you can do a differential to correct for the 3G's location errors.

1) In a given city, calibrate the 3G location errors by plotting the city. This could be corrected by the 3G networks at any time, so you'd have to have a way to verify and re-calibrate.

2) Calibrate the 3G network's location using a known location - a 3G location along with a GPS location. Take that as a differential that can be applied to other 3G locations. This assumes a consistent offset in the triangulation calculation which probably isn't the reality.

3) Wait for the 3G networks to fix it and do nothing in the meantime.

4) Provide the 3G network provider with error information in their triangulation and see if it is a priority for them.

I can't think of any other viable options...

你与昨日 2024-08-10 06:58:51

也许你可以直接使用CoreLocation。 CLLocationManager 为您提供 CLLocation 对象,并包含其准确性。如果精度低于 50 米,则该位置可能来自 GPS。

Perhaps you can use CoreLocation directly. CLLocationManager gives you CLLocation objects than include their accuracy. If you get an accuracy below 50 meters, it the location probably came from GPS.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文