高德地图开发Android 地图SDK开发指南获取地图数据—获取地址描述数据

高德地图开发Android 地图SDK开发指南获取地图数据—获取地址描述数据

获取地址描述数据 最后更新时间: 2021年01月22日

地理编码(地址转坐标)

地理编码基本介绍

地理编码,又称为地址匹配,是从已知的结构化地址描述到对应的经纬度坐标的转换过程。该功能适用于根据用户输入的地址确认用户具体位置的场景,常用于配送人员根据用户输入的具体地址找地点。

结构化地址的定义: 首先,地址肯定是一串字符,内含国家、省份、城市、城镇、乡村、街道、门牌号码、屋邨、大厦等建筑物名称。按照由大区域名称到小区域名称组合在一起的字符。一个有效的地址应该是独一无二的。注意:针对大陆、港、澳地区的地理编码转换时可以将国家信息选择性的忽略,但省、市、城镇等级别的地址构成是不能忽略的。

注意:该功能可以返回一部分POI数据内容,但核心能力是完成结构化地址到经纬度的转换。

  • POI关键字搜索,是根据关键词找到现实中存在的地物点(POI)。
  • 地理编码是依据当前输入,根据标准化的地址结构(省/市/区或县/乡/村或社区/商圈/街道/门牌号/POI)进行各个地址级别的匹配,以确认输入地址对应的地理坐标,只有返回的地理坐标匹配的级别为POI,才会对应一个具体的地物(POI)。

根据给定的地理名称和查询城市,返回地理编码的结果列表。显示效果如图:

实现步骤如下:

1、继承 OnGeocodeSearchListener 监听。

2、构造 GeocodeSearch 对象,并设置监听。

Java

geocoderSearch = new GeocodeSearch(this);
geocoderSearch.setOnGeocodeSearchListener(this);

3、通过 GeocodeQuery(java.lang.String locationName, java.lang.String city) 设置查询参数,调用 GeocodeSearch 的 getFromLocationNameAsyn(GeocodeQuery geocodeQuery) 方法发起请求。

Java

   
// name表示地址,第二个参数表示查询城市,中文或者中文全拼,citycode、adcode  
GeocodeQuery query = new GeocodeQuery(name, "010");  

geocoderSearch.getFromLocationNameAsyn(query);  

4、通过回调接口 onGeocodeSearched 解析返回的结果。

说明:

1)可以在回调中解析result,获取坐标信息。

2)返回结果成功或者失败的响应码。1000为成功,其他为失败(详细信息参见网站开发指南-实用工具-错误码对照表)

Java

@Override
public void onGeocodeSearched(GeocodeResult result, int rCode) {
    //解析result获取坐标信息
} 

逆地理编码(坐标转地址)

逆地理编码,又称地址解析服务,是指从已知的经纬度坐标到对应的地址描述(如行政区划、街区、楼层、房间等)的转换。常用于根据定位的坐标来获取该地点的位置详细信息,与定位功能是黄金搭档。

示例代码如下:

1、继承 OnGeocodeSearchListener 监听。

2、构造 GeocodeSearch 对象,并设置监听。

Java

geocoderSearch = new GeocodeSearch(this);
geocoderSearch.setOnGeocodeSearchListener(this);

3、通过 RegeocodeQuery(LatLonPoint point, float radius, java.lang.String latLonType) 设置查询参数,调用 GeocodeSearch 的 getFromLocationAsyn(RegeocodeQuery regeocodeQuery) 方法发起请求。

Java

   
// 第一个参数表示一个Latlng,第二参数表示范围多少米,第三个参数表示是火系坐标系还是GPS原生坐标系
RegeocodeQuery query = new RegeocodeQuery(latLonPoint, 200,GeocodeSearch.AMAP);

geocoderSearch.getFromLocationAsyn(query);

4、通过回调接口 onRegeocodeSearched 解析返回的结果。

说明:

1)可以在回调中解析result,获取地址、adcode等等信息。

2)返回结果成功或者失败的响应码。1000为成功,其他为失败(详细信息参见网站开发指南-实用工具-错误码对照表)

Java

@Override
public void onRegeocodeSearched(RegeocodeResult result, int rCode) {
    //解析result获取地址描述信息
}

注意事项

请注意:使用上述功能需要下载地图SDK,导入搜索功能的jar包。