2011-12-02 2 views
6

Google지도의 중심에서 가장 가까운 10 개의 마커를 얻고 Javascript로 중심점을 기준으로 정렬하려고합니다. 그래서 자바 배열에 100 개의 마커가 있다고 가정 해 봅시다 - 나는 HTML 정렬되지 않은 목록에서 10 개의 가장 가까운 것에 대한 더 많은 정보를 표시하고 싶습니다. api 버전 2 (example in version 2)에 대한 유사한 예가 있지만 Google지도 API 버전 3에는 아무 것도 없습니다.Google Map지도에서 가장 가까운 10 점의 마커를 얻습니다.

답변

16

어쨌든 모든 거리를 계산해야합니다. 간단한 방정식으로 직접 할 수도 있고 Google의 도형 라이브러리 인 http://code.google.com/intl/pl-PL/apis/maps/documentation/javascript/geometry.html과 그 함수 : computeDistanceBetween()을 사용할 수도 있습니다. 예 :

marker.distance = google.maps.geometry.spherical.computeDistanceBetween(marker.position, center.position); 

과 같이 맞춤 마커 속성에 거리를 저장하고 원하는대로 정렬합니다. 도움이 되길 바랍니다.

+1

정확히 내가하는 방법입니다. 작은 스케일의 경우 평면 pythagor 표현을 거리 (위도의 제곱 + 경도의 제곱 차이)로 사용할 수는 있지만 정확하지는 않지만 훨씬 빠를 수 있습니다. – TMS

+0

감사합니다. 완벽하게 작동합니다! –

0
  1. 지도의 중심점을 기준으로 배열을 정렬하십시오. sort()을 사용하십시오.
  2. 처음 10을 slice()으로 슬라이스합니다.
  3. 지도에 표시하십시오.
+0

고마워, 나는 당신의 솔루션으로 첫 번째 답변에서 함수를 사용! –

+1

이런 종류의 작업을 위해 저는 보통 [밑줄] (http://underscore.org) 라이브러리를 사용합니다. 이런 종류의 작업에는 많은 도움을줍니다. 필자의 경우, 마커 배열에'_.each'와'_.sort'를 사용했습니다. – bzin

관련 문제