【发布时间】:2014-09-30 06:22:42
【问题描述】:
我正在尝试将地址转换为受尊重的纬度和经度值,即地理编码。
来自谷歌的定义:
什么是地理编码?
地理编码是将地址(例如“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 中是否有任何错误,或者我做错了什么?
【问题讨论】:
标签: ios iphone swift geocoding