2013-01-02 4 views
1

가능한 중복 : 나는 위도 및 경도 매개 변수 모델을 저장하는 App Engine을 사용하기 위해 노력하고있어
Google App Engine Geohashing사용이 개 불평등

. 모두는 두 위치 사이에서 모든 사용자를 검색하려고 시도 할 때를 제외하고는 괜찮은 것처럼 보입니다. 나는 다음과 같이하지 :

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에 문서에서 말했듯이, 이것은 슬로우 : 나는 이것에 대한 workarround을 찾기 위해 노력하고있어

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

하지만 운. 좌표로 작업 할 때는 항상 최소한 두 가지 불평등이 필요합니다. 어떻게하면이 문제를 해결할 수 있습니까? 어떤 해결책? 아니면 AppEngine에서 언제 구현 될지 아는 사람이 있습니까?

데이터베이스에 수십만 명의 사용자가 있기 때문에 위도별로 쿼리를 필터링 한 다음 FOR로 결과를 반복하여 올바른 경도를 가진 쿼리를 얻을 수 없습니다. 데이터가 너무 많습니다.

덕분에,

+0

@dragonx 그가 geohashing에 대해 물어 보지 않았 음을 알았습니다 (아마도 그가 그것에 대해 모르기 때문에). –

+0

예,하지만 복제본에 대한 답을 보면 모든 것이 있습니다. – dragonx

답변

0

단일 문자열로 타일을 인코딩 geohash을 조사 할 필요가있다.
사용 방법을 알아 보려면 this blog을 확인하십시오.