2011-12-08 3 views
1

안녕하세요 안드로이드 파운드 게임을 쓰고 있어요, 나는 다음을 수행해야합니다사용자의 실시간 위치 정보를 얻고 저장하는 가장 좋은 솔루션은 무엇입니까?

  • 저장소 사용자의 실시간 위치 (위도, 경도)

  • 가 주어진 위치에 가까운 사용자를 얻을

나는 django와 mysql (예를 들어, 그의 ID로 사용자 이름과 나이를 얻음)을 사용하여 일부 백엔드 API를 작성했다.

위의 내용을 (django/python 사용) 할 때 가장 좋은 해결책은 무엇입니까?
redis와 같은 nosql 데이터베이스를 사용해야합니까?
위치가 데이터베이스에 어떻게 저장되어 특정 위치에 가까운 위치를 신속하게 얻을 수 있습니까?

답변

2

글쎄, 나는 Redis의 열광,하지만 특정 문제를 고려, 지리 공간 쿼리를 지원하는 더 나은되는 NoSQL 데이터베이스 엔진이있다 : MongoDB.

내가 MongoDB를 사용 적이없는, 그러나 회의에 나는이 기능에 대해 이야기 사람들이 본 적이 :주의 깊게 지금 http://www.mongodb.org/display/DOCS/Geospatial+Indexing

나는 그것을 통해 읽기, 이러한 주요 포인트에 초점을 맞추고 :

  • 지리 정보 색인은 Redis와는 다른 데이타베이스의 모든 삽입 (즉, 다시 생성) 할 필요가 있습니다. Redis의 정렬 된 세트는 문제를 해결할 수 있지만 다시는 많이 될 것입니다. 더 많은 일);
  • MongoDB에서 find 및/또는 geoNear 쿼리를 사용합니다.
  • 다른 인덱스와 조합 된 쿼리의 경우 모든 인덱스를 지정하고 결합해야합니다. 생성 시간은입니다.
  • 거리는 지구의 곡률을 geoNear (spherical 속성)으로 고려하여 측정 할 수 있습니다. 이 속성을 사용하지 않으면 (또는 find) 거리는 ( 고정 값 : miles per arcdegree)으로 변환됩니다.

또한 호기심 : Stack overflow NoSql 태그의 "logo"는 MongoDB에서 가져 왔습니다.

1

당신은 geodjango으로 생각하십니까? 워드 프로세서에서 :

GeoDjango 추가 기능에 장고를위한 세계 최고 수준의 지리적 웹 프레임 워크로 변합니다. GeoDjango는 위치 기반 서비스와 같은 지리 웹 응용 프로그램을 만들 수있는 과 같은 간단한 작업을 수행하기 위해 노력합니다.

관련 문제