您有没有想过地图服务如何在不知道其坐标的情况下找到您提供的确切地址?在本文中,我将向您介绍地理编码,这是获取有关地理位置的信息的过程。地理编码可以有两种方式。
正向地理编码——这是我们从邮政地址或位置开始(例如:波士顿,马萨诸塞州)并将其转换为一组相应的地理坐标(纬度和经度)
反向地理编码——这是当我们通过给定的纬度、经度作为输入来获取地址或位置时
在本教程中,我将使用Apple Maps和Google Maps对地址进行地理编码。在开始之前,我们将参考的文档可以在这里找到:Google Maps Geocoding API | 苹果地图地理编码。
虽然 Apple 使用CLGeocoder类调用其正向或反向地理编码方法之一,但谷歌地图使用外部 URL 来启动服务。
让我们创建一个新的 Xcode 项目。在开始使用CLGeocoder类之前,将Core Location框架添加到项目中。在ViewController的顶部,导入Core Location框架并为 Apple Maps 中的前向地理编码创建一个新方法。
func forwardGeocoding(address: String) {
let geocoder = CLGeocoder()
geocoder.geocodeAddressString(address, completionHandler: { (placemarks, error) in
if error != nil {
print("Failed to retrieve location")
return
}