【问题标题】:Get selected pin coordinate using MapKit framework (Objective-C)使用 MapKit 框架(Objective-C)获取选定的引脚坐标
【发布时间】:2018-11-25 12:21:24
【问题描述】:

我有一个地图区域,其中包含大约十个带注释的 MapPin 对象(从 plist 检索的坐标)。在下面的代码中,'locations' 是一个 NSMutable 数组对象,其中包含 pin 注释的纬度和经度。

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];

}

通过选择我想要返回其坐标的任何引脚。我可以像这样检查任何 pin 对象地址:

NSLog(@"%@", self.mapView.selectedAnnotations);

... 显示所选引脚的唯一地址,例如 "&lt;MapPin: 0x16d2f610&gt;"

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

你能帮忙吗?

谢谢!

【问题讨论】:

    标签: objective-c mapkit mapkitannotation


    【解决方案1】:

    确保您的地图视图已分配其委托(在此示例中,我们将使用您的视图控制器)

        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);
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多