我想获得一个比函数范围
的地址范围更准确的地址(来自坐标)geoCoder.reverseGeocodeLocation(location, completionHandler: {} )
在Google Maps API指南(https://developers.google.com/maps/documentation/geocoding/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 ...
})
如果要使用Google Maps API
(链接时),则需要向API构建HTTP请求(并使用您从Google获得的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
可以是:
"屋顶"将结果限制为我们拥有的地址 位置信息准确到街道地址精度。
" range_interpolated"将结果限制为反映的结果 近似(通常在道路上)在两个精确之间插值 点(例如交叉点)。通常插值范围 表明屋顶地址无法用于街道地址。
" geometric_center"将结果限制为A的几何中心 位置,例如多线线(例如,街道)或多边形 (地区)。
"近似"将结果限制在 被特征为近似。