본문 바로가기
코딩 강좌/웹 지도 만들기

Leaflet과 Turf.js를 활용한 다각형 버퍼 및 등간격 포인트 생성하기

by 요긴소프트 2024. 11. 7.
728x90
반응형

 

이 코드는 지도상에 다각형을 그리고, 버퍼 영역을 생성한 후 그 경계선을 따라 일정한 간격으로 포인트를 배치하는 방법을 보여줍니다.

1. 기본 지도 설정

var map = L.map("map").setView([-26, 128], 5);
L.tileLayer('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png', {...});
  • 호주 중심부(-26°, 128°)를 초기 뷰포인트로 설정
  • Carto의 밝은 스타일 베이스맵 사용

2. 다각형 생성

const polygon = turf.polygon([...]);
  • 호주 내륙 일부를 포함하는 사각형 다각형 생성
  • 좌표: 위도 -28° ~ -20°, 경도 126° ~ 140°

3. 버퍼 생성

const polygon1 = turf.buffer(polygon, -50, {units: "kilometers"})
  • 원본 다각형에서 안쪽으로 50km 버퍼 생성

4. 포인트 생성 방식

4.1 개수 기반 포인트 생성

const count = 10;
var stepLength = lineLength / count;
  • 버퍼 경계선을 10개의 균등한 구간으로 나누어 포인트 생성
  • 각 포인트는 동일한 거리 간격으로 배치

4.2 거리 기반 포인트 생성

const dist = 100; // 100km 간격
  • 버퍼 경계선을 따라 100km 간격으로 포인트 생성
  • 전체 경계선 길이에 도달할 때까지 포인트 생성

주요 특징

  1. 두 가지 다른 방식으로 포인트를 생성하여 비교 가능
  2. turf.along() 함수를 사용하여 라인을 따라 정확한 거리 계산
  3. 생성된 모든 지오메트리는 지도에 시각적으로 표시

이 코드는 GIS 분석에서 자주 사용되는 버퍼 분석과 등간격 포인트 생성을 웹 환경에서 구현한 좋은 예시입니다.

 

전체 코드는 아래 첨부파일을 참고하세요.

라인에서점선택.zip
0.00MB

728x90
반응형