使用MapKit框架(Objective-C)获取选定的引脚坐标

时间:2018-11-25 12:21:24

标签: objective-c mapkit mapkitannotation

我有一个地图区域,其中包含大约十个带注释的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>"

)的唯一地址

但是我不知道如何访问对象的坐标属性,例如经度和纬度。

请您帮忙?

谢谢!

1 个答案:

答案 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")
        }
    }

目标-C

- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view{

      NSLog(view.annotation.coordinate);
}

如果您有任何疑问,请告诉我