2012-11-13 3 views
3

사용자가 경로를 요청할 때 Google지도에서 관련 위치를 강조 표시해야합니다. 몇 가지 단계를 구현했습니다. 하지만 한 지점에서 붙어있어.포인트가 경로에 있는지 확인 - Google지도

많은 수의 콜렉션 (수천 개)이 있다고 가정 해 봅시다. 우리는 그들 가운데 어느 것이 (동적 인) 경로에 있는지 찾아야합니다.

1 단계 : 먼저 경로를 기준으로 지점을 필터링합니다. 즉, 경로의 최대 위도, 최소 위도, 최대 경도, 최소 경도를 찾고이 필터를 그룹에 적용하십시오. 우리가 적격 후보자의 수를 계산할 수 있도록

2 단계 : RouteBoxer라는 유틸리티 라이브러리를 사용하여 불필요한 점을 필터링 할 수 있습니다. (http://google-maps-utility-library-v3.googlecode.com/svn/tags/routeboxer/1.0/examples/routeboxer-v3.html)

3 단계 : 위의 2 단계를 거친 후 수천에서 몇 백까지 점의 수. 그리고이 지점들은 정확히 그 경로가 아닌 경로 주위에있을 것입니다. 이것이 내가 직면 한 도전입니다. 이 포인트가 해당 경로에 있는지 확인하는 방법은 무엇입니까? 나는 모든 포인트를 얻는다고 생각하지 않으며 거리를 확인하는 것은 좋은 해결책이다 (예, 작동 할 것이다.). 그러나 길은 어떤 거리라도 될 수있다. 점과 경로 사이의 최소 거리를 확인하는 방법이 있습니까?

+0

해결책을 찾았습니까? 비슷한 일을하고 있기 때문에 솔루션 (가능한 코드)을 게시하십시오. –

+0

계속 업데이트하겠다는 의견을 남겨주세요. 나는 비슷한 것을 찾고 있습니다. – Ben

답변

0

RouteBoxer는 폴리곤 목록 또는 LatLngBounds을 제공합니다 (폴리곤을 제공하는 경우 어쨌든 LatLngBounds를 얻을 수 있습니다). LatLngBounds 클래스의 contains 메소드를 사용하여 각 점을 순환하고 해당 점이 해당 경계에 있는지 확인할 수 있습니다.

+0

RouterBox를 사용하여 중복되는 세그먼트를 확인하는 코드를 보여줄 수 있습니까? – Wikki

+0

"겹치는 세그먼트"에 대해 자세히 설명해 주시겠습니까? – Salman

+0

내가 만든이 사이트를 참조하십시오. (http://www.kbook.com.au/tb/) 여러 경로를 저장할 수 있으며 오른쪽 목록에서 찾아 볼 수 있습니다. 이미 저장된 경로를 찾아 중복 된 경로를 확인하십시오. 겹치는 경로 또는 다른 경로로 중첩되는 경로 부분을 찾는 방법을 결정해야합니다. – Wikki

0

예, dijkstra 또는 kruskal 알고리즘이 있습니다.

관련 문제