行政区查询 最后更新时间: 2024年07月15日
本文介绍 JS API 提供的行政区查询服务插件AMap.DistrictSearch,包括:
- 获取行政区及下级行政区信息
- 绘制行政区划边界
行政区边界查询示例
1、行政区查询服务
AMap.DistrictSearch行政区查询服务插件提供行政区信息查询功能。使用该插件可以获取到行政区域的区号、城市编码、中心点、边界、下辖区域等详细信息。
提示
初次使用行政区查询服务,请配置好你的 key 和安全密钥 以确保正确访问。
1.1 获取下级行政区信息
使用行政区查询服务插件AMap.DistrictSearch获取准确的行政区信息。以获取中国所有行政区信息为例:
//引入插件,此示例采用异步引入,更多引入方式 https://lbs.amap.com/api/javascript-api-v2/guide/abc/plugins AMap.plugin("AMap.DistrictSearch", function () { var districtSearch = new AMap.DistrictSearch({ level: "country", //关键字对应的行政区级别,country 表示国家 subdistrict: 1, //显示下级行政区级数,1表示返回下一级行政区 extensions: 'all', //返回行政区边界坐标组等具体信息 }); //搜索所有省、直辖市信息 districtSearch.search("中国", function (status, result) { console.log(status, result); //status:complete 表示查询成功,no_data 为查询无结果,error 代表查询错误 //查询成功时,result 即为对应的行政区信息 }); });除了获取所有省份、直辖市信息外,你可以通过修改level和subdistrict并配合search()传入对应keyword查询对应信息。
1.2 绘制行政区划边界
除了获取行政区信息外,有时我们还需要在地图上绘制出行政区边界。这里以绘制朝阳区的边界举例,主要包含以下三步:
- 创建AMap.DistrictSearch对象
- 搜索朝阳区的边界信息
- 将边界信息用AMap.Polygon绘制到地图上
AMap.plugin("AMap.DistrictSearch", function () { var district = new AMap.DistrictSearch({ extensions: "all", //返回行政区边界坐标等具体信息 level: "district", //设置查询行政区级别为区 }); district.search("朝阳区", function (status, result) { var bounds = result.districtList[0].boundaries; //获取朝阳区的边界信息 if (bounds) { for (var i = 0; i < bounds.length; i++) { //生成行政区划 polygon var polygon = new AMap.Polygon({ map: map, //显示该覆盖物的地图对象 strokeWeight: 1, //轮廓线宽度 path: bounds[i], //多边形轮廓线的节点坐标数组 fillOpacity: 0.7, //多边形填充透明度 fillColor: "#CCF3FF", //多边形填充颜色 strokeColor: "#CC66CC", //线条颜色 }); } map.setFitView(); //将覆盖物调整到合适视野 } }); });
