如何使用新坐标更新MKAnnotation位置?

时间:2010-05-22 05:26:10

标签: iphone coordinates mkannotation mkannotationview

我在尝试使用不同坐标更新注释位置时遇到问题。有没有办法我可以更改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
            }
    }

谢谢大家!

4 个答案:

答案 0 :(得分:3)

扩展MKPointAnnotation,它能够自动将地图上的注释视图更新为新坐标。

@interface MyAnnotation : MKPointAnnotation

答案 1 :(得分:-1)

您需要删除注释并在更改其坐标后再次添加注释,或将其替换为新注释。 MapKit并不认为注释可能是可变的。

答案 2 :(得分:-1)

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

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

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

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

如果这不能解决您的问题,您可能需要在问题中添加更多详细信息。

答案 3 :(得分:-1)