我试图做一些关于提高iPhone定位精度的编码。我从iPhone硬件中获得了所有需要的信息(例如纬度、经度、deviceMotion、Gyro..),需要在mapView上显示更准确的计算结果。但就在那时,我发现mapView的userLocation属性是只读的,所以这可能意味着即使使用setCoordinate方法也无法更改它,这太可悲了=[有没有什么解决方案可以解决这个问题,或者有其他方法可以在我的地图视图上显示这个位置?谢谢
您只需要使用CLLocationCoordinate2DMake创建CLLocationCoordinate2D,并在那里设置纬度和经度。然后将您的位置创建为新的MKAnstation(例如您的PositionAnstation),并将CLLocationCoordinate2D中的位置设置为坐标。然后这样做:
// create coordinate
CLLocationCoordinate2D yourPos = CLLocationCoordinate2DMake(lat, lon);
// create MKAnnotation
MKAnnotationView *yourAnnotation = [[MKAnnotationView alloc] init];
yourAnnotation.coordinate = yourPos;
// remove all old annotations
[self.myMapView removeAnnotations:self.myMapView.annotations]
// add your annotation
[self.myMapView addAnnotation:yourAnnotation];
最后不要忘记发布注释。