这篇文章主要给大家介绍了关于 python 通过百度地图 API 获取某地址的经纬度的相关资料, 文中通过示例代码介绍的非常详细, 对大家的学习或者工作具有一定的参考学习价值, 需要的朋友们下面随着小编来一起学习学习吧
前言
这几天比较空闲, 就接触了下百度地图的 API(开发者中心链接地址: http://developer.baidu.com), 发现调用还是挺方便的, 本文将给大家详细的介绍关于 python 通过百度地图 API 获取某地址的经纬度的相关内容, 分享出来供大家参考学习, 下面话不多说了, 来一起看看详细的介绍吧
申请百度 API
1 打开网页 http://lbsyun.baidu.com/index.php?title = 首页
选择功能与服务中的地图, 点击左边的获取密匙, 然后按照要求申请即可, 需要手机和百度账号及邮箱认证
激活后可看到后台页面, 现在可以开始创建应用了, 这里请求校验方式有两种, 一种是白名单 IP, 另一种是 SN 校验 (旁边有计算的说明), 我选择 SN 校验:
成功后会获得自己的 AK 和 SK, 接下来说明如何计算 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":"地产小区"}}
来源: http://www.phperz.com/article/18/0223/363221.html