【问题标题】: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 ...
    })

【问题讨论】:

    标签: swift location maps geocoding reversegeocodelocation


    【解决方案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" 将结果限制为 以近似为特征。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多