行政区查询 最后更新时间: 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(); //将覆盖物调整到合适视野
}
});
});