Python百度地图API,通过区县、村镇地址获取完整省市区行政区划

import pandas as pd
import requests
import json

AK = "********"

place = "甘肃省庆阳市合水县"

def getCoordinates(place):
    url = f"https://api.map.baidu.com/geocoding/v3/?address={place}&output=json&ak={AK}"
    res = requests.get(url)
    json_data = json.loads(res.text)

    if json_data["status"] == 0:
        return json_data["result"]["location"]["lat"], json_data["result"]["location"]["lng"]
    else:
        return "no data", json_data["status"]

print(getCoordinates("甘肃省庆阳市合水县"))

def adminDivision(lat, lng):
    url = f"https://api.map.baidu.com/reverse_geocoding/v3/?ak={AK}&output=json&coordtype=gcj02ll&language=zh-CN&location={lat},{lng}"
    res = requests.get(url)
    json_data = json.loads(res.text)

    if json_data["status"] == 0:
        return json_data["result"]["addressComponent"]["province"], json_data["result"]["addressComponent"]["city"], json_data["result"]["addressComponent"]["district"]
    else:
        return "no data", "no data", "no data"

lat, lng = getCoordinates("红古区花庄镇湟兴村")
print(adminDivision(lat, lng))

if __name__ == "__main__":
    data = pd.read_csv("xaquyu.csv")
    res = []
    for i in range(len(data)):
        province = data.iloc[i,0]
        address = data.iloc[i,1]
        place = province + address
        lat, lng = getCoordinates(place)
        res_province, res_city, res_district = adminDivision(lat, lng)
        res.append([province, address, res_province, res_city, res_district])
    pd.DataFrame(res).to_csv(
        "result_quyu.csv",
        header=["省份", "目的地", "省", "市", "区县"],
        encoding="utf-8-sig",
        index=False
    )

Original: https://blog.csdn.net/weixin_45249324/article/details/126597664
Author: guoz2019
Title: Python百度地图API,通过区县、村镇地址获取完整省市区行政区划

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/676928/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球