2016-12-18 27 views
1

更精確我想獲得更準確的地址(座標),比從功能反向地理編碼位置:比範圍

geoCoder.reverseGeocodeLocation(location, completionHandler: {}) 

在谷歌地圖API指南(https://developers.google.com/maps/documentation/geocoding/intro#Results)地址範圍,他們指定我可以更改location_type以獲得更準確的地址。我如何指定這些參數?這是我的代碼:

let geoCoder = CLGeocoder() 
let location = CLLocation(latitude: center.latitude, longitude: center.longitude) 
geoCoder.reverseGeocodeLocation(location, completionHandler: { (placemarks, error) -> Void in ... 
    }) 

回答

1

如果你想使用Google Maps API,當你聯繫,你必須形成HTTP請求的API(與API Key您已經從谷歌收購)。 reverseGeocodeLocation使用Apple的Map API,並且絕對不會接受Google的location_type參數。你會想使核心HTTP請求因此形式:

let url:String = "https://maps.googleapis.com/maps/api/geocode/json?latlng=\(center.latitude),\(center.longitude)&location_type=\(DESIRED_LOCATION_TYPE)&key=\(YOUR_API_KEY)" 

從你指定的鏈接,該DESIRED_LOCATION_TYPE可以是一個:

「ROOFTOP」限制的結果到地址我們有 位置信息精確到街道地址精度。

「RANGE_INTERPOLATED」將結果限制爲反映 近似值(通常在道路上)插入到兩個精確點(例如交點)之間的結果。內插範圍通常爲 表示屋頂地址解析不可用於街道地址。

「GEOMETRIC_CENTER」將結果限制爲諸如多段線(例如街道)或多邊形 (區域)之類的位置的幾何中心。

「APPROXIMATE」將結果限制爲近似爲 的結果。