国外地址如何地理编码?Python三行代码解决!

对于单个地址基于Python中的geocoder库获取经纬度非常方便,代码如下:

# coding=utf-8
import geocoder
# 输入地址
address = 'Akala Temple'
lonLat = geocoder.osm(address)
print(lonLat.latlng) 
# 输出结果  [27.8569644, 84.0893767]

若地址数量较多,可参考如下代码批量处理并写入表格:

# coding=utf-8
import geocoder
import pandas as pd
import csv
import re

y = []
times = 0
# 导入需要地理编码的.csv文件
with open('text.csv', 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        place = row[0]
        print('地址:'+place)
        ret = geocoder.osm(place, timeout=5.0)  #响应时间在5秒内
        resLatLon = str(ret.latlng)
        try:
            pat = "(.*?),"
            res = re.compile(pat).findall(resLatLon)[0]
            lon = res.strip('[')
            print("经度:" + lon)
            pat1 = ", (.*?)]"
            lat = re.compile(pat1).findall(resLatLon)[0]
            print("纬度:" + lat)
        except:
            print('地址'+row[0]+'转换失败')
            lon = 'none'
            lat = 'none'
        times += 1
        print('已转换'+str(times)+'条地址')
        print('-----------------------------------------------')
        y.append([row[0],lon,lat])
# 转换结果写入表格
result = pd.DataFrame(y)
result.columns = ['地址','纬度','经度']
result.to_csv('地理编码结果.csv',encoding='utf-8-sig', index=False)

运行日志
在这里插入图片描述
其中text.csv样例如下:
在这里插入图片描述
地理编码结果.csv如下(最重要的:需要科学上网!):
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值