map3d v0.6.0
map3d가 렌더링한 실사 3D 도시. 위에 드로잉 편집기가 열려 있다

파리 Google Photorealistic 3D Tiles 48.8584° N · 2.2945° E

React 19 · three.js ≥ 0.160 · ESM + CJS + types

React를 위한
실시간 3D
지도

Real-time 3D cartography for React.

React가 마운트한 뒤에는 관여하지 않는 명령형 Three.js 엔진입니다. MapEngine이 카메라와 타일, 레이어를 소유하므로 렌더 루프가 리렌더를 기다리는 일이 없습니다.

npm i @pasquelin/map3d three react react-dom

버전
0.6.0
피어 의존성
react 19 · three ≥ 0.160
빌드
ESM + CJS + .d.ts
라이선스
PolyForm Noncommercial

실행 가능한 데모

브라우저에서 바로 사용해 보세요

설치도 키도 필요 없습니다. 아래 데모는 푸시할 때마다 이 저장소에서 빌드되어 GitHub Pages가 그대로 제공합니다.

기능

기본으로 제공되는 것

툴바, 컨트롤, 검색, 좌표 격자, 클러스터링 등 모든 표면은 <Map> 내부에 마운트되고 설정으로 제어됩니다. 데이터만 넣으면 됩니다.

실제 동작

도구가 일하는 모습

아래 화면은 모두 위에서 열 수 있는 데모 그대로입니다. 목업이 아닙니다.

빠른 시작

열두어 줄로 만드는 클러스터 지도

import { Map, markersLayer, type MarkerData } from '@pasquelin/map3d'

type Alert = { title: string }

const alerts: MarkerData<Alert>[] = [
  { id: 1, type: 'critical', position: { lat: 48.8566, lng: 2.3522 }, title: 'Intrusion', data: { title: 'Intrusion' } },
  { id: 2, type: 'info', position: { lat: 48.8606, lng: 2.3376 }, title: 'Patrol', data: { title: 'Patrol' } },
]

export function App() {
  return (
    <div style={{ height: '100vh' }}>
      <Map
        center={{ lat: 48.8566, lng: 2.3522 }}
        zoom={13}
        layers={[markersLayer<Alert>({ points: alerts, cluster: { enabled: true } })]}
      />
    </div>
  )
}

선택 플러그인 —— IGN Géoplateforme, Windy, 실내 도면 —— 은 별도 저장소에 있으며, 플러그인 API로 직접 만들 수도 있습니다.