打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python 一键获取市县级城市经纬度信息

目录

一、数据来源

二、全部代码

三、使用介绍

3.1 获取全省所有地级市经纬度信息

3.2 获取某个地级市下所有区县经纬度信息

3.3 获取全省所有区县经纬度信息

一、数据来源

本文所涉及的市、县级经纬度数据均来自于阿里云,数据更新于2020年4月。

二、全部代码

import requests

import json

import pandas as pd

import re

def get_feature_list(url):

    r = requests.get(url)

    data = json.loads(r.text)

    return data['features']

def get_data(city_data): 

    df = []

    for city in city_data:

        city_code = city['properties']['adcode']

        city_name = city['properties']['name']

        lon,lat = city['properties']['center']

        df.append([city_code,city_name,lon,lat])

    df = pd.DataFrame(df,columns=['城市代码','城市名称','经度','维度'])

    return df

def main(url,whether):  #是则爬取一级行政单位,否则爬取二级行政单位

    data = get_feature_list(url)

    if whether:

        city_data = get_data(data)

        city_data.to_csv('C:/users/dell/Desktop/city.csv',encoding='gbk',index=False)

    else:

        county = pd.DataFrame()

        pattern = '\d+'

        for city in data:

            city_code = city['properties']['adcode']

            url = re.sub(pattern,str(city_code),url)

            county_data = get_data(get_feature_list(url))

            county = pd.concat([county,county_data])

            print(city['properties']['name']+'下所有区县保存完毕')

        county.to_csv('C:/users/dell/Desktop/county.csv',encoding='gbk',index=False)                                              

if __name__=='__main__':

#改变此处的url,即可获取不同地区的经纬度信息(其中,code后面对应的数字唯一对应一个地区)

    url = 'https://geo.datav.aliyun.com/areas/bound/geojson?code=420000_full' 

    main(url,False) #True则爬取二级行政单元,False则爬取三级行政单元

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

三、使用介绍

以下,均以安徽省为例

3.1 获取全省所有地级市经纬度信息

打开上述数据网址,在搜索栏中输入安徽省,并复制红框处的地址,将上述代码中的url换成该地址即可。

此时,如果想要获取安徽省所有地级市的经纬度信息,则将main函数中的第二个参数设置为True,最终爬取结果如下:

3.2 获取某个地级市下所有区县经纬度信息

若想要获取合肥市下所有区县的经纬度信息,同理,在搜索栏中输入合肥市,将红框处的地址复制到代码中的url处,并设置main函数中第二个参数为True

最终,爬取结果如下:

3.3 获取全省所有区县经纬度信息

若想获取安徽省下所有区县的经纬度信息,则将安徽省所对应网址复制到url处,并设置main函数第二个参数为False即可。最终,爬取的结果如下:

以上,就是本次分享的全部内容~

————————————————

版权声明:本文为CSDN博主「皖渝」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/shine4869/article/details/113184292

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
中国一共有多少个省,市,县,乡,村?
中国地名翻译注意事项
美国的行政区划是怎样的?县大还是市大?什么是独立市?什么是市县合一 ?
ArcGIS综合制图.doc(文档)
RPA练习题004:制作各城市间的里程查询表
手把手教你用Python替代Mapinfo更快查找两张表中距离最近的点
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服