iPhone 6 Plus 上的 IOS10。一个小型应用程序,可获取 GPS 坐标并将其发送到远程 Web 服务。在 iphone 地图上,用户位置显示正确,但检索到的坐标:
location.coordinate.latitude,
location.coordinate.longitude
距离地图上显示的我所在的位置 0.5 英里!无论我搬到哪里,这都是一致的。
我正在遵循 Apple 的最佳实践并使用如下委托方法:正是这些坐标不正确。
// Delegate method from the CLLocationManagerDelegate protocol.
- (void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray *)locations {
CLLocation* location = [locations lastObject];
NSDate* eventDate = location.timestamp;
NSTimeInterval howRecent = [eventDate timeIntervalSinceNow];
if (abs(howRecent) < 15.0) {
// Log the data
NSLog(@"latitude %+.6f, longitude %+.6f\n",
location.coordinate.latitude,
location.coordinate.longitude);
}
}
我设置的位置精度如下:
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
我对 gps 坐标进行了 30 秒的采样,以确保获得尽可能高的准确度。
我已经在 2 部不同的 iPhone 上尝试过这个,都显示了同样的问题。提前致谢。
我终于找到了导致问题的原因..我目前在中国......这就是神秘偏移的原因..中国的地图是“偏移”。如果你有兴趣,这里有一篇关于它的帖子,它使我免于扯掉头发。http://www.sinosplice.com/life/archives/2013/07/16/a-more-complete-ios-solution-to-the-china-gps-offset-problem。
中国使用的地图投影称为GCJ-02,不同于西方的地图标准(WGS-84)。因此,如果您正在开发地图系统,您可能希望为中国的旅行者考虑到这一点!
无论如何,感谢有用的编码建议。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句