4

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

4 回答 4

3

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

@interface MyAnnotation : MKPointAnnotation
于 2014-04-26T19:24:29.083 回答
-1

如何在不从地图中添加/删除的情况下移动 MKAnnotation?

于 2011-02-16T13:59:30.030 回答
-1

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

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

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

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

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

于 2011-01-19T23:02:00.500 回答
-1

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

于 2010-05-22T05:50:50.470 回答