태그 보관물: generalization

generalization

해안선을 일반화하는 방법? 대해 읽었으며 이것이

나는 본질적으로 세계의 해안선을 나타내는 많은 데이터 포인트를 가지고 있습니다. 나는 정확한 해상도를 모르지만 5-10m 부근에 있다고 말할 것입니다.

들쭉날쭉 한 해안선을 나타내는 점 세트를 상상해보십시오. 1m 해상도에서 모든 세부 사항을보고 해안을 올바르게 표현하기 위해 50 개의 데이터 포인트가 필요하지만 10km 해상도에서는 해안이 직선처럼 보이고 2 포인트 만 필요합니다.

데이터를 “전체 평면”해상도에서 “거리”해상도로 확장해야하는 매핑 응용 프로그램을 작성 중입니다. 데이터 포인트의 해상도를 낮추고 더 넓은 해상도를위한 데이터 양을 줄이는 데 도움이 필요합니다.

Vector-Tiling에 대해 읽었으며 이것이 최선의 해결책이라고 생각합니다 (이미 이와 같은 일을하고 있습니다). 그러나 낮은 해상도에서 데이터 세트는 여전히 상대적으로 오래 걸리는 것을 의미합니다. ‘효과적인’데이터 세트가 작기 때문에 전체 해상도의 데이터 세트가 작기 때문에 고해상도가 빠른 시간.

내 ‘전체 평면’보기의 타일 데이터가 관리 가능한 크기가되도록 큰 데이터 세트를 가져 와서 스케일을 줄이는 방법을 결정하려고합니다. 더 큰 전체 데이터 세트에서 타일 하위 데이터 세트를 작성하는 방법

도구를 사용하게되어 기쁩니다. 도구 사용 방법을 배우기 위해 직접 도구를 사용하고 싶습니다.



답변

이 문제를 해결하는 방법은 실제로 사례와 실제 토폴로지가 사용자에게 얼마나 중요한지에 달려 있습니다 (시각적 / 렌더링 시간과 비교). 최종 목표는 해안선을 일반화하는 것이므로 일반화에 대한 몇 가지 아이디어가 유용 할 수 있습니다.

한 가지 접근 방식은 여기에서 볼 수 있듯이 버퍼링을 사용 합니다 . 나는 또한 전에 비슷한 문제가 있었고 여기에 내 솔루션을 자세히 설명 했습니다 .

요컨대, 다른 레벨로 일반화 된 별도의 벡터 데이터 세트 (또는 최소한 별도의 형상)를 사용할 수 있습니다. 타일을 사용하지는 않지만 기본 문제를 해결하지만 원하는 경우 여전히 사용할 수 있습니다. 물론 그리드를 기준으로 데이터 세트를 타일로 분할하려는 경우 먼저 일반화해야합니다. 그렇지 않으면 타일 사이에 간격이 생깁니다.


답변

“전체 행성”확대 / 축소 수준에서 확대 / 축소까지 데이터 세트의 서로 다른 일반화 된 버전을 준비해야합니다.

일반적인 일반화 알고리즘은 Douglas-Peucker 알고리즘 입니다. 아직 해안선을 연결하지 않은 경우 먼저 점을 해안선에 연결해야합니다.


답변

타일셋을 생산하기 위해 Tilemill을 조사 했습니까? 자동으로 다른 줌 레벨에서 노드를 줄입니다.
https://github.com/mapbox/tilemill


답변

아마도 귀하의 질문에 대답하지는 않았지만 매우 관련이 있습니다. 이것은 Google이 일반화 정보를 포함한 폴리 라인을 인코딩하는 방법입니다 : http://code.google.com/apis/maps/documentation/utilities/polylinealgorithm.html


답변