批量调用百度地图API获取地址经纬度坐标

1 申请密匙

注册百度地图API:http://lbsyun.baidu.com/index.php?title=webapi

批量调用百度地图API获取地址经纬度坐标

 点击左侧 “获取密匙” ,经过填写个人信息、邮箱注册等,成功之后在开放平台上点击“创建应用”,填写相关信息,在这里特别说明的是,在IP白名单框里,如果不清楚自己的IP地址,最好设置为:*。提交后,在你创建应用的访问应用(AK)那一栏就是你的密钥。

 批量调用百度地图API获取地址经纬度坐标

 批量调用百度地图API获取地址经纬度坐标

2 构造经纬度获取函数

使用百度Web服务API下的Geocoding API接口来获取你所需要地址的经纬度坐标
接口文档见:http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding

批量调用百度地图API获取地址经纬度坐标

 导入所需的库

from urllib.request import urlopen,quote
import requests,csv
import pandas as pd
#导入库

根据服务文档中的请求格式写出获取经纬度的函数:

def getlnglat(adress):
    url = http://api.map.baidu.com/geocoder/v2/?address=
    output = json
    ak = wP5GAKovGHI7UGgfKI4lzyu7qK2k9zph
    add = quote(adress)#使用quote进行编码 为了防止中文乱码
    url2 = url + add + &output= + output + &ak= + ak
    req = urlopen(url2)
    res = req.read().decode()
    temp = json.loads(res)
    return temp

3 根据地址获取经纬度

用python读取csv文件的数据,并将location列单独读出来,批量获取经度、纬度坐标

#打开csv
df = pd.read_csv(sites.csv,encoding = GBK)
df[lng] = collng#创建新列存放经度
df[lat] = collat#创建新列存放纬度
dim = df.shape
[row,col] = dim#获取行列
for i in df.values:
    b = i[2]  #第三列的地址
    print(b)
    i[3] = getlnglat(b)[result][location][lng]#获取经度并写入
    i[4] = getlnglat(b)[result][location][lat]#获取纬度并写入
    print(i)
df
df.to_excel(sites2.xlsx)

原始sites.csv如下

批量调用百度地图API获取地址经纬度坐标

 输出结果

批量调用百度地图API获取地址经纬度坐标

 注意

http://lbsyun.baidu.com/index.php?title=coordinate

批量调用百度地图API获取地址经纬度坐标

 批量调用百度地图API获取地址经纬度坐标

 参考:

如果您想调用服务器端的坐标转换方法,请参考坐标转换API

如果您想在JS的前端网页中使用坐标转换功能,请参考JavaScript API坐标转换示例

如果您想在Android终端系统上使用坐标转换功能,请参考Android地图SDK坐标转换开发指南

如果您想在iOS的终端系统上使用坐标转换功能,请参考iOS地图SDK坐标转换开发指南

 

批量调用百度地图API获取地址经纬度坐标

上一篇:【log4net】配置文件


下一篇:编译内核启用iptables及netfilter