geojson 数据下载地址:https://hxkj.vip/demo/echartsMap/

可下载的数据包含省级geojson行政边界数据、市级geojson行政边界数据、区/县级geojson行政边界数据、省市区县街道行政编码四级联动数据(可精确到乡镇/街道级)

该项目 github 地址:https://github.com/TangSY/echarts-map-demo,喜欢的话,可以给个star哦

一、通过API接口,实时获取最新中国省市区县geoJSON格式地图数据,可用于Echarts地图展示

1、效果图如下

2、示例代码

 downloadMapCode() {// 下载mapCode数据let mapCode = [], cityMapCode = [], provinceMapCode = [], provinceList = [], cityList = [],districtList = [];provinceList = this.codeList.filter(item => {return item.level === 'province'})cityList = this.codeList.filter(item => {return item.level === 'city'})districtList = this.codeList.filter(item => {return item.level === 'district'})districtList.forEach(item => {mapCode.push({name: item.name,cityCode: item.code,fatherCode: `${item.code.substring(0, 4)}00`,children: []})})// 筛选出直辖市下面的区县let direct = mapCode.filter(item => {return item.fatherCode.includes('0000');})for (let i in cityList) {let children = []for (let j in mapCode) {if (mapCode[j].fatherCode == cityList[i].code) {children.push(mapCode[j])}}cityMapCode.push({name: cityList[i].name,cityCode: cityList[i].code,fatherCode: `${cityList[i].code.substring(0, 2)}0000`,children: children})}cityMapCode = cityMapCode.concat(direct);for (let i in provinceList) {let children = []for (let j in cityMapCode) {if (cityMapCode[j].fatherCode == provinceList[i].code) {children.push(cityMapCode[j])}}provinceMapCode.push({name: provinceList[i].name,cityCode: provinceList[i].code,fatherCode: '100000',children: children})}if (provinceMapCode.length === 0) returnthis.zip.file(`mapCode.json`, JSON.stringify(provinceMapCode));this.downloadTips = '文件打包压缩中...';this.zip.generateAsync({ type: "blob" }).then((content) => {saveAs(content, "mapCode.zip");});},// 下载全国地名和编码(不包含边界数据)downloadNameAndCode() {let opts = {subdistrict: 3, //返回下一级行政区showbiz: false, //最后一级返回街道信息};let district = new AMap.DistrictSearch(opts); //注意:需要使用插件同步下发功能才能这样直接使用district.search('中国', function (status, result) {if (status === 'complete') {getData(result.districtList[0]);}});let _this = thisfunction getData(data) {let districtList = data.districtList;let blob = new Blob([JSON.stringify(districtList)], {type: 'text/plain;charset=utf-8',});let filename = '全国省市区县街道和编码(不包含边界数据)';_this.$ba.trackEvent('echartsMap', '全国省市区县街道和编码(不包含边界数据)下载', filename);saveAs(blob, `${filename}.json`); //filename}},echartsMapClick(params) {//地图点击事件this.$ba.trackEvent('echartsMap', '点击地图', `${params.data.name}-${params.data.cityCode}`);if (params.data.level == 'street') return;//清除地图上所有覆盖物for (var i = 0, l = this.polygons.length; i < l; i++) {this.polygons[i].setMap(null);}this.cityName = params.data.name;this.cityCode = params.data.cityCode;this.district.setLevel(params.data.level); //行政区级别this.district.setExtensions('all');//行政区查询//按照adcode进行查询可以保证数据返回的唯一性this.district.search(this.cityCode, (status, result) => {if (status === 'complete') {this.getData(result.districtList[0], params.data.level, this.cityCode);}});},loadMapData(areaCode) {AMapUI.loadUI(['geo/DistrictExplorer'], DistrictExplorer => {//创建一个实例var districtExplorer = window.districtExplorer = new DistrictExplorer({eventSupport: true, //打开事件支持map: this.map});districtExplorer.loadAreaNode(areaCode, (error, areaNode) => {if (error) {console.error(error);return;}let mapJson = {};mapJson.type = "FeatureCollection";mapJson.features = areaNode.getSubFeatures();this.loadMap(this.cityName, mapJson);this.geoJsonData = mapJson;});});},

二、通过获取到的数据整理一系列联动数据,实现了每天自动更新

1、效果图

2、示例代码

downloadJson(nameType) {//geo文件下载this.nameType = nameTypeif (nameType === 'area') {this.$ba.trackEvent('echartsMap', '文件下载', '下载级联数据');this.$refs.dialog.show();return;}if (nameType === 'all') {this.$ba.trackEvent('echartsMap', '文件下载', '打包下载全部');this.$refs.dialog.show();return;}if (nameType === 'street') {this.$ba.trackEvent('echartsMap', '文件下载', '下载乡镇数据');this.$refs.streetDialog.show();return;}var blob = new Blob([JSON.stringify(this.geoJsonData)], { type: "text/plain;charset=utf-8" });let filename = this.cityName;if (nameType === 'code') {filename = this.cityCode;}this.$ba.trackEvent('echartsMap', '文件下载', filename);saveAs(blob, `${filename}.geoJson`);//filename},dialogConfirm() {if (this.nameType === 'area') {this.$refs.mapDataDialog.show();} else {this.downloadAllJson()}},downloadAllJson() {//一次打包下载所有的数据this.showTips();if (this.downloadTips != '下载geoJson数据') {return;}this.codeList = [];this.downloadTips = '获取数据中...';//                this.district.setLevel('country'); //行政区级别this.district.setExtensions('all');console.log('开始递归循环获取地区code..');this.loopSearch('中国');},loopSearch(code) {setTimeout(() => {this.district.search(code, (status, result) => {if (status == 'complete') {console.log(`${code}--获取成功`)for (let i in result.districtList[0].districtList) {this.codeList.push({name: result.districtList[0].districtList[i].name,code: result.districtList[0].districtList[i].adcode,level: result.districtList[0].districtList[i].level})//这边没想出来怎么判断数据是否全部加载完毕了,只能采用这种死办法//有更好解决方案的大佬,麻烦告诉我一下,邮箱t@tsy6.com//或者直接Github提交PR,在此不胜感激if (this.codeList.length >= 428) {// 为 3718 时,获取区县数据,428 省市数据console.log('code获取完成');this.isCodeListLoadComplete = true;}if (result.districtList[0].districtList[i].adcode && result.districtList[0].districtList[i].level != 'city' && result.districtList[0].districtList[i].level != 'district' && result.districtList[0].districtList[i].level != 'street') {this.loopSearch(result.districtList[0].districtList[i].adcode)}}} else {//第一遍查询出错,再次执行查询console.log(`${code}--第一次获取失败,正在尝试进行第二次获取`)this.district.search(code, (status, result) => {if (status == 'complete') {console.log(`${code}--第二次获取成功`)for (let i in result.districtList[0].districtList) {this.codeList.push({name: result.districtList[0].districtList[i].name,code: result.districtList[0].districtList[i].adcode,level: result.districtList[0].districtList[i].level})//这边没想出来怎么判断数据是否全部加载完毕了,只能采用这种死办法//有更好解决方案的大佬,麻烦告诉我一下,邮箱t@tsy6.com//或者直接Github提交PR,在此不胜感激if (this.codeList.length >= 428) {console.log('code获取完成');this.isCodeListLoadComplete = true;}}} else {console.log(`${code}--第二次获取失败,请联系email:t@tsy6.com`)}})}});}, 500)},loadAllGeoJson() {//通过codeList加载全部geoJson数据console.log('开始加载geoJson数据');AMapUI.loadUI(['geo/DistrictExplorer'], DistrictExplorer => {//创建一个实例var districtExplorer = window.districtExplorer = new DistrictExplorer({eventSupport: true, //打开事件支持map: this.map});let mapJson = {};for (let i in this.codeList) {setTimeout(() => {districtExplorer.loadAreaNode(this.codeList[i].code, (error, areaNode) => {if (error) {this.codeList[i].geo = 'error';console.log(`${this.codeList[i].name}--${this.codeList[i].code},geo 数据获取失败,高德地图的锅^_^`)} else {mapJson.type = "FeatureCollection";mapJson.features = areaNode && areaNode.getSubFeatures() || '';this.codeList[i].geo = mapJson;console.log(`${this.codeList[i].level}--${this.codeList[i].name}--${this.codeList[i].code},geo 数据获取成功,马上为你打包`)}if (this.codeList[i].level === 'province') {this.zip.file(`100000/${this.codeList[i].code}.geoJson`, JSON.stringify(mapJson));} else {this.zip.file(`100000/${this.codeList[i].code.substring(0, 2)}0000/${this.codeList[i].code}.geoJson`, JSON.stringify(mapJson));}if (this.codeList.every(item => item.geo)) {console.log('ziped');let readme = `\r\n项目源码github地址:https://github.com/TangSY/echarts-map-demo (欢迎star)\r\n个人空间:https://www.hxkj.vip (欢迎闲逛)\r\nEmail:t@tsy6.com  (遇到问题可以反馈)`;this.zip.file(`readMe(sourceCode).txt`, readme);this.downloadTips = '文件打包压缩中...';this.zip.generateAsync({ type: "blob" }).then((content) => {saveAs(content, "geoJson数据包.zip");this.downloadTips = '下载geoJson数据';this.isCodeListLoadComplete = false;this.$ba.trackEvent('echartsMap', '文件下载', '打包下载成功');});}});}, 100 * i)}});},

实时最新中国省市区县geoJSON格式地图行政边界数据Echarts地图数据(可精确到街道级)相关推荐

  1. 最新中国省市区县geoJSON格式地图数据Echarts地图数据

    最新全国省市区县geoJSON格式的地图数据,可直接用于echarts地图展示: https://github.com/lyhmyd1211/GeoMapData_CN 全国地图: china.jso ...

  2. 求一份 2018年5月更新最新全国省市区县geojson数据(江苏)(echarts等图表可用)

    由于1.echarts官网不在提供地图下载 2.江苏省市区县等行政区域调整 求大神提供一个 2018年5月更新最新全国省市区县geojson数据(江苏)的 压缩包,谢谢各位. PS:防止水军,不需要下 ...

  3. 使用echarts完成中国省市区县镇地图展示

    目录 前言 一.中国地图 1.1 地图数据-china.js 1.2 代码应用 二.省份地图--以山东为例,其他省份同理 2.1 地图数据-shandong.js 2.2 代码应用 三.市级地图--以 ...

  4. 中国省市区县行政编码sql脚本

    中国省市区县行政编码sql脚本 1.初始化数据库 截至2020年2月,中国省市区县行政编码sql脚本: 链接: https://pan.baidu.com/s/1GLQy7fpqPOsqMLuIn12 ...

  5. 浙江省地图省市区县geoJSON数据

    Three还有各种Echarts地图 浙江通用地图geoJson 浙江全省市区县数据 最近工作中用到的东西做了梳理,有需求的自取,如有缺失请联系邮箱1507805586@qq.com 附带链接 :浙江 ...

  6. ECharts自定义地图——行政划分“乡镇级别”地图

    百度地图API能够直接划分区级别的行政划分: 如果是在线访问的系统可以参考链接https://blog.csdn.net/myfmyfmyfmyf/article/details/69382618#c ...

  7. 提取某一个镇的行政边界_高德地图api获取行政边界矢量方法

    高德地图api获取行政边界矢量方法 发布时间:2018-09-07 17:51, 浏览次数:2170 , 标签: api 1.获取高德地图web服务key 2.行政区域查询API服务地址: https ...

  8. 免费分享下载最新全国省市区县和乡镇街道行政区划矢量边界坐标经纬度地图数据 shp geojson json sql格式

    关键词: 省市区三级, 乡镇四级, 全国, 行政区划, 坐标边界, 矢量数据, 地理围栏, 免费下载, 2018 2019 2020 2021 2022年份, 最新数据, 长期更新, 开源维护, 支持 ...

  9. 中国省市区县行政编码处理(转存在到数据库)

    表schema CREATE TABLE `t_china_area` (`code` varchar(10) NOT NULL COMMENT '地区编码',`name` varchar(20) N ...

最新文章

  1. 8086汇编语言精华笔记总结~
  2. C#中的BackgroundWorker控件
  3. autocad三维汇报,bim汇报,视图汇报方法
  4. PYTHON __main__
  5. prometheus下载慢_Prometheus + Grafana 监控 SpringBoot
  6. String 的普通构造函数、拷贝构造函数、析构函数、赋值函数
  7. 4项探索+4项实践,带你了解华为云视觉预训练研发技术
  8. Azure ARM 上传自定义镜像
  9. 美国计算机科学奥林匹克竞赛试题,中学信息奥林匹克竞赛试题精选.doc
  10. 科大讯飞 语音识别 VB WIN10 X64 VS2017
  11. 面试必考:秒杀系统的9个核心知识点,一次性打包给你
  12. 富士施乐 DocuCentre-V 3065 打印机远程命令执行漏洞
  13. edm邮件html模板,EDM模板使用说明
  14. Win7系统怎么获取administrator权限?获取administrator权限的方法
  15. Can‘t read file : End of file found 文件:txn_current、current svn无法正常读取文件
  16. 一图看懂中国AI战场局势:只有百度和华为真的在做AI
  17. wireless communications in smart grid 2
  18. 如何用吹风机计算机主机清理,教您如何清理电脑主机灰尘,电脑除尘教程
  19. 基于MATLAB的图像去遮挡修复数字图像处理系统
  20. Bitmap位图文件读取、保存、屏幕截图

热门文章

  1. pink老师JavaScript视频教程笔记
  2. Exercise14_11
  3. SLAM笔记(七)回环检测中的词袋BOW
  4. python 双重循环处理
  5. linux 密码设置问题
  6. 转载—左耳朵耗子《程序员如何把控自己的职业》
  7. python数据分析——择偶标准与黑名单
  8. 耗时一周整体,这4款黑科技电脑软件,功能强大到离谱
  9. Python之文件处理-JSON文件
  10. pythonrequests爬虫怎么用_python爬虫之requests的高级使用