【问题标题】:Get Latitude and Longitude from Annotation view从注释视图中获取纬度和经度
【发布时间】:2011-11-05 00:21:12
【问题描述】:

如何获取放置在我的 mapView 上的 annotationView 的纬度和经度?我需要在点击 rightAccessory 时获取它。

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control 方法确实返回具有要使用的coordinate 属性的 MKAnnotationView。但我想要经纬度。如何将坐标转换为纬度和经度?

谢谢。

【问题讨论】:

    标签: iphone ios mkannotation mkannotationview


    【解决方案1】:

    coordinate 是一个CLLocationCoordinate2D,它是一个包含latitudelongitude 的结构体。

    coordinate 实际上是MKAnnotation 的一个属性。 MKAnnotationView 有一个名为 MKAnnotationMKAnnotation 属性。

    因此,在您提到的方法中,您应该能够使用[[view annotation] coordinate].latitude 到达纬度,使用[[view annotation] coordinate]. longitude 到达经度。

    【讨论】:

    • 那是因为 CLLocationCoordinate2D,正如 benwong 所说,是一个结构,所以它没有方法或 getter 的概念。访问结构成员的 C 点语法是唯一正确的方法,尽管这是一个完全可以理解的疏忽,因为 Apple 在这里使用结构有点奇怪。
    【解决方案2】:

    添加 MKMapViewDelegate。

     func mapView(mapView: MKMapView, didSelectAnnotationView view: MKAnnotationView){      
    
    let currentAnnotationLattitude = view.annotation?.coordinate.latitude
    
    let currentAnnotationLongitude = view.view.annotation?.coordinate.longitude
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-25
      • 2016-09-29
      • 1970-01-01
      相关资源
      最近更新 更多