2010-04-13 10 views
0

좌표가 있습니다. MySQL 데이터베이스에 저장된 수천 개의 행 중 가장 가까운 좌표 (n은 가변 값 임)를 찾고 싶습니다. 또한 문제의 좌표와 데이터베이스의 좌표 사이의 최대 거리와 최소 거리를 정의 할 수 있기를 원합니다.가까운 "n"가까운 좌표 찾기

내가 어떻게이 문제를 가장 잘 해결할 수 있습니까? MySQL보다 구문을 훨씬 잘 이해하기 때문에 PHP를 사용하는 것이 좋을까요?

MySQL 기능을 사용하는 경우 서버를 전환하도록 선택할 경우 어떻게 데이터베이스간에 이동합니까? 어떻게 저장됩니까?

마지막으로,이 좌표를 모두 통과하는 가장 효율적인 방법은 무엇입니까 정확하게 - 좌표가 모두 서로 비교적 비슷합니까? 시간에 대한

감사합니다,

존.

+1

이 링크는 나 : http://www.scribd.com/doc/2569355/Geo-Distance-Search-with-MySQL 그리고, 또 다른 유래 질문 : http://stackoverflow.com/questions/574691/mysql -great-circle-distance-haversine-formula – Billiam

+0

이 질문은 전에 (이 사이트에서도) 해결되었습니다. @ Billiam의 의견을 참조하십시오. 내가 줄 수있는 유일한 충고는 "인기있는 영역"또는 뭔가를 캐싱하여 데이터베이스를 최대한 망치는 것을 피하는 것입니다. 그러면 가장 효율적인 솔루션을 얻을 수 있습니다. – aduric

+0

나는 짧은 시간 전에 내 손에 비슷한 문제가있었습니다. 위치가 가득한 테이블과 위치 X (가장 일반적으로 사용자의 위치)가 주어지면서, 내 테이블에서 N 개의 가장 가까운 위치가 무엇인지, 동시에 다른 기준을 통해 나는 데이터베이스를 계속 질의하는 것이 매우 좋지 않을 것이며 모든 단일 쿼리를 캐싱하기에는 너무 어려울 것이라는 것을 깨달았 기 때문에 X에서 거리에 따라 정렬 된 위치 목록을 계산하는 것과 같은 일을 끝냈다. 캐싱을 잠시 동안하고 추가 디스플레이 필터를 적용합니다. –

답변

0

farm this off to MySQL이 아니라 PHP에서이를 수행하는 것이 좋을 것입니다. 배정 밀도 부동 소수점 숫자를 고수하면 사용 가능한 정확도보다 정확도가 높아야합니다 (예 : 민간용 GPS는 최대 약 5m이지만 정확도는 수 센티미터입니다)

관련 문제