ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

[python&高德]行政区查询、调用wbe服务api获取省、市、区经纬度信息

2021-07-18 10:30:55  阅读:214  来源: 互联网

标签:s3 api python s2 s1 s5 s4 行政区 wbe


[python&高德]调用wbe服务api获取省、市、区经纬度信息
简介:

​ 基于高德开放的api接口中行政区域查询接口实现,快速的查找特定的行政区域信息,查询后直接导致csv数据到本地。该接口官方介绍链接:https://lbs.amap.com/api/webservice/guide/api/district

图片

一、获取高德web申请key方法移步这里:
https://lbs.amap.com/api/webservice/guide/create-project/get-ke
二、完整代码,输入key即可运行:
import requests
import pandas as pd
import time

# 行政区域查询 https://lbs.amap.com/api/webservice/guide/api/district

# 高德web key
key = 'xxxx'  # 高德地图API
# 只支持单个关键词语搜索关键词支持,行政区名称、citycode、adcode

while True:  # 创建循环,如果查询结果成功,跳出循环
    keywords = input('请输入需查询的关键词,例如,搜索国家(中国),搜索省份(例如山东),能够显示市(例如济南),区(例如历下区):\n')
    # 设置显示下级行政区级数,可选值:0、1、2、3
    subdistrict = input('设置显示下级行政区级数,输入数字:0、1、2、3:\n')
    # 此项控制行政区信息中返回行政区边界坐标点;base:不返回行政区边界坐标点;all:只返回当前查询district的边界值,不返回子节点的边界值;
    extensions = 'base'
    url = f'http://restapi.amap.com/v3/config/district?key={key}&keywords={keywords}&subdistrict={subdistrict}&extensions={extensions}'
    r = requests.get(url)
    data = r.json()
    # print(data)
    建议结果列表 = data['count']
    # print(建议结果列表)
    if 建议结果列表 == '0':
        print('参数输入错误,请重新输入!返回值:', 建议结果列表)
    else:
        break

行政区数据列表 = []  # 创建空列表,用户存储查询的数据

s1 = data['districts'][0]['adcode']  # 区域编码
s2 = data['districts'][0]['name']  # 行政区名称
s3 = data['districts'][0]['center']  # 区域中心点
s4 = data['districts'][0]['level']  # 行政区划级别
s5 = data['districts'][0]['citycode']  # 城市编码
if s4 == 'country':
    行政区数据列表.append([s2, '', '', '', '', s1, s3, s4, s5])  # 国家
if s4 == 'province':
    行政区数据列表.append(['', s2, '', '', '', s1, s3, s4, s5])  # 省份
if s4 == 'city':
    行政区数据列表.append(['', '', s2, '', '', s1, s3, s4, s5])  # 市
if s4 == 'district':
    行政区数据列表.append(['', '', '', s2, '', s1, s3, s4, s5])  # 区县
if s4 == 'street':
    行政区数据列表.append(['', '', '', '', s2, s1, s3, s4, s5])  # 街道

一级行政区数据 = data['districts'][0]['districts']
一级行政区个数 = len(一级行政区数据)
#print(一级行政区个数)

for i in range(0, 一级行政区个数):
    s1 = 一级行政区数据[i]['adcode']
    s2 = 一级行政区数据[i]['name']
    s3 = 一级行政区数据[i]['center']
    s4 = 一级行政区数据[i]['level']
    s5 = 一级行政区数据[i]['citycode']
    if s4 == 'country':
        行政区数据列表.append([s2, '', '', '', '', s1, s3, s4, s5])  # 国家
    if s4 == 'province':
        行政区数据列表.append(['', s2, '', '', '', s1, s3, s4, s5])  # 省份
    if s4 == 'city':
        行政区数据列表.append(['', '', s2, '', '', s1, s3, s4, s5])  # 市
    if s4 == 'district':
        行政区数据列表.append(['', '', '', s2, '', s1, s3, s4, s5])  # 区县
    if s4 == 'street':
        行政区数据列表.append(['', '', '', '', s2, s1, s3, s4, s5])  # 街道

    二级行政区数据 = 一级行政区数据[i]['districts']
    二级行政区个数 = len(二级行政区数据)

    for x in range(0, 二级行政区个数):
        s1 = 二级行政区数据[x]['adcode']
        s2 = 二级行政区数据[x]['name']
        s3 = 二级行政区数据[x]['center']
        s4 = 二级行政区数据[x]['level']
        s5 = 二级行政区数据[x]['citycode']
        if s4 == 'country':
            行政区数据列表.append([s2, '', '', '', '', s1, s3, s4, s5])  # 国家
        if s4 == 'province':
            行政区数据列表.append(['', s2, '', '', '', s1, s3, s4, s5])  # 省份
        if s4 == 'city':
            行政区数据列表.append(['', '', s2, '', '', s1, s3, s4, s5])  # 市
        if s4 == 'district':
            行政区数据列表.append(['', '', '', s2, '', s1, s3, s4, s5])  # 区县
        if s4 == 'street':
            行政区数据列表.append(['', '', '', '', s2, s1, s3, s4, s5])  # 街道

        三级行政区数据 = 二级行政区数据[x]['districts']
        三级行政区个数 = len(三级行政区数据)

        for y in range(0, 三级行政区个数):
            s1 = 三级行政区数据[y]['adcode']
            s2 = 三级行政区数据[y]['name']
            s3 = 三级行政区数据[y]['center']
            s4 = 三级行政区数据[y]['level']
            s5 = 三级行政区数据[y]['citycode']
            if s4 == 'country':
                行政区数据列表.append([s2, '', '', '', '', s1, s3, s4, s5])  # 国家
            if s4 == 'province':
                行政区数据列表.append(['', s2, '', '', '', s1, s3, s4, s5])  # 省份
            if s4 == 'city':
                行政区数据列表.append(['', '', s2, '', '', s1, s3, s4, s5])  # 市
            if s4 == 'district':
                行政区数据列表.append(['', '', '', s2, '', s1, s3, s4, s5])  # 区县
            if s4 == 'street':
                行政区数据列表.append(['', '', '', '', s2, s1, s3, s4, s5])  # 街道

df = pd.DataFrame(行政区数据列表, columns=['国家', '省份', '市', '区县', '街道', '区域编码', '区域中心点', '行政区划分级别', '城市编码'])
print(df)
路径 = '行政区域查询-' + str(time.strftime("%Y-%m-%d %H时%M分%S秒", time.localtime())) + '.csv'
df.to_csv(路径)
input('查询完成,结果输出在本程序目录下:' + 路径)

全文完。

标签:s3,api,python,s2,s1,s5,s4,行政区,wbe
来源: https://blog.csdn.net/qq_35625681/article/details/118873871

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有