首页 > 其他分享 >递归获取省市区的边界信息文件,用于echarts的map地图

递归获取省市区的边界信息文件,用于echarts的map地图

时间:2023-06-05 15:44:12浏览次数:50  
标签:map code 递归 level 获取 import 省市区 echarts

数据来源为阿里云,单个省市区信息可直接在这里面下载: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)

 

标签:map,code,递归,level,获取,import,省市区,echarts
From: https://www.cnblogs.com/alecc1124/p/17457944.html

相关文章

  • SpringBoot中的MapStruct使用
    目的:MapStruct可以实现对象之间的转换一、引入依赖<!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--mapstruct--><dependency><groupId>org.m......
  • Map特点
    1.Map集合概述:Map集合是双列集合,每个元素拥有两个数据Map集合每个元素的格式为:key=value(键值对集合),因此也可以称作键值对集合2.Map集合体系特点:Map集合的特点由键决定Map集合的键是无序,不重复,无索引的,值可重复,且可以为nullMap集合后面重复的键对应的值会覆盖前面重复键的值Map<Stri......
  • Java Map 集合类简介
    源:http://www.oracle.com/technetwork/cn/articles/maps1-100947-zhs.html#T1评:了解最常用的集合类型之一Map的基础知识以及如何针对您应用程序特有的数据优化Map。java.util中的集合类包含Java中某些最常用的类。最常用的集合类是List和Map。......
  • 关于echarts无法在mounted中渲染的问题
    最初实现:echarts图标被单独作为一个组件引入,通过传入数据来显示。<divclass="echart"><divclass="echarts-cont"><Charts:dataList="list":total="total"></Charts></div>echarts组件代码:exportdefault{name:"......
  • 包含引用类型字段的自定义结构体,能作为map的key吗
    1.引言在Go语言中,map是一种内置的数据类型,它提供了一种高效的方式来存储和检索数据。map是一种无序的键值对集合,其中每个键与一个值相关联。使用map数据结构可以快速地根据键找到对应的值,而无需遍历整个集合。在Go语言中,map是一种内置的数据类型,可以通过以下方式声明和初......
  • 包含引用类型字段的自定义结构体,能作为map的key吗
    1.引言在Go语言中,map是一种内置的数据类型,它提供了一种高效的方式来存储和检索数据。map是一种无序的键值对集合,其中每个键与一个值相关联。使用map数据结构可以快速地根据键找到对应的值,而无需遍历整个集合。在Go语言中,map是一种内置的数据类型,可以通过以下方式声明和......
  • Hibernate Tools生成Hibernate Mapping文件及PO类
    [color=red][b]本文参考[/b][/color]:HowToGenerateHibernateMappingFiles&AnnotationWithHibernateTools[url]http://www.mkyong.com/hibernate/how-to-generate-code-with-hibernate-tools/[/url]eclipse利用HibernateTools生成HibernateMap......
  • c++进行map数据横向合并
    请帮我写一段代码。nlohmann::json怎么把三个字典合并到一起,c++14标准,并且每个字典的长度不一样,原数据不是json。例如:data1=[{"key1":"a1","key2":1},{"key1":"a2","key2":2}]data2=[{"key3":"b1",},{"key3&......
  • Map 接收 @RequestBody,Controller 层可以打印值,但是 mybatis 编译 SQL 语句显示 NULL
    mybatis#{}获取的key是否一致;前端发送请求类型是否与后端接口定义的请求类型一致;前端发送请求与接口请求的类型一致的情况下,检查post请求封装data时是否以get形式传递数据。我的问题是第三个,尤其是后端不报任何错误的情况下,第三种情况极有可能。我把axios.post......
  • LRU缓存与LinkedHashMap源码
    今天再刷LeetCode时,遇到了第146题LRU缓存。题目如下:请你设计并实现一个满足LRU(最近最少使用)缓存约束的数据结构。实现LRUCache类:LRUCache(intcapacity)以正整数作为容量capacity初始化LRU缓存intget(intkey)如果关键字key存在于缓存中,则返回关键字的值,否......