2010-02-15 4 views
7

주문이 포함 된 데이터베이스가 있고 각 주문에 연결된 위치가 있습니다. Currentl, 사용자가 로그인하면 Bing Maps API를 사용하여 각 주문 위치를 지오 코딩 한 다음 로그인 한 사용자와의 주행 거리를 계산합니다. 이 거리를 기반으로 사용자는 드롭 다운 박스를 통해 그리드 뷰에 표시된 결과와 함께 최대 거리를 지정할 수 있습니다. 그러나 100 개가 넘는 주문의 경우 프로세스가 매우 느려집니다. bing 쿼리를 최적화하는 방법에 대한 팁을 주셔서 감사합니다. 결과 캐싱 (빙 테이블 api를 다시 액세스하지 않고 재사용 할 수 있도록) 또는 Ajax를 활용하여 주문 프로세스를 처리하는 방법에 대해 감사드립니다. 감사.Bing Maps 지오 코드 및 Route 매핑 요청 최적화

답변

1

가까운 장래에 유사한 작업을 계획하고 있으므로 몇 가지 제안 사항이 있지만 아직 공유 할 실제 코드는 없습니다. 유용하게 사용되기를 바랍니다.

각 항목에 대한 위도/경도를 내 db에 저장하므로 (한 번만 지오 코딩 됨) 예상합니다. 한 지점에서 특정 거리 내에있는 항목을 선택하려면 내 중심점의 남/동/서 'x'마일 인 위도/경도 수를 계산합니다. 그런 다음 선택 사항은 위도/경도 값이 내 사각형 값 사이에있는 레코드를 선택하는 간단한 문제가됩니다.

예, 기술적으로 원을 사용하여 거리를 정확하게 제어해야한다는 것을 알고 있지만, 훨씬 쉽고 빠릅니다. 좀 더 정확한 한도로 원을 사용해야하는 경우 먼저이 방법을 사용하고 더 복잡한 계산을 사용하여 모서리의 원 밖에있는 항목을 제거합니다.

저는 Bing의 라이센스에 익숙하지 않지만 Google에 대해 올바르게 기억한다면 지오 코딩 결과를 저장하기위한 유료 (상용) 라이센스가 있어야합니다. 그리고 싸구려가 아닙니다. 내 제안이 가지고있는 모든 가치를 무효화 할 수 있습니다. (

편집 : 질문을 조금 더 신중하게 읽었으며 선형 마일이 아니라 마일을 운전하는 것에 대해 이야기하고 있습니다. 당신이해야하는 주행 거리 계산의 수를 줄이기위한 방법으로 사용하고 싶지 않다면 실제로 적용 할 수 없습니다.

또한 지오 코딩 및 라이센스의 주제에 관해서는 geocoder.us을 볼 수 있습니다.

0

MST는 여전히 O (V^2)이지만 실제로는 많은 양을 캐싱하고 있습니다. 많은 사람들이 같은 길을 재사용 할 것이기 때문에 최단 경로를 선택해야합니다.

또 다른 옵션은 선형 거리를 도로 마일의 대체품으로 사용하여 예상하는 것이지만 모두 사용자에게 다시 전송하는 대상에 따라 다릅니다.

행운을 빕니다!

+0

MST는 어떻게 최단 경로에 도움이됩니까? MST를 따라 가서 '캐시'를 사용할 수 있는지 여부를 결정하는 방법은 무엇입니까? – Karussell

관련 문제