2015-12-29 190 views
3

是否可以在不移除和添加新註釋的情況下移動註記?iOS在MapBox地圖上移動註釋

我想堅持使用MapBox,因爲將來支持離線地圖。

預先感謝您!

+0

你有沒有找到任何方法來做到這一點?我也想做同樣的事情。 –

回答

0

您可以爲移動標記執行自定義開發。我已經做到了,並且按預期工作。

如果你想沿着你的多段線移動一個標記,我將首先保持對MGLPointAnnotation的引用,並在定時器或用戶隨它移動時更新它的座標屬性。

+0

你能否提供該代碼片段?我嘗試過,但仍然沒有工作。 –

0

您可以通過保持對註釋實例的引用並更新該實例的座標來實現此目的。

如果我假設你將地圖(MGLMapView)添加到視圖控制器,那麼基本方法可能是將一個屬性添加到該視圖控制器,以便可以跟蹤該參考。在這個例子中,我將使用一個MGLPointAnnotation:

class ViewControllerWithAMap: UIViewController { 
    var movingPointAnnotation: MGLPointAnnotation? 
    ... 
} 

將此參考可選,讓你知道什麼時候啓動它,然後只需更新座標。最後一部分可能看起來有悖常理,但你現在真正需要做的是再加上註解到地圖。例如:

if self.movingPointAnnotation == nil { 
     self.movingPointAnnotation = MGLPointAnnotation() 
    } 
    guard self.movingPointAnnotation != nil else { 
     print("What?! Could not initiate moving annotation.") 
     return // something weird, give up 
    } 
    self.movingPointAnnotation!.coordinate = myNewCLLocationCoordinate2D 
    self.mapView.addAnnotation(self.movingPointAnnotation!) 

關於在那裏你在添加註釋一遍又一遍,我試過只需要添加註釋一次,然後就更新它的座標之後,但註釋不動那最後一部分。