2010-05-22 69 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