优草派  >   Python

Python如何获取地理位置信息?Python调用API获取指定地点地理信息

罗西汉            来源:优草派

有些时候我们可能会需要获取到一个地点经纬度等地理位置信息,这个需求是可以通过地图软件来实现的,但是在学习python之后就要想怎么将这个功能用python实现。那么这一篇文章就是会来给大家介绍一下,在python中调用API来获取指定地点地理位置信息的方法。

Python如何获取地理位置信息?Python调用API获取指定地点地理信息

1.这个程序是通过调用高德地图API来获取地理位置信息的,而调用这个API需要到官网进行注册来获取密钥key才可以。而这个key在之后程序调用时也是必须的,链接如下所示:

https://lbs.amap.com/api/webservice/guide/create-project/get-key

2.然后就是可以新建py文件来编写代码,首先需要导入urllib以及json两个标准库和内置模块,它们分别是用来调用API以及解析返回数据的。再定义一个函数来让这个脚本可以重复调用来获取不同地点的地理位置信息,示例如下:

import urllib
import json
def getGDCor(key,addr):

3.函数内先定义变量来保存API接口链接,然后再定义字典对象来保存接口调用时传入的参数,也就是key、具体地址以及指定城市名称。之后将API链接与urlencode()方法编码之后的参数字典用加号连接起来。最后使用Request()方法将这个链接作为参数传入即可获取地理位置信息,代码如下:

baseUrl = 'http://restapi.amap.com/v3/geocode/geo?'
params = {'key': key,'address': addr,'city': u'武汉'}
url = baseUrl + urllib.parse.urlencode(params)
req = urllib.request.Request(url)

4.最后就是要来解析获取到的地理位置信息了,因为返回的是response响应对象。用read()方法单独将返回数据读取出来,然后用json模块方法loads()将其解析成python可读的。之后就是用切片语法分别取出经纬度即可,详细代码如下:

content = urllib.request.urlopen(req).read()
jsonData = json.loads(content)
corr = jsonData['geocodes'][0]['location']
lon,lat = corr.split(',')[0],corr.split(',')[1]
return (lon,lat)

以上就是关于“Python如何获取地理位置信息?Python调用API获取指定地点地理信息”的全部内容了,希望对你有所帮助。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。