3

Pythonを使用してGoogleAppEngineでアプリを作成しており、大きなウィキペディアのリストをスプレッドシートに変換してから、リストの行を[場所]に入力しています。たとえば、次のようになります。http: //en.wikipedia.org/wiki/List_of_North_Carolina_state_parksそして、各公園の名前を住所に変換する必要があります。正確ではないと思いますが、ほぼ正しい限り、大丈夫です。

サーバー側でPythonを使用してこれを行う方法はありますか?Googleのジオコーディングサービスについては知っていますが、すべて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]

それはうまく機能しますが、もっと良いアイデアがあるかどうか疑問に思っています。

4

2 に答える 2

4

geopyライブラリがあります。

例(スタートページから):

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  
于 2012-10-02T20:19:50.567 に答える
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で行われるわけではありません。ノースカロライナ州の公園の静的リストをジオコーディングしているだけの場合、レートが制限されていることが重要なのはなぜですか?

于 2012-10-02T20:28:07.323 に答える