我希望从函数
获得比地址范围更准确的地址(来自坐标)geoCoder.reverseGeocodeLocation(location, completionHandler: {} )
在Google地图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 ...
})
答案 0 :(得分:1)
如果您想在关联时使用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
可以是以下之一:
" ROOFTOP"将结果限制为我们拥有的地址 位置信息精确到街道地址精度。
" RANGE_INTERPOLATED"将结果限制为反映的结果 近似(通常在道路上)插入两个精确的 点(如十字路口)。一般是插值范围 表示屋顶地理编码不适用于街道地址。
" GEOMETRIC_CENTER"将结果限制为a的几何中心 折线(例如,街道)或多边形等位置 (区域)。
"近似"将结果限制为那些结果 表征为近似。