阅读(3205) (0)

鸿蒙OS (逆)地理编码转化

2020-09-17 10:20:34 更新

场景介绍

使用坐标描述一个位置,非常准确,但是并不直观,面向用户表达并不友好。

系统向开发者提供了地理编码转化能力(将坐标转化为地理编码信息),以及逆地理编码转化能力(将地理描述转化为具体坐标)。其中地理编码包含多个属性来描述位置,包括国家、行政区划、街道、门牌号、地址描述等等,这样的信息更便于用户理解。

接口说明

进行坐标和地理编码信息的相互转化,所使用的接口说明如下。

接口名 功能描述
GeoConvert() 创建 GeoConvert 实例对象。
getAddressFromLocation(double latitude, double longitude, int maxItems) 根据指定的经纬度坐标获取地理位置信息。
getAddressFromLocationName(String description, int maxItems) 根据地理位置信息获取相匹配的包含坐标数据的地址列表。
getAddressFromLocationName(String description, double minLatitude, double minLongitude, double maxLatitude, double maxLongitude,int maxItems) 根据指定的位置信息和地理区域获取相匹配的包含坐标数据的地址列表。

开发步骤

  1. 实例化 GeoConvert 对象,所有与(逆)地理编码转化能力相关的功能 API,都是通过 GeoConvert 提供的。

   GeoConvert geoConvert = new GeoConvert();

  1. 获取转化结果。

  • 坐标转化地理位置信息。

     geoConvert.getAddressFromLocation(纬度值, 经度值, 1);

参考接口 API 说明,应用可以获得与此坐标匹配的 GeoAddress 列表,应用可以根据实际使用需求,读取相应的参数数据。

  • 位置描述转化坐标。

     geoConvert.getAddressFromLocationName("北京大兴国际机场", 1);

参考接口 API 说明,应用可以获得与位置描述相匹配的 GeoAddress 列表,其中包含对应的坐标数据,请参考 API 使用。

如果需要查询的位置描述可能出现多地重名的请求,可以同过设置一个经纬度范围,以便高效获取期望的准确结果。

     geoConvert.getAddressFromLocationName("北京大兴国际机场", 纬度下限, 经度下限, 纬度上限, 经度上限, 1);