当前位置:   article > 正文

『Tricks』用Python批量获取地理位置的经纬度信息_python批量获取地址经纬度

python批量获取地址经纬度

利用Python来批量自动获取指定位置的经纬度信息,并且将之保存到csv文件中。


接口申请

  首先,我们需要一个接口,可以自动将地理位置转换为经纬度信息。可以采用百度地图开放平台
在这里插入图片描述
  进入页面后,点击顶部【控制台】,按照指示经过注册后即可创建一个地图可视化应用,应用类别选择【浏览器端】,获取访问应用(AK),如下图所示。它相当于访问接口的钥匙。
在这里插入图片描述
  接下来,我们可以查看接口功能介绍 Web接口功能介绍-地理编码,里面包含请求参数返回结果参数等信息,可以根据自己的需要来确定要请求和返回哪些信息。
在这里插入图片描述


获取经纬度

  代码如下所示,根据地理位置name和刚获取的AK来调用接口,返回结果,并且将结果转化为json格式,最终返回经纬度。

import pandas as pd
import requests

AK = "xx"  # 将刚刚获取到的AK复制到这里


def get_position(name, AK):
    url = f'http://api.map.baidu.com/geocoding/v3/?address={name}&output=json&ak={AK}'
    res = requests.get(url)
    val = res.json()
    retval = {'地址': name,
              '经度': val['result']['location']['lng'],
              '维度': val['result']['location']['lat'],
              '地区标签': val['result']['level'],
              '是否精确查找': val['result']['precise']}
    print(val)
    longitude = retval['经度']
    latitude = retval['维度']
    return longitude, latitude

测试一下

addr = '北京理工大学'
lo, la = get_position(addr, AK)
print(lo, la)

在这里插入图片描述

  我们发现,最终的val结果中包含状态、经纬度、精度、标签、准确度等信息,功能十分强大。可以通过这个 查询经纬度 的网站,来验证结果是否正确。
在这里插入图片描述


用apply()实现批量获取

  在现实情况中,我们可能面临的问题是有很多个地理位置,想借助接口实现批量坐标生成。那么接下来,将借助Pandansapply()函数实现这个功能。

  关于apply()函数的介绍,这篇文章 pandas apply() 函数用法 讲得通俗易懂,以后就没必要一个个写for循环啦!

  首先,我们假设已经有了一个csv或者excel文件,用来保存位置信息。将之命名为school.csv
在这里插入图片描述
  首先获取文件中的位置这一列,命名为df。接着采用apply()函数,对于这一列的每一个元素执行get_position(),得到的结果为(经度,维度)这样一个元组。为了将经纬度区分开(个人需要,也可以不拆分),又对于元组元素进行了提取,加在了原先的dataSet上。最终保存为新的csv文件。

# 获取地理信息
dataSet = pd.read_csv("school.csv")
df = dataSet["location"]
df_location = df.apply(get_position)
dataSet["longitude"] = df_location.map(lambda x: x[0])
dataSet["latitude"] = df_location.map(lambda x: x[1])
print(dataSet)
dataSet.to_csv('school_info.csv', encoding='utf_8_sig')

  最终结果
在这里插入图片描述


小提示

在获取对应坐标时,要注意国内国外使用的坐标系标准是不一致的,一般有三种形式。若是想最终在地图上对于位置进行标注的话,一定要使获取的坐标和地图本身的坐标相对应,否则会出现偏移。关于坐标转换,请查看该文章。
在这里插入图片描述


参考文章

只要两步,用Python将地址标记在地图上

pandas apply() 函数用法

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/728839
推荐阅读
相关标签
  

闽ICP备14008679号