Paris Google Photorealistic 3D Tiles 48.8584° N · 2.2945° E
React 19 · three.js ≥ 0.160 · ESM + CJS + types
Bản đồ 3D
thời gian thực
cho React
Real-time 3D cartography for React.
Một engine Three.js mệnh lệnh mà React gắn vào rồi để yên cho nó chạy. MapEngine nắm giữ camera, các tile và các lớp, nên vòng lặp dựng hình không bao giờ phải chờ một lần render lại.
npm i @pasquelin/map3d three react react-dom
- Phiên bản
- 0.6.0
- Phụ thuộc ngang hàng
- react 19 · three ≥ 0.160
- Bản dựng
- ESM + CJS + .d.ts
- Giấy phép
- PolyForm Noncommercial
Demo trực tiếp
Dùng thử ngay trên trình duyệt
Không cần cài đặt, không cần khoá. Các bản demo bên dưới được dựng từ kho này sau mỗi lần push và phục vụ thẳng từ GitHub Pages.
Thư viện ảnh
Từ quỹ đạo xuống vỉa hè
Một thư viện lo trọn cả hành trình đi xuống: địa cầu trên quỹ đạo, gom cụm theo vùng, đường chân trời mái nhà, tên phố dưới chân.
-
12 700 km Từ địa cầu sang bản đồ phẳng dự phòng ellipsoid, gom cụm thông minh
-
9 km Marker và cụm các nút DOM tái sử dụng, chia theo hạng mục
-
3 km Đường chân trời dù nghiêng thế nào, marker vẫn giữ nguyên kích thước trên màn hình
-
900 m Lưới toạ độ bám sát mặt đất, độ dày nét trên màn hình không đổi
-
1,7 m Chế độ người đi bộ tầm mắt, trọng lực, va chạm
Tính năng
Những gì có sẵn
Mọi bề mặt — thanh công cụ, các nút điều khiển, tìm kiếm, lưới toạ độ, gom cụm — đều được gắn bên trong <Map> và điều khiển bằng cấu hình. Bạn chỉ thêm dữ liệu.
-
3D ảnh thực, 2D phẳng
cesiumIonTokenGoogle Photorealistic 3D Tiles qua Cesium Ion, địa cầu ellipsoid khi không có token, và bản đồ nền 2D từ Google hoặc từ máy chủ XYZ của bạn. -
Marker và cụm bằng DOM
markersLayer()Là các nút DOM thật, có hover, focus và hoạt ảnh CSS nguyên bản. Được tái sử dụng và ghi trong một lượttranslate3dduy nhất; đối tượng đang di chuyển sẽ trượt đi thay vì bị dựng lại. -
Trình vẽ
drawChọn theo khung và theo nét lasso, tay cầm đổi kích thước và xoay, kiểu riêng cho từng công cụ, hoàn tác và làm lại, GeoJSON vào và ra. -
Dữ liệu trực tiếp theo khung nhìn
useLiveData()Tải lại theo hộp bao khi camera di chuyển, kèm cập nhật thời gian thực. -
Ký hiệu MIL-STD-2525D
import độngBộ SDK ký hiệu nặng 9 MB chỉ tải khi cần — nó không bao giờ lọt vào một gói không hiển thị ký hiệu nào. -
Giao diện và nhãn có kiểu
theme · labelsSáng và tối, tôn trọngprefers-reduced-motion, dịch được toàn bộ. Không một chuỗi hay giá trị nào bị viết cứng trong mã.
Đang vận hành
Bộ công cụ, lúc làm việc
Mỗi ảnh chụp bên dưới đều lấy từ chính bản demo bạn có thể mở ở trên — không có ảnh dựng.
-
Vẽ và chọntay cầm đổi kích thước và xoay, bảng chọn trực tiếp, hoàn tác và làm lại
-
Bảng ký hiệu MIL-STD-2525Dbạn, địch, trung lập, chưa rõ — SDK tải khi cần
-
Danh mục và nguồn dữ liệubật một nguồn, 252 điểm đổ về và các cụm sắp xếp lại
-
Giao diện sángmột thiết lập — toàn bộ giao diện đi theo, kể cả bản đồ
Bắt đầu nhanh
Một bản đồ có gom cụm trong hơn chục dòng
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>
)
}
Các plugin tuỳ chọn — IGN Géoplateforme, Windy, sơ đồ mặt bằng trong nhà — nằm ở một kho riêng, và bạn có thể tự viết bằng API plugin.