在实际做项目的时候经常会遇上需要使用到某个位置经纬度的情况,这个位置的经纬度经常又是没有的,那么就需要基于公开的数据去获取了,这里基于百度地图提供的API来完成指定位置经纬度数据的获取,实现很简单,主要是提供一个便捷的小工具方便使用,具体实现如下:
#!usr/bin/env python
#encoding:utf-8
'''
__Author__:沂水寒城
功能: python基于百度地图获取指定的经纬度信息
'''
import urllib
import hashlib
def getLocation(address='address'):
'''
获取地理位置,经纬度信息
'''
address=urllib.quote(address)
output='json'
url='http://api.map.baidu.com/geocoder/v2/'+'?'+'address='+address+'&output='+output+'&ak='+你的秘钥
result=urllib.urlopen(url).read()
print result
if __name__=='__main__':
getLocation(address="杭州市")
getLocation(address="灵隐寺")
getLocation(address="西湖")
结果如下:
{"status":0,"result":{"location":{"lng":120.21551180372168,"lat":30.25308298169347},"precise":0,"confidence":10,"comprehension":100,"level":"城市"}}
{"status":0,"result":{"location":{"lng":116.86480509351061,"lat":26.338376161099164},"precise":1,"confidence":75,"comprehension":100,"level":"旅游景点"}}
{"status":0,"result":{"location":{"lng":115.88353569365187,"lat":28.661976709900658},"precise":0,"confidence":20,"comprehension":100,"level":"区县"}}
可以看到,返回的结果里面不仅有经纬度数据还有一些详细的数据,比如当前区域的类型等等。