map3d v0.6.0
Фотореалистичный трёхмерный город, отрисованный map3d, с открытым поверх редактором рисования

Париж Google Photorealistic 3D Tiles 48.8584° N · 2.2945° E

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

Картография 3D
в реальном времени
для React

Real-time 3D cartography for React.

Императивный движок Three.js, который React монтирует и оставляет работать. MapEngine владеет камерой, тайлами и слоями, поэтому цикл отрисовки никогда не ждёт повторного рендера.

npm i @pasquelin/map3d three react react-dom

Версия
0.6.0
Peer-зависимости
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 плагинов.