【问题标题】:How do I update an MKAnnotation location with new coordinates?如何使用新坐标更新 MKAnnotation 位置?
【发布时间】:2010-05-22 05:26:10
【问题描述】:

我在尝试使用不同坐标更新注释位置时遇到问题。有什么方法可以更改 de location 属性而无需创建另一个注释?我试过下面的代码没有运气。我试图获取的注释没有更新它的位置。请帮忙!

CLLocationCoordinate2D location;
location.latitude = -36.560976;
location.longitude = -59.455807; 

for (id annotation in self.mapView.annotations) {

    if ([annotation isKindOfClass:[MyAnnotation class]]) 
    {
            [annotation setCoords:location]; //setCoords is defined in MyAnnotation class
            }
    }

谢谢大家!

【问题讨论】:

    标签: iphone coordinates mkannotation mkannotationview


    【解决方案1】:

    扩展MKPointAnnotation,它可以自动更新地图上的注解视图到新的坐标。

    @interface MyAnnotation : MKPointAnnotation
    

    【讨论】:

    • 当我扩展它时我实现了什么方法?
    • 我觉得你也可以直接使用
    【解决方案2】:

    您需要删除注释并在更改其坐标后重新添加它,或者用一个新的替换它。 MapKit 不假定注释可能是可变的。

    【讨论】:

      【解决方案3】:

      您不必删除注释然后重新添加即可更新注释在地图上的位置。

      您添加注释的 MapView 应该会为您处理位置更改。在没有看到更多代码的情况下,我认为您遇到的问题可能是您的注释使用了 location 变量而不是 coordinate 变量。

      MKAnnotation 协议要求您在注释类中实现CLLocationCoordinate2D coordinate 实例变量。它还建议您合成一个坐标属性。

      尝试将CLLocationCoordinate2D coordinate 实例变量及其匹配属性@property (assign, nonatomic) CLLocationCoordinate2D coordinate 添加到您的注释类.h 文件中。然后在注释类 .m 文件中使用 @synthesize

      如果这不能解决您的问题,您可能需要为您的问题添加更多细节。

      【讨论】:

      【解决方案4】:
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-26
      相关资源
      最近更新 更多