python经纬度是否在范围内_如何用经纬度数据在python里查询城市等地址信息

在处理包含经纬度的数据集时,将位置信息转换为城市类别有助于理解数据分布。本文介绍了如何使用Google Maps API在Python中进行查询。由于直接调用Google Maps URL可能导致封禁,因此需要获取API key。通过导入googlemaps库,创建Client并传入key,可以实现经纬度到城市的反向地理编码。代码示例展示了如何遍历经纬度列表并获取对应城镇信息。
摘要由CSDN通过智能技术生成

在很多数据处理任务、机器学习比赛中,数据集常常含有经纬度数据。虽然经纬度是连续变量很好处理,但是经纬度的上升、下降和数据逻辑的关系并不是线性的,很多时候我们转化成城市、省份等类别信息能够进一步探究数据的分布。

mapping to city有很多方法,常用的一种是用google map的API,返回text型的结果(这里说text型不太严谨)。

如果只是查询一次地址,可以在python里,调用urllib包,直接使用google map的url,load json等步骤不再详细描述,因为这是一个大坑。因为直接调用google map url而没有验证(credentials)的话,google map 会查封这个api,开始时候允许几次,如果调用多了就一次也不允许了。

Anyway,重点是要有一个key。步骤如下:

2选择map service,提示建立project名字,然后进入project 页面,左边第三行有个credentials,见下图。点击后,根据提示生成一个key,复制这个key

3在python里import google map所需要的包,然后用你的key建立一个接口,然后输入一系列经纬度数据即可。代码如下

import googlemaps

def getplace(latlist, longlist):#经纬度的list

townlist=[]

dic=dict(zip(latlist,longlist))

gmaps = googlemaps.Client(key='你的key粘贴在这')

for lat,lon in dic.items():

result = gmaps.reverse_geocode((lat, lon))

components = result[0]['address_components']

country = town = None

for c in components:

if "country" in c['types']:

country = c['long_name']

if "locality" in c['types']:

town=c['long_name']

townlist.append(town)

else:

townlist.append(None)

print(town)

return townlist

上边的代码中,国家被注释掉了。可以用一对经纬度生成一个result,然后看一下result的内容,有街道号、区、市等选项,自取所需。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值