GAE Search API (1.7.6) を使用して距離でジオロケーションを検索すると、常にゼロの結果が返されます...
次のクエリを作成します。distance(geoLocation, geopoint(27.241131, -82.464445)) < 16093 /* 10 Miles in meters */
距離内にジオポイントがありますが、結果は常にゼロです。たとえば、私の検索元はこの場合lat: 27.241131, lgn: -82.464445
で、範囲内のジオポイントの 1 つはlat:27.233247, lng-82.48819800000001.
次のようにGoogleマップAPI v3を使用して距離を計算すると:
google.maps.geometry.spherical.computeDistanceBetween (
new google.maps.LatLng(27.241131, -82.464445),
new google.maps.LatLng(27.233247, -82.48819800000001)) = 2509.46
これは、ジオポイントを他のフィールドと一緒に保存する方法です
dictFields = []
dictFields.append(search.AtomField(name = 'zipcode', value = k.get('zipcode')))
geopoint = search.GeoPoint(float(lat), float(lng))
dictFields.append(search.GeoField(name = 'geoLocation', value = geopoint))
後で私はします
search.Document(doc_id = document_id, fields = dictFields)
ここで何が問題なのですか?ジオポイント以外のフィールドで検索すると結果が返されるため、検索が機能することはわかっています。
検索 ID は次のように行われます。
options = search.QueryOptions(limit=1000, returned_fields=['geoLocation', 'zipcode'])
query = search.Query(query_string=query_str, options=options)
どこquery_str = distance(geoLocation, geopoint(27.241131, -82.464445)) < 16093
アップデート
インデックスによって保存されたジオポイントを使用してテストし、search.SearchResults(number_found=0L) を取得しています。質問: これは開発環境で動作すると思われますか?
助けていただければ幸いです!!!!!