python通过百度地图API获取某地址的经纬度详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
python通过百度地图API获取某地址的经纬度详解
前⾔
申请百度API
选择功能与服务中的地图,点击左边的获取密匙,然后按照要求申请即可,需要⼿机和百度账号及邮箱认证。
激活后可看到后台页⾯,现在可以开始创建应⽤了,这⾥请求校验⽅式有两种,⼀种是⽩名单IP,另⼀种是SN校验(旁边有计算的说明),我选择SN校验:
成功后会获得⾃⼰的AK和SK,接下来说明如何计算sn
计算SN(python3.x)
from urllib import parse
import hashlib
def get_urt(addtress):
# 以get请求为例/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(""+queryStr+"&sn="+sn, safe="/:=&?#+!$,;'@()*[]")
return url
该url可直接进⾏进⾏访问,返回的是json格式,如下
{"status":0,"result":{"location":{"lng":116.50104690641698,"lat":39.79092147361288},"precise":1,"confidence":80,"level":"地产⼩区"}}
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,如果有疑问⼤家可以留⾔交流,谢谢⼤家对的⽀持。