Python脚本 百度地图API 输入所在位置得到经纬度/地址解析

1.百度地图API需要申请并创建应用才能使用,申请地址:http://lbsyun.baidu.com/apiconsole/center#/home
2.参考文档:http://lbsyun.baidu.com/index.php?title=uri/api/web
3.例子中输入所在位置,输出为纬度,经度

脚本如下:

import requests
import urllib
import hashlib

location = input("输入所在的位置\n")  # "广州市天河区"
# 计算校验SN(百度API文档说明需要此步骤)
ak = "xxxxx" # 参照自己的应用
sk = "xxxxx" # 参照自己的应用
url = "http://api.map.baidu.com"
query = "/geocoder/v2/?address={0}&ak={1}&output=json".format(location, ak)
encodedStr = urllib.parse.quote(query, safe="/:=&?#+!$,;'@()*[]")
sn = hashlib.md5(urllib.parse.quote_plus(encodedStr + sk).encode()).hexdigest()
# 使用requests获取返回的json
response = requests.get("{0}{1}&sn={2}".format(url, query, sn))
data = eval(response.text)
print(data)
lat = data["result"]["location"]["lat"]
lon = data["result"]["location"]["lng"]
print("纬度: ", lat, " 经度: ", lon)

最重要的SN和AK:
Python脚本 百度地图API 输入所在位置得到经纬度/地址解析_第1张图片
测试:
Python脚本 百度地图API 输入所在位置得到经纬度/地址解析_第2张图片
得到的json数组:

{'status': 0, 'result': {'location': {'lng': 113.36850942427998, 'lat': 23.13035783510465}, 'precise': 0, 'confidence': 18, 'comprehension': 100, 'level': '区县'}}

你可能感兴趣的:(Scripts)