2016-07-20 73 views
-1

我有一個郵政編碼的地址列表,我需要在地圖上顯示(pin point)。如何從地址獲得座標(帶郵編)Swift - IOS?

到目前爲止,我知道使用座標來顯示核心位置框架地圖上的針點。還有其他的方式嗎?就像從地址獲取座標或使用地址在地圖上顯示針點一樣?

主要目的是計算位置之間的距離。

請在這裏引導我。由於

+0

請在嘗試之前嘗試搜索。 [我如何在Swift中繪製地址,將地址轉換爲經度和緯度座標?](http://stackoverflow.com/questions/24706885/how-can-i-plot-addresses-in-swift-converting-address-to -longitude-anditude) –

+0

謝謝,有些時候你沒有正確的搜索字符串時,尋找任何答案..讚賞你的時間和指導 – kimti

回答

1

要從地址創建註釋你需要使用CLGeocoder的方法geocodeAddressString

let address = "5th Avenue, New York" 
let geocoder = CLGeocoder() 
geocoder.geocodeAddressString(address) { (placemarks, error) in 
    if let placemarks = placemarks { 
     if placemarks.count != 0 { 
      let annotation = MKPlacemark(placemark: placemarks.first!) 
      self.mapView.addAnnotation(annotation) 
     } 
    } 
} 

如果你只想要得到的位置座標:

... 
     if placemarks.count != 0 { 
      let coordinates = placemarks.first!.location 
     } 
... 
+0

謝謝你現在試試這個。 – kimti

0

這裏這個簡單的代碼片段展示瞭如何在給定的地址數組上顯示地圖上的引腳。

let geocoder:CLGeocoder = CLGeocoder() 


for eachAddress in addressArray { 
    geocoder.geocodeAddressString(eachAddress) { (placemarks:[CLPlacemark]?, error: NSError?) -> Void in 
    //Assuming it has the data without any error 
    let placemark = MKPlacemark(placemark: (placemarks?.first)!) 
    self.mkMapView.addAnnotation(placemark) 
    } 
} 
+0

謝謝你的回答 – kimti