经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » JavaScript » 查看文章
省、市、区、街道行政区数据以及行政区数据合并问题
来源:cnblogs  作者:林恒  时间:2021/12/15 9:02:57  对本文有异议

最近在开发的过程中,遇到了一个问题,如何将多段Polygon合并成一个,在网上找了好久,试了一堆方法,这里转载我找到的一个实际用起来最有用的方法

以下内容转载于:https://www.cnblogs.com/vmumu/p/13356419.html

一、行政区获取

公司需要做大屏数据展示,地图地区需要到街道级别。

查看了不少资料。

目前的解决方案是,省市级别的数据在阿里地图选择器下载( http://datav.aliyun.com/tools/atlas/),可以做到县级下钻,如果要下钻到街道级别,则需要网上找这部分数据(找了很多,不大靠谱。如果付费的话,BIGEMAP,3000多授权,能下载所有行政区数据)。我们公司小,需求不多,就湖南部分区县,所以网上找的方案,用的BIGEMAP的免费功能,导出边界,一个个的街道导出(BIGEMAP无mac版)

 

以醴陵市(湖南省-株洲市-醴陵)为例

1、导出所有街道级别KML文件,然后在 http://geojson.io/#new 转化为JSON数据,转化后数据格式大概如下。

  1. {
  2. "type": "FeatureCollection",
  3. "features": [
  4.   {
  5.   "type": "Feature",
  6.   "geometry": {
  7.   "type": "Polygon",
  8.   "coordinates": []
  9.       }
  10.     }
  11.   ]
  12. }

2、合并数据,将所有街道级别JSON,合并到一起,就是整个醴陵市区的行政区数据。上述代码JSON对象下features数据放到一个features对象下(数据太多可以用nodejs或者java写个方法,读取文件合并)

  1. {
  2. "type": "FeatureCollection",
  3. "features": [
  4.  {
  5. // 街道1下features
  6. },
  7.  {
  8. // 街道2下features
  9. },
  10.  {
  11. // 街道3下features
  12. },
  13. // ...
  14.   ]
  15. }

二、行政区数据合并

区级别的行政区及以上级别可能改变会比较小,街道级别数据变动比较多,以醴陵为例,BIGEMAP上数据应该是比较早以前数据,2015年后街道合并、改名的有很多,下图对照即可看出

(左边为BIGEMAP上的醴陵市行政区数据,右图是我们系统的,差不多也是最新的数据。)

 

注:本文以geojson、mapshaper这两个网站合并区域为例,其他博客也看到可以用js之类处理合并,可以去看看

 

 1、合并数据,以【明月镇】为例,百度百科数据(2015年,贺家桥镇与大障镇成建制合并设立明月镇)。

在 http://geojson.io/#new 上传家桥镇与大障镇的kml文件(之前已下载) OPEN - FILE

 

 获得如下行政区边界数据

 将右侧数据复制出来,另存为json文件

2、修改该json文件,目前得到数据如下,features数组对象下,每个对象的properties增加alias属性,属性值为合并后名字。保存

3、打开https://mapshaper.org/,选择刚上传的json文件导入,得到如下数据

 

 

打开网站命令行工具,输入命令 dissolve 'alias' -o result.json,回车,然后下载json文件

 4、校验,下载完的json数据拷贝出来,放入geojson右侧JSON框内,就可以看到合并后的行政区了。注意修改properties下的属性,合并后,属性名为 alias ,需改为 name,与之前保持一致

 

 

如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。

 

原文链接:http://www.cnblogs.com/smileZAZ/p/15671936.html

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号