查看原文
其他

国内行政区划数据的获取方法总结

BA 慧天地 2020-09-16


点击左上方蓝色字体“慧天地”即可订阅

(点击图片可放大观看,更多精彩请留意文末推荐)

前言:行政区划是国家为了进行分级管理而实行的区域划分,其基础性和重要性不言而喻。它既是学术科研领域常常涉及的,也为社会各界人士所感兴趣。接下来,小编将重点介绍自己总结的4类国内行政区划数据的获取方法,希望对大家的科研工作有帮助~

01

官网获取矢量数据

全国地理信息资源目录服务系统

网址:

http://www.webmap.cn/main.do?method=index

全国1:100万基础地理数据覆盖全国陆地范围和包括台湾岛、海南岛、钓鱼岛、南海诸岛在内的主要岛屿及其临近海域,共77幅1:100万图幅,该数据整体现势性为2015年。数据采用2000国家大地坐标系,1985国家高程基准,经纬度坐标。

  数据内容含行政区(面),行政境界点(领海基点),行政境界(线),水系(点、线、面),公路、铁路(点、线),居民地(点、面),居民地地名(注记点),自然地名(注记点)等12类要素层。

进入网站,选择 【数据下载]】-> 【1:100万全国基础地理数据库】,即可进行查询。只有注册后的用户可以免费下载数据且不限制下载量,同时建议下载数据者仔细阅读该网站的《全国地理信息资源目录服务系统服务条款》。


02

官网获取标准地图

自然资源部(测绘地理信息)

网址:http://www.nasg.gov.cn/

进入网站,在网页最底端找到【地方测绘地理信息部门网站】,选择相应的名称即可进入其网站,见下图。也可直接百度其网址。

以江苏省为例,进入其测绘地理信息局网站,选择【政务之窗】->【专项服务】->【标准地图服务】,见下图。即可下载所需的栅格地图。后期可以根据此图进行矢量化,就可以得到相应的矢量数据啦~


03

官网查询相关数据

全国行政区划信息查询平台

网址:http://xzqh.mca.gov.cn/map

这里小编给大家主要介绍全国行政区划信息查询平台。除该平台以外,百度地图、天地图等电子地图平台也都提供了行政区浏览的功能,不再详述。       

 进入网站,就可以看到行政区划的电子地图,同时地图下方可以查看其属性信息,具体有地名、驻地人口、面积、行政区划代码、区号和邮编这些信息。以南京市为例,见下图。


04

地图API获取矢量数据

百度地图目前支持全国所有省市(台湾除外)的展现和poi搜索、导航服务。由于地图api的更新频率和百度官方在线地图服务更新频率一致。保持全国数据季度级更新,局部数据实时更新。目前百度地图只支持县级及其以上的行政区域的查询。建议大家调用前仔细阅读《百度地图API使用条款》。

 在此小编重新整合之前写过的代码,调用百度地图JavaScript API v1.3来介绍这种获取方法(调用其他地图接口方法类似)。

       注意:本例使用了ActiveXObject控件,这是只有IE浏览器支持创建的控件。运行代码时可能会提示“已限制ActiveX控件”,选择允许即可。

以南京市玄武区为例,在网页界面输入,查询显示结果如下图:

点击获取轮廓线即可生成政区名.txt文件(存储在D盘),输出文件内容如下图。后期可以将百度坐标转化为WGS84坐标,通过ArcGIS等软件由点生成面,然后就可以使用这份数据啦~

示例代码如下:

1<body>

2    <!--地图容器-->
3    <div id="container"></div>
4    <br />
5
6    <!--提示文字、搜索框-->
7    输入省、市或县名称:  <input type="text" id="districtName" style="width:80px" value="">
8
9    <!--查询按钮-->
10    <input type="button" onclick="getBoundary()" value="获取轮廓线">
11
12    <script type="text/javascript">
13      //调用地图接口,设置地图初始中心、添加地图的平移缩放控件
14      var map = new BMap.Map("container");
15      map.centerAndZoom(new BMap.Point(118.917674, 32.109577), 5);
16      map.addControl(new BMap.NavigationControl({type: BMAP_NAVIGATION_CONTROL_SMALL}));
17      map.enableScrollWheelZoom();
18
19      //创建文件,存储行政区划边界点的坐标
20      var fso = new ActiveXObject("Scripting.FileSystemObject"); 
21      var folderName = "D:\\";
22      if(!fso.FolderExists(folderName)) 
23      {
24        fso.CreateFolder(folderName);
25      } 
26
27      //定义查询按钮触发的函数
28      function getBoundary()
29     {
30        //bdary存储行政区域边界,name存储查询名称
31        var bdary = new BMap.Boundary();
32        var name = document.getElementById("districtName").value;
33
34        //get方法,获取行政区域的边界
35        //rs是获取到的结果
36        bdary.get(name, function(rs)
37        {
38          map.clearOverlays();
39        //存储行政区域边界的点数
40         var count = rs.boundaries.length; 
41
42          //获取到边界的点数组后,添加一个多边形覆盖物
43          for(var i = 0; i < count; i++)
44          {
45            var poly = new BMap.Polygon(rs.boundaries[i], {strokeWeight: 2.5, strokeColor: "#191970"}); 46            map.addOverlay(poly); 
47            map.setViewport(poly.getPath());            
48          }
49
50          //将坐标写入文件,输出文件
51          var newFileObject = null;
52          newFileObject = fso.CreateTextFile(folderName + name + ".txt",true);
53          newFileObject.Write(rs.boundaries[0]+"\n");
54          newFileObject.Close();
55        });   
56      }
57    </script>

58    </body>

代码提供:王天宇
来源:学术无界、全国地yan'li(版权归原作者及刊载媒体所有)

荐读

点击下文标题即可阅读

国家版图|中国行政区划和中国领陆
用数据分析中国哪些城市将崛起?

编辑 / 呼慧珊   审核 / 呼慧珊 张洁

指导:万剑华教授(微信号wjh18266613129)

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存