我有一个地图区域,其中包含大约十个带注释的MapPin对象(从plist检索的坐标)。在“位置”下面的代码中,是一个NSMutable数组对象,其中包含引脚注释的纬度和经度。
for (int i = 0; i<[locations count]; i++) {
MKCoordinateSpan span = MKCoordinateSpanMake(0, 0);
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(0, 0);
pinRegion = MKCoordinateRegionMake(center, span);
MapPin *pin = [[MapPin alloc] init];
pinRegion.center.longitude = [locations[i][0] doubleValue];
pinRegion.center.latitude = [locations[i][1] doubleValue];
pin.title = names[i];
pin.coordinate = pinRegion.center;
[self.mapView addAnnotation:pin];
}
通过选择要返回其坐标的任何引脚。我可以这样检查任何引脚对象地址:
NSLog(@"%@", self.mapView.selectedAnnotations);
...显示所选引脚(例如"<MapPin: 0x16d2f610>"
但是我不知道如何访问对象的坐标属性,例如经度和纬度。
请您帮忙?
谢谢!
答案 0 :(得分:0)
确保为您的地图视图分配了委托(在本示例中,我们将使用您的视图控制器)
mapView.delegate = self
下一步,对回调代理进行注释抽头,如下所示:
func mapView(mapView: MKMapView, didSelectAnnotationView view: MKAnnotationView)
{
if let annotationCoordinate = view.annotation?.coordinate
{
print("User tapped on annotation with title: \(annotationCoordinate")
}
}
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view{
NSLog(view.annotation.coordinate);
}
如果您有任何疑问,请告诉我