0

Google App EngineのGeoModelクラスを使用して、proximity_fetch を実行しようとしています。私がそれを使用したいエンティティはndbであり、何をダウンロードしてインポートする必要があるのか​​ 、PythonコードでGoogleから何をインポートできるのかわかりません。ウェブサイトは少し古くなっているようで、誰かもっと適切な情報を持っているかどうか疑問に思っていました. これは私がこれまでに持っているものであり、Location には属性 proxy_fetch がないことがわかりますが、これはわかっていますが、Location(ndb.Model) クラスでどのように定義すればよいかわかりません。

        g = geocoders.Google()

        place, (lat, lng) = g.geocode(inputlocation, exactly_one=False)


        bound = 20
        upper = lat + bound
        lower = lat - bound
        left = lng + bound
        right = lng - bound

        locations = []

        if lat and lng:
            locations = Location.proximity_fetch(
                                                 Location.query(),
                                                 geotypes.Point(lat, lng),
                                                 max_results=50,
                                                 max_distance=500000) 

また、これに非常に重要と思われるジオモデルとジオタイプをインポートしようとすると、インポートエラーが発生し、どこから取得すればよいかわかりません。

どんな助けや例も大歓迎です!

4

2 に答える 2

2

まず、SVNリポジトリから最新のコードをチェックアウトする必要があります。これに関する情報はhttp://code.google.com/p/geomodel/source/checkoutで見つけることができます

マシン上でローカルにコードを取得した後、メインディレクトリ内に。というディレクトリがありgeoます。このディレクトリをGAEプロジェクトにコピーする必要があります。次に、コードで、このパッケージから必要なものをインポートします。例えば:

from geo import geomodel

ここで、Locationモデルに関して、クエリを実行できるようにするためにproximity_fetch、モデルは、と呼ばれるジオモデルで提供されたモデルを拡張する必要がありますGeoModel。したがって、次のようなものが必要です。

class Location(ndb.Model, GeoModel):
....

現在、コードで使用しているのではなくGeoModel、「古い」GAEデータストアレイヤーを使用していることに注意してください。ただし、問題はありません。dbndb

ジオモデルの使用方法の詳細については、SVNから取得したコードにも存在するデモも確認する必要があります。それらはdemosディレクトリにあります。

お役に立てれば!

于 2012-10-12T16:31:33.207 に答える