3단계 · GDAL 레시피

웹 형태 변환

브라우저가 바로 읽는 포맷으로 변환. 뷰어별 처리 방식.

방식·도구 고르기

카드 안 도구 선택 → 아래 단계·결과 전환. ?: 고르는 기준·장단점.

파일 방식

결과를 파일로 구워 정적 호스팅. 브라우저가 파일을 직접 읽음.

도구

서버 방식

떠 있는 서버에 발행. 요청마다 서버가 응답 생성.

도구

GDAL 요약 파일 방식

걸린 시간
-
결과 용량
-
파일 수
-
그릴 수 있는 뷰어
4 / 4

변환 단계

  1. 1GeoJSON 내보내기 (OGC API Features 경로)GDAL/OGR C++, MIT, v3.13.3공간데이터 변환 표준 엔진. 래스터(GDAL)·벡터(OGR) 수백 가지 포맷.자세히 보기

    ogr2ogr -f GeoJSON /out/ogc/collections/countries/items.json /work/countries.gpkg -nln countries -lco RFC7946=YES -lco COORDINATE_PRECISION=7

    -lco RFC7946=YES: 브라우저 표준 GeoJSON. COORDINATE_PRECISION=7: 좌표 7자리. /collections/{id}/items: OGC API Features 도형 데이터를 /collections/{id}/items 같은 정해진 주소로 주고받는 웹 표준. WFS의 후속. 서버 방식은 GeoServer가 실제 제공, 파일 방식은 같은 구조의 정적 파일. 자세히 Features 경로, 실서버 이전 용이.

  2. 2MVT 벡터타일 분할GDAL/OGR C++, MIT, v3.13.3공간데이터 변환 표준 엔진. 래스터(GDAL)·벡터(OGR) 수백 가지 포맷.자세히 보기

    ogr2ogr -f MVT /out/tiles /work/countries.gpkg -nln countries -dsco MINZOOM=0 -dsco MAXZOOM=5 -dsco COMPRESS=NO

    줌별 타일 피라미드 (XYZ) 줌 단계별로 256px 조각으로 미리 잘라 둔 지도. 줌 1단계마다 조각 수 4배. 자세히.pbf 타일 → 보이는 영역만 요청. -nln: 레이어 이름(뷰어 스타일에서 참조). MINZOOM·MAXZOOM: 줌 범위. COMPRESS=NO: gzip 없이 저장.

  3. 3무결성 확인 (타일 전후 피처 수)GDAL/OGR C++, MIT, v3.13.3공간데이터 변환 표준 엔진. 래스터(GDAL)·벡터(OGR) 수백 가지 포맷.자세히 보기

    n() { ogrinfo -ro -q "$@" | awk '/ = /{print $NF}'; }
    b=$(n /work/countries.gpkg -dialect SQLite -sql "SELECT count(DISTINCT name) FROM countries")
    [ -n "$b" ] || { echo "피처 수 읽기 실패: name"; exit 1; }
    echo "변환 전: 피처 $b"
    for z in $(seq 0 5); do set -- $(n /out/tiles/$z -dialect SQLite -sql "SELECT count(DISTINCT name), count(*) FROM countries"); echo "줌 $z: 피처 $1, 조각 $2"; done

    줌마다 타일 속 고유 name 수 = 남은 피처, 전체 행 = 조각(타일 경계에서 잘려 여러 타일에 든 것 포함). 피처가 변환 전보다 적으면 그 줌에서 표시용 결과와 원본 웹 결과물은 화면용 사본. 타일 좌표 반올림, 경계 잘림, 작은 도형 제거로 원본과 달라질 수 있음 → 조회·계산은 원본 쪽 데이터로. 자세히(너무 작은 도형·밀집 제거). 줌 하나의 타일 전체 = GDAL 레이어 하나.

결과물

  • GeoJSONGeoJSON

    파일 하나에 전체. 소규모 데이터에 가장 단순.

  • MVT 벡터타일MVT 벡터타일

    보이는 영역 타일만 요청. 대용량에 유리.

뷰어별 처리 · GDAL

  • OpenLayers 2D미검증

    결과물
    MVT 벡터타일 (tiles/{z}/{x}/{y}.pbf)
    처리
    VectorTileLayer + VectorTileSource(MVT)
  • MapLibre 2.5D미검증

    결과물
    MVT 벡터타일 (tiles/{z}/{x}/{y}.pbf)
    처리
    vector 소스 + fill·line·circle
  • MapLibre + Deck.gl 3D미검증

    결과물
    MVT 벡터타일 (tiles/{z}/{x}/{y}.pbf)
    처리
    MVTLayer
  • CesiumJS 3D미검증

    결과물
    GeoJSON (ogc/collections/countries/items.json)
    처리
    GeoJsonDataSource
    메모
    MVT 미지원 → GeoJSON 사용.

직접 처리: 원본과 같은 형식을 그대로 읽음. 변환 후 처리: 바꾼 결과물을 읽음. 일부 기능만: 그리지만 빠지는 기능 있음(카드의 주의). 미검증: 성공한 실행 기록 없음.