python+百度地图 实现地址转换为经纬度(全网最简单方法)

前期准备

首先安装需要的库,requests(主要用于获取百度地图API地址)

需要导出的相关结果的话就需要引入pandas、csv库,这里根据自己需要选择即可。

安装requests包

可以使用:

pip install requests

方式安装本次内容主要的包,
其他包也可以通过此方法来安装,这是最简单的方法

在百度地图开放平台申请AK

AK申请链接

http://lbsyun.baidu.com

百度地图开发平台主页
进入百度地图开发平台页面以后先进行账号注册登录然后点击“开发文档”
在这里插入图片描述
选择LBS云,再点击下图“获取密钥”,进行“傻瓜式”激活流程就可以了!
在这里插入图片描述
申请成功后,就可以使用了!!!

接下来进入正题

首先, AK使用方法

直接上图
在这里插入图片描述
申请成功后,进入控制台按照上图操作”创建应用“
在这里插入图片描述
名称自己随便写就行,应用类型就根据自己的实际情况来选择,像anaconda-jupyter是在浏览器打开的,我们就选择浏览器端,启用服务直接全选就行(不用调用每个服务都重新创建应用)

白名单:
浏览器端可以直接写*

其他端,下面也都会有相应提示,实在不懂就问”度娘“

以上操作都完成后,就可以直接复制AK使用了!!!
在这里插入图片描述

最后,上代码

下列代码中的URL访问以及API服务信息,可参考:
百度地图开发平台–Web服务API–地理编码–服务文档

http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding

import requests

AK = "百度AK"       #  把复制的AK直接粘贴过来就可以了

def change(name):
    url = 'http://api.map.baidu.com/geocoding/v3/?address=%s&output=json&ak=%s'%(name,AK)
    res = requests.get(url)
    if res.status_code == 200:
        val = res.json()
        if val["status"] == 0:
            retval = {'地址':name,'经度':val['result']['location']['lng'],'纬度':val['result']['location']['lat'],'地区标签':val['result']['level'],'是否精确查找':val['result']['precise']}
        else:
            retval = None
        return retval
    else:
        print('无法获取%s经纬度'%name)


if __name__ == '__main__':
	print(change('故宫博物院'))

像我用的是anaconda做相关练习,输入“故宫博物院”

最后输出内容如下:
在这里插入图片描述
如果想批量转化地址,就直接调用这个方法就可以了🙌🏻🙌🏻🙌🏻

讲解就到这里了,喜欢就点个赞吧🥰🥰🥰

有没懂的地方可以给我留言🙂🙂🙂

  • 20
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
利用Python和高德地图API实现经纬度与地址的批量转换是可行的。首先,我们需要准备高德地图的API密钥,该密钥可以通过高德地图开发者平台申请获得。 接下来,我们可以使用Python中的requests库发送HTTP请求,通过调用高德地图的逆地理编码接口,将经纬度转换为地址。我们需要将API密钥和待转换的经纬度构建为合适的URL,并发送GET请求。高德地图API将返回JSON格式的数据,其中包含有关地址信息的详细内容。 在代码中,我们可以使用for循环来遍历经纬度的列表,对每个经纬度调用逆地理编码接口并解析返回的JSON数据。我们可以从返回的数据中提取出地址信息,并将其保存到一个新的CSV文件中。 以下是一个简单的示例代码: ```python import requests import csv api_key = "your_api_key" def get_address(lat, lng): url = f"https://restapi.amap.com/v3/geocode/regeo?key={api_key}&location={lng},{lat}&radius=1000&extensions=all&batch=true&roadlevel=1" response = requests.get(url) data = response.json() address = data['regeocodes'][0]['formatted_address'] return address def main(): with open('input.csv', 'r') as input_file, open('output.csv', 'w', newline='') as output_file: reader = csv.reader(input_file) writer = csv.writer(output_file) writer.writerow(['经度', '纬度', '地址']) for row in reader: lat, lng = row[0], row[1] address = get_address(lat, lng) writer.writerow([lat, lng, address]) print("地址转换完成!") if __name__ == '__main__': main() ``` 在这个示例中,我们假设输入文件是一个CSV文件,其中包含经纬度数据。我们将转换后的地址保存到新的CSV文件中,其中包含经度、纬度和地址信息。 通过运行这个Python脚本,我们可以批量转换经纬度为地址,并将结果保存到输出文件中。这样,我们就可以在后续的工作中方便地使用地址信息了。
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值