获取经纬度

复制代码
import json
from urllib.request import urlopen
from urllib.parse import quote
import openpyxl

# 定义函数

def Getlngat(address):

    url = 'http://api.map.baidu.com/geocoding/v3/'
    output = 'json'
    ak = '**************'   # API密钥(百度开发者平台)
    add = quote(address)
    url = url + '?' + 'address=' + add + '&output=' + output + '&ak=' +ak  # 拼接url
    req = urlopen(url)
    res = req.read().decode()  # 将其他编码的字符串解码成unicode
    temp = json.loads(res)  # 对json数据进行分析
    return temp

# 解析

def Analy(file_path):
    wb =openpyxl.load_workbook(file_path)
    ws = wb.active
    ws.cell(1,2).value='纬度'
    ws.cell(1,3).value='经度'
    for i in range(2,ws.max_row+1):
        try:  # 异常捕获发生异常的坐标,不影响后续地点坐标获取
            address = ws.cell(i,1).value
            lng = Getlngat(address)['result']['location']['lng'] # 获取经度
            lat = Getlngat(address)['result']['location']['lat'] # 获取纬度
            ws.cell(i,2).value = round(lng,3)  # 写入经度,并保留3为小数
            ws.cell(i,3).value = round(lat,3)  # 写入纬度,并保留3位小数
            print(address,lng,lat)
        except:
            ws.cell(i,4).value = "该地点目前未能获取,请重新尝试"
        wb.save(file_path)

# 主函数

Analy(file_path=r'D:\PyCharm\坐标抓取\地点坐标.xlsx')
复制代码

 

posted @   徐俊112  阅读(93)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示