2012-03-01 2 views
1

나는 이벤트 데이터베이스 (영국)와 그들의 우편 번호 (우편 번호)를 가지고있다.운전 거리를 기준으로 결과를 실시간 검색하려면 어떻게합니까?

사용자가 웹 페이지에 우편 번호를 입력하고 Enter 키를 누르면 멋진 알고리즘/시스템이 사용자의 우편 번호 번 거리의 이벤트 목록을 반환합니다.

실시간으로 가능합니까? 내가 생각했습니다

솔루션은 다음과 같습니다

  • 우편 번호 지역 사이의 모든 거리 (그 중 4100) 캐싱 및 그 사용. 우편 번호 지역이 몇 마일 떨어져 있기 때문에 불완전합니다. 그러나 지금은 확인하십시오. 가장 큰 문제는 약 8403000 개의 여행 거리가 필요하며 Google Maps에는 사용 제한이 있으며지도 퀘스트의 API는 느리고 포스트 코드를 찾는 데 불완전하며 DOS 공격을 수행하고 싶지 않습니다.

  • 이벤트 포스트 코드와 우편 번호 영역 간의 모든 거리를 캐시합니다. 이벤트가 1000 개 발생하고 이벤트를 추가 할 때 거리를 조회하는 데 너무 오래 걸리기 때문에 아직 불완전합니다.

  • 까마귀가 날아 오를 때 100 마일이나 200 마일 이내에 이동 코드의 양을 제한하십시오. 나는 이것을 조사하지 않았지만 영국의 규모를 감안할 때 이벤트 당 필요한 여행의 총 수를 1/2 또는 심지어 2/3로 줄일 수 있습니다 ... 더 좋지만 검색에 너무 오래 걸릴 것입니다. 이벤트 추가시.

  • 다음 우편 번호 영역으로의 이동 거리가 포함 된 일종의 포스트 코드 위치 그래프를 저장하고 A *와 같은 것을 사용하여 가까운 엽서 코드를 검색합니다. 이 문제는 이와 같은 시스템을 구현하고 호스트 할 시간/가용성이 없다는 것입니다.

더 좋은 해결책이 있습니까? 나는 명백한 것을 놓쳤는가?


편집 : MapQuest는 custom POI data sets을 사용하여 support driving distance search으로 나타납니다.

proximity search의 중복이 아니므로 주행 거리 근접, 위도/경도 근접이 필요하지 않습니다.

답변

0

.

불행하게도 MapQuest의 데이터 제한으로 인해 고객이 덜 흥미로운 솔루션을 사용하기로 결정했습니다.

+0

궁금한 점은 고객에게 어떤 데이터 제한 사항이 문제로 밝혀 졌습니까? – jharahush

+0

일일 5000 건의 검색 당신이 이벤트를 추가 할 때 (즉, 가장 가까운 포스트 코드를 찾는다) 5000/day 한도를 넘을 때 검색을 역으로 수행하는 것이 다른 아이디어였습니다. – Jon

0

영국에서 OpenStreetMap의 품질에 대해 모르겠으나 데이터를 다운로드 할 수 있습니다. 데이터 품질이 충분하고 PostalCode 정보를 포함하고 있다면 일부 온라인 데이터 저장소에서 DOS 공격을하지 않고 데이터를 사용하여 원하는 모든 것을 미리 계산할 수 있습니다.

맵 퀘스트가 custom POI data sets를 사용하여 support driving distance search에 나타납니다 : 내가 편집로 추가 한 것처럼

관련 문제