我试图将地址转换为受尊重的纬度和经度值,即地理编码。
来自Google定义:
什么是地理编码?
地理编码是将地址(例如" 1600 Amphitheatre Parkway,Mountain View,CA")转换为地理坐标(如纬度37.423021和经度-122.083739)的过程,您可以使用它来放置标记或位置地图。
我在使用Swift的iOS中尝试相同。
我的代码工作正常。但是有些地址没有转换成lat,lng值。我确信我搜索的地址是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
中是否有任何错误,或者我做错了什么?
答案 0 :(得分:4)
我认为您希望iOS地理编码的效果与Google的地理编码一样好。但肯定不会。
它没有用,因为Apple的地理编码不如Google的地理编码好。
要明白我的意思,请填写
瑞典克洛滕机场
进入iOS地图应用。它什么都没有。把它放到maps.google.com,然后你会看到机场。