分享

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

 昵称QAb6ICvc 2022-03-16

目录

一、数据来源

二、全部代码

三、使用介绍

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多