2014-09-30 100 views
1

我試圖將地址轉換爲尊重的緯度和經度值,即地理編碼。geocodeAddressString不適用於某些地址

從谷歌的定義:

什麼是地理編碼?

地理編碼是將地址(如「1600 Amphitheatre Parkway,Mountain View,CA」)轉換爲地理座標(如緯度37.423021和經度-122.083739)的過程,您可以使用它來放置標記或放置地圖。

我想在iOS中使用Swift一樣。

我的代碼工作正常。但有些地址不會轉換成經緯度值。我確定我正在搜索的地址是100%有效的。

這裏是我的代碼

override func viewDidLoad() { 
    super.viewDidLoad() 


    var address = "Kloten Airport, Switzerland" // This Address not working 
    var geocoder = CLGeocoder() 
    geocoder.geocodeAddressString(address, {(placemarks: [AnyObject]!, error: NSError!) -> Void in 
     if let placemark = placemarks?[0] as? CLPlacemark { 


      let title = ABCreateStringWithAddressDictionary(placemark.addressDictionary, false) 


      println(title); 

      let location = CLLocationCoordinate2D(
       latitude: placemark.location.coordinate.latitude, 
       longitude: placemark.location.coordinate.longitude 
      ) 

     } 

     }) 

} 

我嘗試了不同的地址進行地理編碼像Houston USA(它運行良好),「Rautistrasse 12」(這也運作良好),但是當我搜索地址Kloten Airport, Switzerland這沒有奏效爲了我。

有沒有錯誤,在iOS geocodeAddressString,或者我做錯了什麼?

回答

4

我認爲您期待iOS地理編碼的表現與Google的地理編碼一樣好。但它肯定不會。

這不起作用,因爲蘋果的地理編碼不如Google的地理編碼。

要明白我的意思,把

克洛騰機場,瑞典

插入iOS地圖應用。它什麼都不給。把它放到maps.google.com,你會看到機場。

相關問題