2014-07-07 5 views
0

두 필드가 경도와 위도 인 위치의 데이터베이스가 있습니다. 사용자가 색인 페이지에 도달하면 해당 위치를 검색 한 다음 사용자로부터 일정 거리 반경 안에있는 데이터베이스 내의 모든 지점을 가져오고 싶습니다.사용자의 현재 위치를 기반으로 위치 데이터베이스를 쿼리하십시오.

지금까지 데이터베이스의 모든 지점에서 거리를 측정 할 수 있다고 생각했지만 항목이 많으면 시간이 오래 걸릴 수 있습니다.

파이썬을 사용하여 앱을 빌드하고 있지만 Javascript와 Google Maps API를 사용하여 위치를 검색합니다.

누구든지이 작업을 수행해야하는지 알고 있습니까?

도움 주셔서 감사합니다.

+0

내장 지리적 기능을 가진 데이터베이스를 사용, MongoDB를 같은 – dandavis

+0

@dandavis는 이러한 데이터베이스 중 어느 하나의 문서에 대한 링크가 있습니까? 나는 MongoDB를 보았지만 현재의 문제와 관련이있는 것은 아무것도 찾을 수 없다. 고맙습니다! – zakiay

답변

1

귀하의 거리는 귀하가 위도와 경도에 더하거나 뺄 수있는 각도로 변환됩니다. 그런 다음 해당 범위를 기반으로 데이터베이스를 필터링 할 수 있습니다. 즉, 경도가 + 각도 인 요소를 찾으십시오. 예를 들어 합리적인 속도 여야합니다.

[lat_min, lat_max] 및 [long_min, long_max]가있는 경우 원이 아닌 사각형이 그려지는 점에 유의하십시오. 더 정확한 결과가 필요하면이 작은 하위 집합의 실제 거리를 계산할 수 있습니다. 데이터베이스에서 각 지점의 거리를 계산하는 것보다 더 빠를 것입니다.

EDIT 나를 찾고 있었다

@dandavis은 ... MySQL을뿐만 아니라 MongoDB를 아주 멋진 인 지리 공간 쿼리를 지원하는 것! Here's dev 사이트에 link을 포함하는 MySQL 기능에 관한 블로그. 지리 정보 쿼리를위한 Mongodb의 문서는 here입니다.

+0

블로그 링크는 정확히 내가 뭘 찾고 있는데, 비록 정말로 장고 프로젝트에서 그것을 구현하는 방법에 관해서는 분실했습니다. 그러나 이것이 또 하나의 질문이라고 생각합니다. 당신의 도움을 주셔서 감사합니다! – zakiay

1

관계형 데이터베이스에서 위치 기반 쿼리를 찾는 경우 postgresql은 mysql과 비교하여 더 성숙합니다.

NoSQL을 사용하는 것이 좋다면 Mongodb의 간파 쿼리가 정말 좋습니다.

참고 :

Mongo's geospacial indexes

Mysql spatial data types docs

+0

NoSQL을 사용한 적이 없으므로 MySQL에 대한 경험이 제한적이지만 MySQL을 선택했습니다. 도와 줘서 고마워! – zakiay

관련 문제