제목이 약간 어색합니다. 몇 가지 배경 지식을주고 질문을합니다.
배경 : 웹 GIS 응용 프로그램 개발자 로 일하고 있지만 여가 시간에는지도 렌더링을 사용하고 데이터 교환 형식을 개선했습니다. 나는 2D 공간에서만 일합니다.
내가 겪은 흥미로운 문제 중 하나는 다각형을 소규모로 렌더링 할 때 (확대 / 축소) 많은 정점이 중복된다는 것입니다. 극단적 인 경우에는 단일 픽셀 만 차지하는 500,000 개의 정점이있는 다각형이 있습니다. 이 데이터를 브라우저로 전송하는 경우 해당 정점을 ~ 499,999 개 생략하는 것이 좋습니다. 우리가 달성하는 한 가지 방법은 서버에 이미지를 렌더링하여 PNG로 보내는 것입니다. 그러나 SVG (또는 캔버스 또는 webgl)로 렌더링하여 대화식으로 데이터를 렌더링 할 수있는 브라우저로 데이터를 보내려는 경우가 있습니다.
문제 : 현대의 지리 데이터 세트를 사용하면 SVG의 렌더링 기능을 오버로드하는 것이 매우 쉽다는 것이 밝혀졌습니다. 이러한 제한을 극복하기 위해 주어진 스케일과 맵 범위 (필요한 경우 알려진 맵 픽셀 너비 및 높이)에 대한 데이터 세트를 시각적으로 무손실로 줄이는 방법을 알아 내려고 노력 중 입니다.
Douglas-Peucker 알고리즘을 사용하여 데이터 크기를 크게 줄였으며 다각형을 한 픽셀 내에서 그대로 유지할 수 있다고 생각합니다. 불행하게도 Douglas-Peucker는 토폴로지를 유지하지 않으므로 다각형 간의 경계가 렌더링되는 방식이 변경되었습니다. 시도하고 목적에 맞게 조정할 다른 알고리즘을 쉽게 찾을 수 없었지만 CS / 알고리즘 배경이 많지 않아 알고리즘을 인식하지 못할 수 있습니다.