Paris Google Photorealistic 3D Tiles 48.8584° N · 2.2945° E
React 19 · three.js ≥ 0.160 · ESM + CJS + types
React için
gerçek zamanlı
3B haritacılık
Real-time 3D cartography for React.
React'in monte ettikten sonra karışmadığı buyurgan bir Three.js motoru. Kamerayı, döşemeleri ve katmanları MapEngine tutar; böylece çizim döngüsü hiçbir zaman yeniden render beklemez.
npm i @pasquelin/map3d three react react-dom
- Sürüm
- 0.6.0
- Peer bağımlılıklar
- react 19 · three ≥ 0.160
- Derleme
- ESM + CJS + .d.ts
- Lisans
- PolyForm Noncommercial
Canlı demolar
Doğrudan tarayıcıda deneyin
Kurulum da anahtar da gerekmez. Aşağıdaki demolar her push’ta bu depodan derlenir ve doğrudan GitHub Pages üzerinden sunulur.
Galeri
Yörüngeden kaldırıma
Tek bir kütüphane inişin tamamını karşılar: yörünge küresi, bölgesel kümeleme, çatı silueti, ayağınızın altındaki sokak adları.
-
12 700 km Küreden düz haritaya elipsoit yedeği, akıllı kümeleme
-
9 km İşaretçiler ve kümeler yeniden kullanılan DOM düğümleri, kategoriye göre ayrılmış
-
3 km Silüet ve ufuk eğim ne olursa olsun işaretçiler ekran boyutunu korur
-
900 m Koordinat ızgarası zemine yapışır, ekrandaki çizgi kalınlığı sabit kalır
-
1,7 m Yaya modu göz yüksekliği, yerçekimi, çarpışmalar
Yetenekler
Kutudan çıkanlar
Her yüzey — araç çubuğu, denetimler, arama, koordinat ızgarası, kümeleme — <Map> içinde monte edilir ve yapılandırmayla yönetilir. Siz yalnızca veriyi eklersiniz.
-
Fotogerçekçi 3B, düz 2B
cesiumIonTokenCesium Ion üzerinden Google Photorealistic 3D Tiles, belirteç yoksa elipsoit küre ve Google’dan ya da kendi XYZ sunucunuzdan gelen 2B temel harita. -
DOM işaretçileri ve kümeleri
markersLayer()Yerel hover, odak ve CSS animasyonu çalışan gerçek DOM düğümleri. Havuzlanır ve tek birtranslate3dgeçişinde yazılır; hareket eden birim yeniden oluşturulmak yerine kayar. -
Çizim düzenleyici
drawÇerçeve ve kement seçimi, yeniden boyutlandırma ve döndürme tutamakları, araca özgü stiller, geri al ve yinele, GeoJSON alma ve verme. -
Görünüm alanına bağlı canlı veri
useLiveData()Kamera hareket ettikçe sınırlayıcı kutuya göre yeniden çekme, ayrıca gerçek zamanlı güncellemeler. -
MIL-STD-2525D sembolojisi
dinamik import9 MB’lık sembol SDK’sı yalnızca gerektiğinde yüklenir — sembol göstermeyen bir pakete asla girmez. -
Tipli tema ve etiketler
theme · labelsAçık ve koyu,prefers-reduced-motiongözetilir, tamamı çevrilebilir. Kodun hiçbir yerinde sabitlenmiş metin ya da değer yok.
İş başında
Araçlar, çalışırken
Aşağıdaki her ekran görüntüsü, yukarıdan açabileceğiniz demonun kendisidir — hiçbiri maket değil.
-
Çizim ve seçimyeniden boyutlandırma ve döndürme tutamakları, canlı seçim paneli, geri al ve yinele
-
MIL-STD-2525D paletidost, düşman, tarafsız, bilinmeyen — SDK gerektiğinde yüklenir
-
Katalog ve veri kaynaklarıbir kaynağı açarsınız, 252 nokta iner ve kümeler yeniden kurulur
-
Açık tematek bir ayar — harita dahil tüm arayüz onu izler
Hızlı başlangıç
On küsur satırda kümelenmiş bir harita
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>
)
}
İsteğe bağlı eklentiler — IGN Géoplateforme, Windy, iç mekân kat planları — ayrı bir depoda yaşar; eklenti API’siyle kendinizinkini de yazabilirsiniz.