- 百度地图
import json
from urllib.request import urlopen,quote
#构造获取经纬度的函数
def getlnglat(address):
url = 'http://api.map.baidu.com/geocoder/v2/?address='
output = 'json'
ak = 'EiQTTRKzlV3dKN1zcZ3c7iVhIl126xvC'
#ak = '你的ak'#需填入自己申请应用后生成的ak
add = quote(address)#本文城市变量为中文,为防止乱码,先用quote进行编码
url2 = url+add+'&output='+output+"&ak="+ak
req = urlopen(url2)
res = req.read().decode()
temp = json.loads(res)
return temp
## 使用
lng = getlnglat('北京站')
- 高德
import requests
def geocode(address):
parameters = {'address': address, 'key': '8d4e1bbc4c86495ee3a5d5a3e4cd718c'}
base = 'http://restapi.amap.com/v3/geocode/geo'
response = requests.get(base, parameters)
answer = response.json()
print(address + "的经纬度:", answer['geocodes'][0]['location'])
### 使用:
geocode('尖山站')
- 存在的问题:
高德的api返回的内容要详细一些,百度的太简单;
两者都是只能返回一个结果,结果不太准