1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Python实现(百度地图API)地理编码与逆地理编码

Python实现(百度地图API)地理编码与逆地理编码

时间:2022-09-22 14:02:03

相关推荐

Python实现(百度地图API)地理编码与逆地理编码

地理编码:

地理编码是指将地址或地名等位置描述转换为经纬度坐标的过程。得到的坐标信息,可以用于制图或空间分析操作。(出于国家安全考虑,公布出来的坐标信息一般是经过加偏的。)

通过地理编码可快速查找到各类位置。比如建筑物名称、地址、位置描述、名胜景区等等。

逆地理编码:

逆地理编码可将经纬度坐标转换为详细、标准的地址信息。由于逆地理编码服务是根据坐标返回地址信息,所以前期提供给逆地理服务引擎的数据有下面几类:行政区划、道路、POI、AOI、门址等。行政区划数据可以告诉用户当前这个坐标点所属的省市区,道路数据保存的是所有的道路坐标点串,POI/AOI记录的是重要的点和面信息(POI是指兴趣点,AOI是指兴趣面),门址一般是指某某门牌号信息。

逆地理服务实际是一个空间查询的过程,通过输入经纬度坐标,查找这个坐标所在的行政区划,所属道路,最近的POI/AOI等。这些数据一般比较庞杂,所以合理组织这些数据结构非常关键。

相互关系如下图示:

Python具体实现:

思路:首先申请百度API的key,通过调用接口就可实现操作,需要注意的是,地理编码返回的是百度坐标。而进行逆向地理编码地址查询所输入的为WGS84坐标。

Python地理编码:

from urllib.request import urlopen,quoteimport jsonimport coordinateTransformaddress="西安市"ak='FA8atAaqd1wajikD56lPqtiaNCleCeyz'url='http://api./geocoder/v2/?address='output = 'json'#ak = '你的ak'#需填入自己申请应用后生成的akadd = quote(address)#本文城市变量为中文,为防止乱码,先用quote进行编码url2 = url+add+'&output='+output+"&ak="+akreq = urlopen(url2)res = req.read().decode()temp = json.loads(res)lng = temp['result']['location']['lng'] # 获取经度lat = temp['result']['location']['lat'] # 获取纬度list1=[lng,lat]print('百度坐标为:',list1)

结果图示:

Python逆地理编码:

import requestsaddress = '39.83637707633588,115.58006911450369'# address=str(i[0])+','+str(i[1])url = 'http://api./geocoder?output=json&key=f247cdb592eb43ebac6ccd27f796e2d2&location=' + str(address)response = requests.get(url)answer = response.json()print(answer)

结果图示:

Python逆地理编码返回的是字典类型数据,可以通过解析字典的方式获取想要的信息。

---------------------中遥信息数据中心支持

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。