2010-05-22 71 views
3

我在尝试更新具有不同坐标的注释位置时出现问题。有什么方法可以改变位置属性而不必创建另一个注释?我试过下面的代码,没有运气。我试图得到的注释没有更新它的位置。请帮忙!如何用新坐标更新MKAnnotation位置?

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

谢谢大家!

回答

-1

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

-1

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

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

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

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

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

+1

此解决方案不起作用。请参阅http://stackoverflow.com/questions/2256177/how-to-move-a-mkannotation-without-adding-removing-it-from-the-map/5017332#5017332 – Willster 2011-02-16 13:59:56

3

扩展MKPointAnnotation,它具有自动更新地图上的新坐标上标注视图的能力。

@interface MyAnnotation : MKPointAnnotation 
+0

当我扩展时,我实现了什么方法它? – user3916570 2016-04-28 16:25:34

+0

您也可以直接使用它,我认为 – malhal 2016-05-04 07:01:42

+0

您可以通过代码显示它吗? – 2016-08-11 05:40:15