3단계 · citygml-tools + cjio + 3d-tiles-tools 레시피

웹 형태 변환

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

방식·도구 고르기

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

파일 방식

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

도구

엔진 (Cesium for Unreal)

같은 결과 파일(3D Tiles·quantized-mesh)을 언리얼에서 읽음. 엔진 전용 변환 없음.

엔진이 읽는 결과를 만드는 도구

citygml-tools + cjio + 3d-tiles-tools 요약 파일 방식

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

변환 단계

  1. 1CityJSON 변환citygml-tools Java, Apache-2.0, v2.5.0CityGML → CityJSON 변환, 버전·좌표계 손질.자세히 보기

    citygml-tools to-cityjson /work/rp/tokyo_station_bldg.gml -L warn -o /work/cj

    같은 내용 JSON화, 좌표 정수 + 배율 → 10MB에서 약 0.7MB. 지붕·벽 의미·속성 유지.

  2. 2도쿄역 원점 이동·glb 내보내기cjio Python, MIT, v0.10.1CityJSON CLI. 좌표계 변환, glb 내보내기.자세히 보기

    cjio --suppress_msg /work/cj/tokyo_station_bldg.json crs_translate --minxyz 5995.185 35367.230 0 export glb /work/bldg.glb

    좌표 수만 m → glTF 웹용 3D 모델 표준. .gltf: JSON + 외부 파일, .glb: 파일 하나로 묶은 이진 형태. 자세히 정밀도 저하. crs_translate: 도쿄역(6677 좌표 -5995.185, -35367.230)을 원점으로. export glb: 면 삼각형 분할 후 glb 출력.

  3. 3웹용 압축glTF Transform TypeScript, MIT, v4.5.1glTF 웹용 최적화 도구. 묶기, 압축, 텍스처 축소.자세히 보기

    gltf-transform optimize /work/bldg.glb /out/model/bldg.glb --compress meshopt

    중복 꼭짓점 병합. --compress meshopt: 형상 압축.

  4. 4도쿄역 배치 타일셋 생성3d-tiles-tools TypeScript, Apache-2.0, v0.5.4Cesium의 3D Tiles 손질 도구. glb 타일셋 감싸기, 버전 올리기.자세히 보기

    3d-tiles-tools createTilesetJson -i /out/model/bldg.glb -o /out/model/tileset.json --cartographicPositionDegrees 139.7671 35.6812 0 -f

    --cartographicPositionDegrees: 원점(도쿄역) 경위도 → tileset.json, Cesium 제자리 배치.

결과물

  • GLB + 놓을 위치glTF (GLB)

    85동을 메시 하나로, 건물별 속성 없음. Deck.gl용.

  • 3D Tiles (glb 감싸기)3D Tiles

    위치 내장 타일셋. Cesium용.

뷰어별 처리 · citygml-tools + cjio + 3d-tiles-tools

  • OpenLayers 2D미지원

    2D 지도 — 3D 건물 모델 미지원.

  • MapLibre 2.5D미지원

    glTF·3D Tiles 기본 레이어 없음.

  • MapLibre + Deck.gl 3D미검증

    결과물
    GLB + 놓을 위치 (model/bldg.glb)
    처리
    ScenegraphLayer
    메모
    ScenegraphLayer로 도쿄역 기준점에 배치.
  • CesiumJS 3D미검증

    결과물
    3D Tiles (glb 감싸기) (model/tileset.json)
    처리
    Cesium3DTileset

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