反向地理编码位置:比范围更准确

Posted

技术标签:

【中文标题】反向地理编码位置:比范围更准确【英文标题】:Reverse Geocode Location: more accuracy than range 【发布时间】:2017-05-03 15:55:01 【问题描述】:

我想获得比函数地址范围更准确的地址(从坐标)

geoCoder.reverseGeocodeLocation(location, completionHandler:  )

在 google maps 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,您需要形成对 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" 将结果限制在一个几何中心 位置,例如折线(例如街道)或多边形 (地区)。

"APPROXIMATE" 将结果限制为 以近似为特征。

【讨论】:

以上是关于反向地理编码位置:比范围更准确的主要内容,如果未能解决你的问题,请参考以下文章

是否有可能获得更精确的反向地理编码?

反向数据编码是啥

谷歌地图反向地理编码不返回正确/准确的地址

反向地理位置:邮政编码问题

对交叉点进行反向地理编码

对用于反向地理编码位置的 CLGeocoder 类方法感到困惑