2009-09-03 7 views
0

아는 사람들 중 일부는 폴리선 드로잉을 다양한 줌 레벨로 최적화하는 Google 맵 API에 인코딩 알고리즘이 있다는 것을 알고 있습니다. 현재 확대/축소 수준에 따라 경로의 좌표를 제거하고 더하고 감소 시키면 도면 계산 시간이 늘어납니다. 특히 GPolyline.fromEncoded 메서드의 알고리즘을 의미합니다. javascript가 아닌 다른 플랫폼에서 나는 이와 같은 알고리즘이 필요합니다. 물론 나는 Google 스타일의 전문 코드를 사용하지 않을 것이라고 생각합니다. 그런 코드를 볼 수있는 다른 알고리즘이 있습니까? 해당 플랫폼에 따라 코드를 다시 구현할 수 있습니까? 또는 다양한 확대/축소 수준에서 경로 드로잉의 최적화를 수행하기위한 제안은 무엇입니까?Google지도의 드로잉 인코딩 알고리즘과 비슷합니다.

답변

1

다음은 어떻게됩니까?

  1. 줌 레벨에 따라 상수 DetailRadius을 선택하십시오.
  2. 다각형에서 시작점을 지정하십시오.
  3. 다각형의 다음 점이 현재 점을 중심으로 반경이 DetailRadius 인 원의 내부 또는 외부에 있는지, 즉 현재 점과 다음 점 사이의 거리가 더 작거나 큰 경우 테스트합니다 (DetailRadius).
    1. 다음 요점이 반경 밖에있는 경우 현재 지점에서이 지점으로 이동하십시오.
    2. 다음 점이 반지름 안에 있으면 삭제하고 3.에서 다음 점을 계속합니다.

하나는, 원의 현재 위치의뿐만 아니라 neighoubrs 모든 점을 제거하는 방법에 대한 생각 할 수있다. 이렇게하면 세부 묘사가 더 줄어들지 만, 계산이 더 비싸고 더 많은 기하학적 왜곡이 발생할 수 있습니다. 이는 "현재 점에서 점을 밀어냅니다"때문입니다.

+0

완벽하게 논리적 인 것처럼 보이지만 먼저이 문제를 시도한 다음 의견을 보내주십시오. 감사 – cocoatoucher

관련 문제