2

我目前正在开发一个使用 MKMapView 控件的应用程序。假设通过蓝点显示用户的位置(如地图应用程序),但是当应用程序首次安装在设备上然后启动时,您会提示要求用户授权,但一旦接受,用户的地图上不显示位置,返回的坐标为 0.0 ;0.0。

然后,我关闭应用程序,将其从多任务处理中删除并重新启动,位置显示正确并返回正确的坐标。

我还使用 CoreLocation 来计算两点之间的距离并获取航向,并为提示设置了一条自定义消息,即显示应用程序的两次全新安装中的一个(我想知道为什么),我并不真正关心最后一个问题,但了解这个细节可能会有所帮助。

我应该怎么做才能在应用程序首次启动时显示蓝色?

真挚地,

最大限度

4

1 回答 1

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
于 2013-09-02T13:47:48.227 回答