最后更新时间:2025-04-17
我们提供了三个行政区划相关查询接口,封装了腾讯地图 WebService API 的行政区划查询功能,更详细的接口描述可以查阅官网。这里对 SDK 提供的行政区划查询接口做简要描述。
| 接口名 | 功能 |
|---|---|
| getDistrictList(HttpResponseListener listener) | 获取全部行政区划数据 |
| getDistrictChildren(DistrictChildrenParam object, HttpResponseListener listener) | 获取指定行政区划的子级行政区划 |
| getDistrictSearch(DistrictSearchParam object, HttpResponseListener listener) | 根据关键词搜索行政区划 |
1. getDistrictList(HttpResponseListener listener)
查询成功后,listener 返回所有的行政区划数据
2. getDistrictChildren(DistrictChildrenParam object, HttpResponseListener listener)
| 接口名 | 功能 |
|---|---|
| DistrictChildrenParam() | 构造请求参数 |
| id(int id) | 父级行政区划 ID,缺省时则返回最顶级行政区划, 行政区划 ID 可以使用 getDistrictList 获取 |
3. getDistrictSearch(DistrictSearchParam object, HttpResponseListener listener)
| 接口名 | 功能 |
|---|---|
| DistrictSearchParam(String keyword) | 构造请求参数,并设置 询关键字 |
| keyword(String keyword) | 设置行政区划查询关键字 |
行政区划查询获取的检索结果由参数 listener 异步返回。当 HttpResponseListener.onSuccess 正常返回时,应将 BaseObject 强转为 DistrictResultObject 进行解析,包含的数据请参考 接口文档, 当 HttpResponseListener.onFailure 返回时,请用户根据的状态码和错误信息检查自己的参数输入:
| 状态码 | 错误信息 |
|---|---|
| -1 | AndroidManifest 中找不到腾讯地图的开发者密钥 |
| 310 | 请求参数信息有误 |
| 311 | Key格式错误 |
| 306 | 请求有护持信息请检查字符串 |
| 110 | 请求来源未被授权 |
/**
* 获取行政区划
*/
protected void getDistrict(int pDistrict) {
TencentSearch tencentSearch = new TencentSearch(this);
DistrictChildrenParam districtChildrenParam = new DistrictChildrenParam();
// 如果不设置id,则获取全部数据
districtChildrenParam.id(pDistrict);
tencentSearch.getDistrictChildren(districtChildrenParam, new HttpResponseListener<BaseObject>() {
@Override
public void onSuccess(int arg0, BaseObject arg1) {
// TODO Auto-generated method stub
if (arg1 == null) {
return;
}
DistrictResultObject obj = (DistrictResultObject) arg1;
List<DistrictResultObject.DistrictResult> districtResults = obj.result.get(0);
for (DistrictResultObject.DistrictResult result : districtResults) {
Log.d("test", "getDistrict: " + result.fullname);
}
}
@Override
public void onFailure(int arg0, String arg1, Throwable arg2) {
Log.e("test", "error code:" + arg0 + ", msg:" + arg1);
}
});
}
实现轮廓绘制,适用于绘制停车区域等场景。
实现方式,选中目标区域,拿到目标区域的轮廓点,绘制目标轮廓
//这里获取目标轮廓点
List<LatLng> latLngs = districtResults .get(0).polygon.get(0);
//绘制轮廓图,可以使用多边形(polygon)也可以使用线Polyline,可以按照自己的场景去设置
tencentMap.addPolyline(new PolylineOptions().addAll(latLngs).width(6).borderWidth(2).color(PolylineOptions.Colors.RED));
0:默认值,不返回轮廓
1:固定3公里抽稀粒度的区划轮廓,包含海域
2:支持多种抽稀粒度的区划轮廓,可通过max_offset设置返回轮廓的抽稀级别,纯陆地
行政区划的数据并不会经常更新,用户可以降低查询频率。
有帮助
没帮助