我目前正在开发一个使用MKMapView控件的应用。假设通过蓝点(如地图应用程序)显示用户的位置,但是当应用程序首次安装在设备上然后启动时,您会有提示要求用户进行授权,但一旦被接受,用户的地图未显示在地图上,返回的坐标为0.0; 0.0。
然后,我关闭应用程序,将其从多任务处理中删除并再次启动它,并且正确显示位置并返回正确的坐标。
我还使用CoreLocation以便能够计算两点之间的距离并获得标题,然后我使用自定义消息设置该提示,该消息显示应用程序的两个全新安装中的一个(我想知道为什么),我并不真正关心最后一个问题,但它可能有助于了解这个细节。
如果能够在应用首次发布时显示蓝色,我该怎么办?
此致
最高
答案 0 :(得分:1)
是的,这有时会发生在iPhone上(不在模拟器中),我也遇到了同样的问题,如果你试图将地图缩放到给定位置,它会崩溃应用程序。您可能希望使用以下代码来避免这种情况。这将丢弃无效的GPS更新,最终您将开始获取有效数据
if (mapView.userLocation.coordinate.latitude <= -180.0f
|| mapView.userLocation.coordinate.latitude >= 180.0f
|| mapView.userLocation.coordinate.longitude <= -180.0f
|| mapView.userLocation.coordinate.longitude >= 180.0f
|| (mapView.userLocation.coordinate.latitude == 0.0f
&& mapView.userLocation.coordinate.longitude == 0.0f) ) {
return; // or something else you may like to do
}
// rest of the code