gpt4 book ai didi

python - 使用 python geocoder 进行反向地理编码

转载 作者:太空宇宙 更新时间:2023-11-04 08:59:27 26 4
gpt4 key购买 nike

我正在尝试使用 python 和模块地理编码器进行反向地理编码

我构建了这个脚本

#!/Users/admin/anaconda/bin/python

import geocoder
import unicodecsv
import logging


with open('locs2.csv', 'rb') as f:
reader = unicodecsv.DictReader(f, encoding='iso-8859-1')
for line in reader:
lat = line['lat']
lon = line['lon']
g = geocoder.google(['lat','lon'], method=reverse)
if g.ok:
g.postal
logging.info('Geocoding SUCCESS: ' + address)
else:
logging.warning('Geocoding ERROR: ' + address)

根据文档 here ,我们可以反过来。但是,当我运行脚本时,出现此错误 NameError: name 'reverse' is not defined

为什么?

TIA

这是我文件中的示例

lat, lon
48.7082,2.2797
48.7577,2.2188
47.8333,2.2500
48.9833,1.7333
47.9333,1.9181
46.2735,4.2586

**编辑**:我对脚本做了一些修改(见下文),但出现了这个错误

WARNING:root:Geocoding ERROR:

修改后的脚本

#!/Users/admin/anaconda/bin/python

import geocoder
import unicodecsv
import logging

pcode=[]
lat=[]
lon=[]


with open('locs2.csv', 'rb') as f:
reader = unicodecsv.DictReader(f, encoding='iso-8859-1')
for line in reader:
lat = line['lat']
lon = line['lon']
g = geocoder.google([lat,lon], method='reverse')
if g.ok:
pcode.extend(g.postal)
logging.info('Geocoding SUCCESS: '+
str(lat)+','+str(lon)+','+str(pcode))
else:
logging.warning('Geocoding ERROR: ' + str(lat)+','+str(lon))

fields= 'lat', 'lon', 'pcode'
rows=zip(lat,lon,pcode)

with open('/Users/admin/python/myfile.csv', 'wb') as outfile:
w = unicodecsv.writer(outfile, encoding='iso-8859-1')
w.writerow(fields)
for i in rows:
w.writerow(i)

最佳答案

Geocoder 已经取得了长足的进步,最新版本是 1.6.1,有望修复您提到的一些错误。

查看 Reverse Geocoding in Python Geocoder 的最新文档.

import geocoder

g = geocoder.google([45.15, -75.14], method='reverse')
g.city
g.state
g.country
g.postal

以下是支持反向地理编码的提供商列表:

关于python - 使用 python geocoder 进行反向地理编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26914900/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com