1

重複の可能性:
GoogleAppEngineジオハッシュ

AppEngineを使用して、緯度と経度のパラメーターを持つモデルを保存しようとしています。2つの場所の間ですべてのユーザーを取得しようとする場合を除いて、すべてうまくいくようです。私は次のようにします:

 String query = "select from " + TUser.class.getName();
 query += " WHERE ( iLatitude >= " + lat_min + " && iLatitude <= " + lat_max + ")";
 query += " && ( iLongitude >= " + lon_min + " && iLongitude <= " + lon_max + ")";
 List<TUser> obj = (List<TUser>)pm.newQuery(query).execute();

ただし、AppEngineのドキュメントで述べられているように、これは次のようになります。

 java.lang.IllegalArgumentException: Only one inequality filter per query is supported.  Encountered both latitude and longitude

私はこれの回避策を見つけようとしていますが、運がありません。座標を操作するには、常に少なくとも2つの不等式が必要です。では、これをどのように解決できますか?解決策はありますか?または、AppEngineにいつ実装されるか知っている人はいますか?

データベースには数十万人のユーザーがいるため、緯度だけでクエリをフィルタリングしてから、FORで結果を繰り返して、正しい経度のクエリを取得することはできません。データが多すぎます。

ありがとう、

4

1 に答える 1

0

タイルを単一の文字列にエンコードするgeohashを調べる必要があります。このブログを参照して、使用方法を理解してください

于 2013-01-02T14:42:33.113 に答える