프로젝트 소개

jpmap_terrain은 일본 지리원 타일 고도 데이터를 기반으로 Babylon.js에서 3D 지형 표현을 구축하는 프론트엔드 프로젝트입니다. TypeScript로 구현되었으며, npm 패키지 jpmap-terrain으로서 ESM 및 타입 정의 파일(.d.ts)과 함께 배포됩니다(@babylonjs/core는 peerDependency). 주요 공개 API는 두 가지입니다. 첫 번째 JpmapTerrain은 임의의 DOM 요소에 마운트하여 3D 지형 뷰어를 내장하는 것으로, WebGPU/WebGL2 엔진 선택, 위도·경도·고도·방위각·앙각 지정, flyTo를 통한 카메라 이동, 나침반 표시 전환 등이 가능합니다. 지도 종류로 표준 지도와 항공 사진을 전환할 수 있습니다. 두 번째 JpmapDiorama는 지형을 손바닥 크기의 정사각형 '하코니와'로 표시하는 API로, 표준 웹 브라우저와 WebXR(immersive-ar) 세션 양쪽에 대응하며, AR 대응 환경에서는 AR 세션으로 진입할 수 있습니다. 데모 포털에는 17개의 데모가 포함되어 있으며, 3D 지형 뷰어, 타임랩스(태양 위치·그림자 애니메이션), 줌 루프, 후지산 정상 주회, 폴리곤/서클 API 확인, 거리 측정, QGroundControl .plan 파일 뷰어, GPX 뷰어(통계·고도 그래프 포함), 3D 모델 배치, 아바타 애니메이션, Boids 군중 시뮬레이션, 비행 데모, Havok 물리를 사용한 Artillery 대전 게임, 글로브 지형, 하코니와 디오라마 등이 포함됩니다. 기술 스택은 TypeScript / Babylon.js / Vite(데모용) / tsdown(라이브러리 빌드용) / Playwright(Visual Regression Test) / Vitest(유닛 테스트)입니다. 개발 서버는 핫 리로드와 함께 기동하며, Docker/Nginx에 의한 데모 사이트 배포 구성도 제공됩니다. URL 파라미터로 엔진 전환, 지도 종류, 2D/3D 표시 모드, Google Maps 호환 위도·경도 경로 형식에 의한 카메라 위치 지정이 가능합니다. 라이선스는 Apache-2.0입니다.