私は、GAEでジオモデルを使用してバウンディングボックスのフェッチを行うことを試みています。ボックスを定義すると、ジオモデルのフェッチは、このボックス内にある座標を持つすべての結果を返します。私は現在(-3.114624、55.497527)GPSの緯度と経度を入力し、そのようにように、この座標の所定の範囲内、N、S、Eとのバウンディングボックスを確立W午前:GAEのジオモデルで空白のバウンディングボックスの結果
latRange = 1.0
longRange = 0.10
provlat = float(self.request.get('latitude'))
provlon = float(self.request.get('longitude'))
logging.info("Doing proximity lookup")
theBox = geotypes.Box(provlat+latRange, provlon-longRange, provlat-latRange, provlon+longRange)
logging.info("Box created with N:%f E:%f S:%f, W:%f" % (theBox.north, theBox.east, theBox.south, theBox.west))
query = GeoVenue.all().filter('Country =', provcountry)
results = GeoVenue.bounding_box_fetch(query, theBox, max_results=10)
if (len(results) == 0):
jsonencode = json.dumps([{"error":"no results"}])
self.response.out.write(jsonencode)
return;
...
これをいつも私は事実をボックスのログ出力に指定された範囲内の結果がある知っているにもかかわらず、空の結果セットを返します。
INFO 2011-07-19 20:45:41129 main.py:117] N:56.497527 E:-3.214624 S:54.497527、W:-3.014624
私のデータストアのエントリには、 {"venueLat":55.9570323、 "venueCity": "Edinburgh"、 "venueZip": "EH1 3AA"、 "venueLong":-3.1850223、 "venueName": "Edinburgh Playhouse" venueLong ":" venueState ":" "、" venueCountry ":" UK "} および {" venueLat ":55.9466506、" venueCity ":"エジンバラ "、" venueZip ":" EH8 9FT "、" venueLong ":-3.1863224、" venueName ":" Festival Theatre Edinburgh "、" venueState ":" "、" venueCountry ":" UK "}
どちらもほとんどの場合、上で定義したバウンディングボックス内の位置を持ちます。私は上でデバッグを有効にしているし、バウンディングボックスがフェッチ私はの線に沿って出力を得るため、geocellsを検索するように見えるん:
INFO 2011-07-19 20:47:09487 geomodel.py:114] BBOXクエリが見えました4つのジオセルで
しかし、結果は返されないようです。すべてのモデルでupdate_location()を実行して、基礎となるジオセルのデータが正しいことを確認しました。誰にもアイデアはありますか?
おかげ
問題を見つけたことはありますか?私もこれについています – Ben
ショーン?ベン?それに対する解決策。私は同じ場所で立ち往生していますが、近接検索 – Aman