我正在使用python使用Google App Engine编写应用程序,我正在将一个大型维基百科列表转换为电子表格,然后将列表行输入到位置。例如:http://en.wikipedia.org/wiki/List_of_North_Carolina_state_parks我需要将每个公园的名称变成一个地址,我想它们不会是准确的,但只要它们几乎是正确的就可以了。
有什么办法可以在服务器端使用python来做到这一点?我知道谷歌的地理编码服务,但它都是用javascript完成的,并且速率有限。
有没有可以做到这一点的服务?
更新: geopy正是我所寻找的。我想知道处理多个结果的最佳方法是什么。这是我的尝试:
try:
place, (lat, lng) = g.geocode(title+", North Carolina")
except ValueError:
geocodespot = g.geocode(title+", North Carolina", exactly_one=False)
place, (lat, lng) = geocodespot[0]
它运作得很好,但我想知道是否有更好的想法。
答案 0 :(得分:4)
示例(来自getting started page):
from geopy import geocoders
g = geocoders.Google()
place, (lat, lng) = g.geocode("10900 Euclid Ave in Cleveland")
print "%s: %.5f, %.5f" % (place, lat, lng)
10900 Euclid Ave, Cleveland, OH 44106, USA: 41.50489, -81.61027
答案 1 :(得分:1)
Google地理编码不需要任何密钥即可使用。
可以找到有关最新版本的所有信息:
https://developers.google.com/maps/documentation/geocoding/#ReverseGeocoding
您所要做的就是提出以下要求:
(实施例)
http://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=false
然后使用urllib
import urllib
// pull lat and lng from your parks database and construct a url like:
url = 'http://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=false'
resp = urllib.urlopen(url)
resp.read() // json string convert to python dict
速度有限,但它是免费服务。绝对不是所有用javascript完成的。如果只是对nc公园的静态列表进行地理编码,那么为什么它的速率有限呢?