Python调用百度地图API获取地址经纬度完整指南

凌晨两点半
凌晨两点半
发布时间:2026-10-13 | 2人浏览过
原创

本文详细介绍如何使用Python调用百度地图API获取指定地址的经纬度。内容涵盖从开发者中心申请AK和SK密钥、配置SN校验方式,到使用Python3计算SN签名及构造最终请求URL的全过程。通过具体代码示例和返回结果解析,帮助开发者快速实现地理编码功能。

前言

近期时间较为充裕,笔者接触了百度地图开放平台(开发者中心链接:http://developer.baidu.com)的API接口,发现其调用过程十分便捷。本文将系统性地讲解如何利用Python通过百度地图API获取特定地址的经纬度坐标,分享具体实现步骤供读者参考学习。

申请百度API

首先访问网址 http://lbsyun.baidu.com/index.php?title=首页 。

在功能与服务栏目中选择“地图”,点击左侧的“获取密匙”选项。随后按照页面提示完成申请流程,该过程需要进行手机验证、绑定百度账号以及邮箱认证。

激活账号后可进入后台管理页面,此时可以开始创建应用。在请求校验方式上,系统提供两种选择:一种是白名单IP模式,另一种是SN校验模式(界面旁附有计算说明)。此处我们选择SN校验方式。

应用创建成功后,系统将生成对应的AK(Access Key)和SK(Secret Key)。接下来将详细说明如何基于这两个密钥计算SN值。

计算SN(基于Python3.x环境)

from urllib import parse
import hashlib 
def get_urt(addtress): 
 # 以get请求为例http://api.map.baidu.com/geocoder/v2/?address=百度大厦&output=json&ak=你的ak
 queryStr = '/geocoder/v2/?address=%s&output=json&ak=你的ak' % addtress 
 # 对queryStr进行转码,safe内的保留字符不转换
 encodedStr = parse.quote(queryStr, safe="/:=&?#+!$,;'@()*[]") 
 # 在最后直接追加上yoursk
 rawStr = encodedStr + '你的sk' 
 #计算sn
 sn = (hashlib.md5(parse.quote_plus(rawStr).encode("utf8")).hexdigest())  
 #由于URL里面含有中文,所以需要用parse.quote进行处理,然后返回最终可调用的url
 url = parse.quote("http://api.map.baidu.com"+queryStr+"&sn="+sn, safe="/:=&?#+!$,;'@()*[]")  
 return url

构造好的URL可直接在浏览器或代码中访问,接口返回的数据格式为JSON,示例如下所示。

{"status":0,"result":{"location":{"lng":116.50104690641698,"lat":39.79092147361288},"precise":1,"confidence":80,"level":"地产小区"}}

总结

以上即为本文的全部内容,希望本文介绍的Python调用百度地图API获取经纬度的方法能对各位的学习或工作有所帮助。若在阅读或实践中有任何疑问,欢迎留言交流,感谢大家对本站的支持。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表