2014-09-30 105 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,你会看到机场。

相关问题