开发 地图 JS API 2.0 进阶教程 服务插件和工具 行政区查询

行政区查询 最后更新时间: 2024年02月02日

本文介绍 JS API 提供的行政区查询服务插件AMap.DistrictSearch,包括:

  1. 获取行政区及下级行政区信息
  2. 绘制行政区划边界

行政区边界查询示例

1、行政区查询服务

AMap.DistrictSearch行政区查询服务插件提供行政区信息查询功能。使用该插件可以获取到行政区域的区号、城市编码、中心点、边界、下辖区域等详细信息。

使用行政区划查询服务前要先引入该插件,具体的引入方式请参考教程:插件的使用

1.1 获取下级行政区信息

使用行政区查询服务插件AMap.DistrictSearch获取准确的行政区信息。以获取中国所有行政区信息为例:

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 即为对应的行政区信息
  });
});

除了获取所有省份、直辖市信息外,你可以通过修改levelsubdistrict并配合search()传入对应keyword查询对应信息。

1.2 绘制行政区划边界

除了获取行政区信息外,有时我们还需要在地图上绘制出行政区边界。这里以绘制朝阳区的边界举例,主要包含以下三步:

  1. 创建AMap.DistrictSearch对象
  2. 搜索朝阳区的边界信息
  3. 将边界信息用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(); //将覆盖物调整到合适视野
    }
  });
});

2、本章涉及的属性及方法说明

2.1 AMap.DistrictSearch

参数/方法

说明

类型 

参数值描述

默认值

level

关键字对应的行政区级别或商圈

String

'country'国家

'province'省/直辖市

'city'市 

'district'区/县

'biz_area'商圈

-

subdistrict

显示下级行政区级数(行政区级别包括:国家、省/直辖市、市、区/县4个级别)

Number

0不返回下级行政区

1返回下一级行政区 

2返回下两级行政区 

3返回下三级行政区

1

extensions

是否返回行政区边界坐标点

String

'base'不返回行政区边界坐标

'all'返回完整行政区边界坐标点

'base'

districtSearch.search()

关键词查询的方法

Function

-

-

2.2 AMap.Polygon

参数/方法

说明

类型 

参数值描述

默认值

map

要显示该覆盖物的地图对象

AMap.Map

-

-

strokeWeight

轮廓线宽度

Number

-

2

path

多边形轮廓线的节点坐标数组

Array

-

-

fillOpacity

多边形填充透明度

Number

取值范围[0,1]

0表示完全透明

1表示不透明

0.5

fillColor

多边形填充颜色

String

使用16进制颜色代码赋值

#00D3FC

strokeColor

线条颜色

String

使用16进制颜色代码赋值

#00D3FC

返回顶部 示例中心 常见问题 智能客服 公众号
二维码