递归获取省市区的边界信息文件,用于echarts的map地图
数据来源为阿里云,单个省市区信息可直接在这里面下载:http://datav.aliyun.com/portal/school/atlas/area_selector#&lat=30.332329214580188&lng=106.72278672066881&zoom=3.5
由于需求需要点击省份里面的城市就展示新的城市的地图,所以需要把所有省市区的边界信息json全部下载下来。阿里云提供的地址我司域名获取时可能会出现跨域情况,所以直接获取下来放公司的存储服务器;
python脚本获取(直接exe获取可联系作者获取):
import requests import json import os url = 'https://geo.datav.aliyun.com/areas_v3/bound/geojson?code=' headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36" } # 递归获取数据 def deepGet(code=430000,num=1,level=3): params = str(code) level = int(level) print('正在获取{}的信息'.format(params)) if(num<level): params += '_full' url1 = url + params response = requests.get(url1, headers = headers) data = json.loads(response.text) to_src = './address' if not os.path.exists(to_src): os.mkdir(to_src) with open('{}/{}.json'.format(to_src,params),'w',encoding="utf-8") as file: file.write(response.text) if(num<level): ls = data.get('features') for i in range(0,len(ls)): item = ls[i] code = item.get('properties').get('adcode') deepGet(code,num+1) if __name__ == '__main__': input('默认获取子区域(除街道级),如不想获取子区域,则可直接输入:1 430000,回车确认;') level = input('请输入你想获取的级别(4-国,3-省,2-市,1-区):') code = input('请输入根地区的编码(例-湖南:430000):') deepGet(code,1,level)
肖cc
QQ2398506993
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!