MKMapView的用户位置在启动或恢复时出错
当我开始我的应用程序新鲜,或在很长一段时间后恢复,MKMapView的userLocation的概念是错误的,并告诉我在海中。
我使用以下代码:
self.mapView.centerCoordinate = self.mapView.userLocation.location.coordinate;
[mapView setCenterCoordinate:self.mapView.userLocation.location.coordinate zoomLevel:ZOOM_LEVEL animated:YES];
经过漫长的应用程序简历或全新的开始......
没有找到相关结果
已邀请:
7 个回复
babsoft
(更多信息来自苹果文档) 我的示例中的上述代码检查mapView当前显示的位置的准确性并作出相应的反应。 [编辑] 如果首先在海中间显示用户位置真的打扰你,你可以隐藏用户位置,直到你得到一个准确/足够的位置。 为此,首先将MKMapView的showsUserLocation属性设置为NO,直到获得足够准确的位置(由于先前的委托回调),然后将其设置为YES。 通过这样做,您将避免显示一个不准确或太旧而无法显示的位置(CLLocation中有一个时间戳属性来检查它是否是旧位置) N.B:您不必创建一个CLLocationManager实例,MKMapView在内部创建一个实例,并通过此委托选择器发布它接收的位置。
肉簧咸缮
正在访问坐标,而
或
是
。如果
或
为nil,则返回0坐标。 lat = 0,lon = 0的位置位于非洲海岸附近的大西洋。您可以添加
的检查以确保它在获取坐标之前不是nil,即:
您还需要等待MKMapViewDelegate
的回调,以了解何时有可用的有效位置。你的
的实现应该丢弃任何具有horizontalAccuracy< 0表示无效的位置。
感秆暴壳
戊袱
雇砰
剃摧庭峨僳
冲汉