@mapless/core 1.0.7 → 1.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { area as turf_area, center as turf_center, centroid, circle, distance as turf_distance, ellipse, length as turf_length, pointsWithinPolygon, polygon as turf_polygon } from "@turf/turf";
2
2
  import mapbox_gl, { LngLat, MapMouseEvent, Marker, MercatorCoordinate, Popup } from "mapbox-gl";
3
- import { AmbientLight, AnimationMixer, BoxGeometry, BoxHelper, BufferGeometry, CatmullRomCurve3, Clock, Color, ConeGeometry, CurvePath, CylinderGeometry, DirectionalLight, DoubleSide, Group, Line, LineBasicMaterial, LineCurve3, LoopRepeat, Matrix4, Mesh, MeshBasicMaterial, PerspectiveCamera, PointLight, Scene, SphereGeometry, SpotLight, TorusGeometry, TubeGeometry, Vector3, WebGLRenderer } from "three";
3
+ import { AmbientLight, AnimationMixer, BoxGeometry, BoxHelper, BufferGeometry, CatmullRomCurve3, Clock, Color, ConeGeometry, CurvePath, CylinderGeometry, DirectionalLight, DoubleSide, Group, InstancedMesh, Line, LineBasicMaterial, LineCurve3, LoopRepeat, Matrix4, Mesh, MeshBasicMaterial, Object3D, PerspectiveCamera, PointLight, Raycaster, Scene, SphereGeometry, SpotLight, TorusGeometry, TubeGeometry, Vector3, Vector4, WebGLRenderer } from "three";
4
4
  import gcoord from "gcoord";
5
5
  import mapbox_gl_draw from "@mapbox/mapbox-gl-draw";
6
6
  import "@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css";
7
- import { GLTFLoader, Line2, LineGeometry, LineMaterial } from "three-stdlib";
7
+ import { DRACOLoader, GLTFLoader, Line2, LineGeometry, LineMaterial } from "three-stdlib";
8
8
  class MapThree {
9
9
  mapless = void 0;
10
10
  scene = null;
@@ -16,6 +16,7 @@ class MapThree {
16
16
  renderableObjects = new Map();
17
17
  isInitialized = false;
18
18
  customLayerId = null;
19
+ lastProjectionMatrix = null;
19
20
  constructor(props){
20
21
  const { mapless } = props;
21
22
  this.mapless = mapless;
@@ -54,6 +55,7 @@ class MapThree {
54
55
  renderableObj.mesh.visible = false;
55
56
  });
56
57
  this.camera.projectionMatrix = m;
58
+ this.lastProjectionMatrix = m.clone();
57
59
  this.renderer.resetState();
58
60
  this.renderer.render(this.scene, this.camera);
59
61
  this.renderableObjects.forEach((renderableObj)=>{
@@ -317,6 +319,140 @@ class MapThree {
317
319
  this.removeRenderableObject(id);
318
320
  });
319
321
  }
322
+ raycast(point, objects, tolerance = 30) {
323
+ if (!this.camera || !this.scene || !this.renderer) return null;
324
+ const map = this.mapless?.map;
325
+ if (!map) return null;
326
+ const mapContainer = map.getCanvas();
327
+ const ndcX = point.x / mapContainer.width * 2 - 1;
328
+ const ndcY = 2 * -(point.y / mapContainer.height) + 1;
329
+ const targetObjects = objects || Array.from(this.renderableObjects.values()).map((obj)=>obj.mesh);
330
+ let closestHit = null;
331
+ let minDistance = 1 / 0;
332
+ const screenPositions = new Map();
333
+ for (const targetObj of targetObjects){
334
+ const renderableObj = Array.from(this.renderableObjects.values()).find((obj)=>obj.mesh === targetObj);
335
+ if (renderableObj && this.lastProjectionMatrix) {
336
+ let l;
337
+ if (renderableObj.transform.matrix) l = renderableObj.transform.matrix.clone();
338
+ else {
339
+ l = new Matrix4().makeTranslation(renderableObj.transform.translateX, renderableObj.transform.translateY, renderableObj.transform.translateZ).scale(new Vector3(renderableObj.transform.scale, -renderableObj.transform.scale, renderableObj.transform.scale));
340
+ if (void 0 !== renderableObj.transform.rotateX || void 0 !== renderableObj.transform.rotateY || void 0 !== renderableObj.transform.rotateZ) {
341
+ const rotationX = new Matrix4().makeRotationAxis(new Vector3(1, 0, 0), renderableObj.transform.rotateX || 0);
342
+ const rotationY = new Matrix4().makeRotationAxis(new Vector3(0, 1, 0), renderableObj.transform.rotateY || 0);
343
+ const rotationZ = new Matrix4().makeRotationAxis(new Vector3(0, 0, 1), renderableObj.transform.rotateZ || 0);
344
+ l.multiply(rotationX).multiply(rotationY).multiply(rotationZ);
345
+ }
346
+ }
347
+ const mvpMatrix = this.lastProjectionMatrix.clone().multiply(l);
348
+ const inverseMVP = mvpMatrix.invert();
349
+ const nearPoint = new Vector4(ndcX, ndcY, -1, 1).applyMatrix4(inverseMVP);
350
+ nearPoint.divideScalar(nearPoint.w);
351
+ const farPoint = new Vector4(ndcX, ndcY, 1, 1).applyMatrix4(inverseMVP);
352
+ farPoint.divideScalar(farPoint.w);
353
+ const origin = new Vector3(nearPoint.x, nearPoint.y, nearPoint.z);
354
+ const direction = new Vector3(farPoint.x - nearPoint.x, farPoint.y - nearPoint.y, farPoint.z - nearPoint.z).normalize();
355
+ const raycaster = new Raycaster(origin, direction);
356
+ const intersects = raycaster.intersectObject(targetObj, true);
357
+ const centerPoint = new Vector4(0, 0, 0, 1).applyMatrix4(mvpMatrix);
358
+ const screenX = (centerPoint.x / centerPoint.w + 1) * 0.5 * mapContainer.width;
359
+ const screenY = (-centerPoint.y / centerPoint.w + 1) * 0.5 * mapContainer.height;
360
+ const depth = centerPoint.z / centerPoint.w;
361
+ const scale = renderableObj.transform.scale;
362
+ const screenRadius = 50 * scale / Math.abs(depth);
363
+ screenPositions.set(targetObj, {
364
+ x: screenX,
365
+ y: screenY,
366
+ radius: screenRadius
367
+ });
368
+ if (intersects.length > 0 && intersects[0].distance < minDistance) {
369
+ minDistance = intersects[0].distance;
370
+ closestHit = {
371
+ object: intersects[0].object,
372
+ distance: intersects[0].distance,
373
+ point: intersects[0].point
374
+ };
375
+ }
376
+ }
377
+ }
378
+ if (!closestHit) for (const [obj, screenPos] of screenPositions){
379
+ const dx = screenPos.x - point.x;
380
+ const dy = screenPos.y - point.y;
381
+ const distance = Math.sqrt(dx * dx + dy * dy);
382
+ if (distance < Math.max(screenPos.radius, tolerance)) return {
383
+ object: obj,
384
+ distance: 0,
385
+ point: new Vector3()
386
+ };
387
+ }
388
+ return closestHit;
389
+ }
390
+ registerRenderableObjectClick(id, onClick, tolerance = 30) {
391
+ const renderableObj = this.renderableObjects.get(id);
392
+ if (!renderableObj) {
393
+ console.warn(`RenderableObject with id "${id}" not found`);
394
+ return null;
395
+ }
396
+ const map = this.mapless?.map;
397
+ if (!map) {
398
+ console.warn('Map not initialized');
399
+ return null;
400
+ }
401
+ const handleClick = (e)=>{
402
+ map.triggerRepaint();
403
+ requestAnimationFrame(()=>{
404
+ const point = {
405
+ x: e.point.x,
406
+ y: e.point.y
407
+ };
408
+ const hit = this.raycast(point, [
409
+ renderableObj.mesh
410
+ ], tolerance);
411
+ if (hit?.object) onClick(hit.object, hit.point);
412
+ });
413
+ };
414
+ map.on('click', handleClick);
415
+ return ()=>{
416
+ map.off('click', handleClick);
417
+ };
418
+ }
419
+ registerGlobalClick(onClick) {
420
+ const map = this.mapless?.map;
421
+ if (!map) {
422
+ console.warn('Map not initialized');
423
+ return null;
424
+ }
425
+ const handleClick = (e)=>{
426
+ const point = {
427
+ x: e.point.x,
428
+ y: e.point.y
429
+ };
430
+ const hit = this.raycast(point);
431
+ if (hit) {
432
+ let renderableId;
433
+ for (const [id, obj] of this.renderableObjects)if (this.isObjectInHierarchy(hit.object, obj.mesh)) {
434
+ renderableId = id;
435
+ break;
436
+ }
437
+ onClick({
438
+ ...hit,
439
+ renderableId
440
+ });
441
+ }
442
+ };
443
+ map.on('click', handleClick);
444
+ return ()=>{
445
+ map.off('click', handleClick);
446
+ };
447
+ }
448
+ isObjectInHierarchy(obj, root) {
449
+ let current = obj;
450
+ while(current){
451
+ if (current === root) return true;
452
+ current = current.parent;
453
+ }
454
+ return false;
455
+ }
320
456
  dispose() {
321
457
  this.clear();
322
458
  this.clearRenderableObjects();
@@ -13781,8 +13917,15 @@ const stateColorRule = [
13781
13917
  ];
13782
13918
  class MovableManager extends EmitManager {
13783
13919
  movables = void 0;
13920
+ iconRotationAlignment = 'map';
13921
+ showNameByDefault;
13922
+ iconBaseSize;
13923
+ circleBaseRadius;
13784
13924
  constructor(mapless, options){
13785
13925
  super(mapless, options, 'movable');
13926
+ this.showNameByDefault = options?.showNameByDefault ?? false;
13927
+ this.iconBaseSize = options?.iconBaseSize ?? 0.3;
13928
+ this.circleBaseRadius = options?.circleBaseRadius ?? 8;
13786
13929
  this.onInitialized();
13787
13930
  this.setupClickHandler();
13788
13931
  this.setupHoverHandler();
@@ -13849,8 +13992,8 @@ class MovableManager extends EmitManager {
13849
13992
  ],
13850
13993
  true
13851
13994
  ],
13852
- 0.4,
13853
- 0.3
13995
+ this.iconBaseSize + 0.1,
13996
+ this.iconBaseSize
13854
13997
  ],
13855
13998
  'icon-rotate': [
13856
13999
  'get',
@@ -13858,8 +14001,11 @@ class MovableManager extends EmitManager {
13858
14001
  ],
13859
14002
  'icon-allow-overlap': true,
13860
14003
  'icon-ignore-placement': true,
13861
- 'icon-rotation-alignment': 'map',
13862
- 'text-field': [
14004
+ 'icon-rotation-alignment': this.iconRotationAlignment,
14005
+ 'text-field': this.showNameByDefault ? [
14006
+ 'get',
14007
+ 'name'
14008
+ ] : [
13863
14009
  'case',
13864
14010
  [
13865
14011
  '==',
@@ -13927,8 +14073,8 @@ class MovableManager extends EmitManager {
13927
14073
  ],
13928
14074
  true
13929
14075
  ],
13930
- 10,
13931
- 8
14076
+ this.circleBaseRadius + 2,
14077
+ this.circleBaseRadius
13932
14078
  ],
13933
14079
  'circle-color': stateColorRule,
13934
14080
  'circle-stroke-width': [
@@ -14111,12 +14257,19 @@ class MovableManager extends EmitManager {
14111
14257
  padding: padding ?? 50
14112
14258
  });
14113
14259
  }
14260
+ setIconRotationAlignment(alignment) {
14261
+ this.iconRotationAlignment = alignment;
14262
+ if (this.map && this.idHub?.detailLayerId) this.map.setLayoutProperty(this.idHub.detailLayerId, 'icon-rotation-alignment', alignment);
14263
+ }
14264
+ getIconRotationAlignment() {
14265
+ return this.iconRotationAlignment;
14266
+ }
14114
14267
  destroy() {
14115
14268
  super.destroy();
14116
14269
  this.movables = void 0;
14117
14270
  }
14118
14271
  }
14119
- const attachMovable = (mapless, name)=>mapless?.use(MovableManager, name);
14272
+ const attachMovable = (mapless, name, options)=>mapless?.use(MovableManager, name, options);
14120
14273
  const getMovable = (mapless, name)=>mapless?.get(MovableManager, name);
14121
14274
  const detachMovable = (mapless, name)=>mapless?.unuse(MovableManager, name);
14122
14275
  const hasAzimuth = (station)=>maplessPreset.movableTypes.includes(station.category || '');
@@ -16674,6 +16827,21 @@ class AirspaceManager extends manager_Manager {
16674
16827
  });
16675
16828
  }
16676
16829
  }
16830
+ setFillExtrusionVisible(visible) {
16831
+ if (this.map && this.idHub?.fillLayerId) this.map.setLayoutProperty(this.idHub.fillLayerId, 'visibility', visible ? 'visible' : 'none');
16832
+ }
16833
+ isFillExtrusionVisible() {
16834
+ if (this.map && this.idHub?.fillLayerId) {
16835
+ const visibility = this.map.getLayoutProperty(this.idHub.fillLayerId, 'visibility');
16836
+ return 'none' !== visibility;
16837
+ }
16838
+ return true;
16839
+ }
16840
+ toggleFillExtrusion() {
16841
+ const currentState = this.isFillExtrusionVisible();
16842
+ this.setFillExtrusionVisible(!currentState);
16843
+ return !currentState;
16844
+ }
16677
16845
  destroy() {
16678
16846
  super.destroy();
16679
16847
  this.zones = {};
@@ -17182,6 +17350,47 @@ class MapModelManager extends EmitManager {
17182
17350
  previousId
17183
17351
  });
17184
17352
  }
17353
+ hideLayer(id) {
17354
+ if (void 0 === id) return void this.models.forEach((modelData)=>{
17355
+ if (this.map?.getLayer(modelData.layerId)) this.map?.setLayoutProperty(modelData.layerId, 'visibility', 'none');
17356
+ });
17357
+ const modelData = this.models.get(id);
17358
+ if (!modelData) return;
17359
+ if (!this.map) return;
17360
+ if (this.map.getLayer(modelData.layerId)) this.map.setLayoutProperty(modelData.layerId, 'visibility', 'none');
17361
+ }
17362
+ showLayer(id) {
17363
+ if (void 0 === id) return void this.models.forEach((modelData)=>{
17364
+ if (this.map?.getLayer(modelData.layerId)) this.map?.setLayoutProperty(modelData.layerId, 'visibility', 'visible');
17365
+ });
17366
+ const modelData = this.models.get(id);
17367
+ if (!modelData) return;
17368
+ if (!this.map) return;
17369
+ if (this.map.getLayer(modelData.layerId)) this.map.setLayoutProperty(modelData.layerId, 'visibility', 'visible');
17370
+ }
17371
+ toggleLayer(id) {
17372
+ if (void 0 === id) {
17373
+ this.models.forEach((modelData)=>{
17374
+ const isVisible = this.isLayerVisible(modelData.id);
17375
+ if (isVisible) this.hideLayer(modelData.id);
17376
+ else this.showLayer(modelData.id);
17377
+ });
17378
+ return true;
17379
+ }
17380
+ const isVisible = this.isLayerVisible(id);
17381
+ if (isVisible) this.hideLayer(id);
17382
+ else this.showLayer(id);
17383
+ return !isVisible;
17384
+ }
17385
+ isLayerVisible(id) {
17386
+ const modelData = this.models.get(id);
17387
+ if (!modelData) return false;
17388
+ if (!this.map) return false;
17389
+ const layer = this.map.getLayer(modelData.layerId);
17390
+ if (!layer) return false;
17391
+ const visibility = layer.visibility;
17392
+ return 'none' !== visibility;
17393
+ }
17185
17394
  destroy() {
17186
17395
  if (this.map && this.globalClickHandler) this.map.off('click', this.globalClickHandler);
17187
17396
  this.selectedModelId = null;
@@ -17600,6 +17809,260 @@ const curve3d = Curve3DManager;
17600
17809
  const attachCurve3D = (mapless, name, options)=>mapless?.use(Curve3DManager, name, options);
17601
17810
  const getCurve3D = (mapless, name)=>mapless?.get(Curve3DManager, name);
17602
17811
  const detachCurve3D = (mapless, name)=>mapless?.unuse(Curve3DManager, name);
17812
+ class InstancedModelManager extends manager_Manager {
17813
+ scene = null;
17814
+ camera = null;
17815
+ renderer = null;
17816
+ customLayerId;
17817
+ isInitialized = false;
17818
+ instancedMeshes = new Map();
17819
+ rotationAngles = new Map();
17820
+ autoRotateEnabled = new Map();
17821
+ rotationSpeeds = new Map();
17822
+ renderCount = 0;
17823
+ constructor(mapless){
17824
+ super(mapless);
17825
+ this.map = mapless.map;
17826
+ this.customLayerId = `instanced-model-layer-${this.gmid}`;
17827
+ }
17828
+ initThree() {
17829
+ if (this.isInitialized || !this.map) return;
17830
+ const canvas = this.map.getCanvas();
17831
+ const gl = canvas.getContext('webgl2') || canvas.getContext('webgl');
17832
+ if (!gl) return void console.error('InstancedModelManager: WebGL context not available');
17833
+ this.scene = new Scene();
17834
+ this.camera = new PerspectiveCamera(75, canvas.width / canvas.height, 0.1, 10000);
17835
+ this.renderer = new WebGLRenderer({
17836
+ canvas: canvas,
17837
+ context: gl,
17838
+ antialias: false
17839
+ });
17840
+ this.renderer.autoClear = false;
17841
+ this.renderer.setClearColor(0x000000, 0);
17842
+ this.renderer.setPixelRatio(window.devicePixelRatio);
17843
+ const ambientLight = new AmbientLight(0xffffff, 0.6);
17844
+ this.scene.add(ambientLight);
17845
+ const directionalLight = new DirectionalLight(0xffffff, 0.8);
17846
+ directionalLight.position.set(0, -70, 100);
17847
+ this.scene.add(directionalLight);
17848
+ const directionalLight2 = new DirectionalLight(0xffffff, 0.5);
17849
+ directionalLight2.position.set(0, 70, 100);
17850
+ this.scene.add(directionalLight2);
17851
+ this.setupCustomLayer();
17852
+ this.isInitialized = true;
17853
+ console.log('InstancedModelManager: Initialized', {
17854
+ canvas: `${canvas.width}x${canvas.height}`,
17855
+ customLayerId: this.customLayerId
17856
+ });
17857
+ }
17858
+ setupCustomLayer() {
17859
+ if (!this.map) return;
17860
+ const customLayer = {
17861
+ id: this.customLayerId,
17862
+ type: 'custom',
17863
+ renderingMode: '3d',
17864
+ onAdd: ()=>{
17865
+ console.log('InstancedModelManager: Custom layer added');
17866
+ },
17867
+ render: (_gl, matrix)=>{
17868
+ if (!this.camera || !this.renderer || !this.scene) return;
17869
+ this.renderCount++;
17870
+ if (this.renderCount % 60 === 0) console.log('InstancedModelManager: Rendering', {
17871
+ frame: this.renderCount,
17872
+ instanceCount: this.instancedMeshes.size
17873
+ });
17874
+ this.updateAutoRotate();
17875
+ this.camera.projectionMatrix = new Matrix4().fromArray(matrix);
17876
+ _gl.enable(_gl.DEPTH_TEST);
17877
+ this.renderer.resetState();
17878
+ this.renderer.render(this.scene, this.camera);
17879
+ if (this.map) this.map.triggerRepaint();
17880
+ }
17881
+ };
17882
+ this.map.addLayer(customLayer);
17883
+ }
17884
+ updateAutoRotate() {
17885
+ this.autoRotateEnabled.forEach((enabled, id)=>{
17886
+ if (!enabled) return;
17887
+ const instancedMesh = this.instancedMeshes.get(id);
17888
+ const angles = this.rotationAngles.get(id);
17889
+ const speed = this.rotationSpeeds.get(id) || 0.01;
17890
+ if (!instancedMesh || !angles) return;
17891
+ const dummy = new Object3D();
17892
+ const count = instancedMesh.count;
17893
+ for(let i = 0; i < count; i++){
17894
+ instancedMesh.getMatrixAt(i, dummy.matrix);
17895
+ dummy.matrix.decompose(dummy.position, dummy.quaternion, dummy.scale);
17896
+ angles[i] += speed;
17897
+ dummy.rotation.set(0, 0, angles[i]);
17898
+ dummy.updateMatrix();
17899
+ instancedMesh.setMatrixAt(i, dummy.matrix);
17900
+ }
17901
+ instancedMesh.instanceMatrix.needsUpdate = true;
17902
+ });
17903
+ }
17904
+ generateInstances(config) {
17905
+ const instances = [];
17906
+ for(let i = 0; i < config.count; i++){
17907
+ const lngOffset = (Math.random() - 0.5) * config.spread * 2;
17908
+ const latOffset = (Math.random() - 0.5) * config.spread * 2;
17909
+ const altitude = 100 * Math.random() + 50;
17910
+ const rotation = Math.random() * Math.PI * 2;
17911
+ const scaleVariation = 0.8 + 0.4 * Math.random();
17912
+ instances.push({
17913
+ lngLat: [
17914
+ config.center[0] + lngOffset,
17915
+ config.center[1] + latOffset
17916
+ ],
17917
+ altitude,
17918
+ rotation,
17919
+ scale: scaleVariation
17920
+ });
17921
+ }
17922
+ return instances;
17923
+ }
17924
+ async load(id, config) {
17925
+ this.initThree();
17926
+ if (!this.scene || !this.map) throw new Error('Three.js scene not initialized');
17927
+ this.remove(id);
17928
+ const dracoLoader = new DRACOLoader();
17929
+ dracoLoader.setDecoderPath('https://www.gstatic.com/draco/versioned/decoders/1.5.6/');
17930
+ const loader = new GLTFLoader();
17931
+ loader.setDRACOLoader(dracoLoader);
17932
+ try {
17933
+ console.log('InstancedModel: Loading model', config.url);
17934
+ const gltf = await new Promise((resolve, reject)=>{
17935
+ loader.load(config.url, resolve, void 0, reject);
17936
+ });
17937
+ const gltfScene = gltf.scene;
17938
+ let meshToUse = null;
17939
+ gltfScene.traverse((object)=>{
17940
+ if (object instanceof Mesh && !meshToUse) meshToUse = object;
17941
+ });
17942
+ if (!meshToUse) throw new Error('No mesh found in model');
17943
+ const mesh = meshToUse;
17944
+ const materialToUse = Array.isArray(mesh.material) ? mesh.material[0] : mesh.material;
17945
+ const instancedMesh = new InstancedMesh(mesh.geometry.clone(), materialToUse.clone(), config.count);
17946
+ instancedMesh.castShadow = true;
17947
+ instancedMesh.receiveShadow = true;
17948
+ if ('side' in instancedMesh.material) instancedMesh.material.side = DoubleSide;
17949
+ const instances = this.generateInstances(config);
17950
+ const angles = new Float32Array(config.count);
17951
+ const meterInMercator = mapbox_gl.MercatorCoordinate.fromLngLat(config.center, 0).meterInMercatorCoordinateUnits();
17952
+ console.log('InstancedModel: Creating instances', {
17953
+ instanceCount: config.count,
17954
+ center: config.center,
17955
+ scale: config.scale,
17956
+ meterInMercator,
17957
+ firstInstanceLngLat: instances[0].lngLat,
17958
+ firstInstanceAlt: instances[0].altitude
17959
+ });
17960
+ const dummy = new Object3D();
17961
+ instances.forEach((instance, i)=>{
17962
+ const mercator = mapbox_gl.MercatorCoordinate.fromLngLat(instance.lngLat, instance.altitude);
17963
+ dummy.position.set(mercator.x, mercator.y, mercator.z);
17964
+ dummy.rotation.set(0, 0, instance.rotation);
17965
+ const scale = meterInMercator * config.scale * instance.scale;
17966
+ dummy.scale.set(scale, -scale, scale);
17967
+ dummy.updateMatrix();
17968
+ instancedMesh.setMatrixAt(i, dummy.matrix);
17969
+ angles[i] = instance.rotation;
17970
+ });
17971
+ instancedMesh.instanceMatrix.needsUpdate = true;
17972
+ this.scene.add(instancedMesh);
17973
+ this.instancedMeshes.set(id, instancedMesh);
17974
+ this.rotationAngles.set(id, angles);
17975
+ this.autoRotateEnabled.set(id, config.autoRotate || false);
17976
+ this.rotationSpeeds.set(id, config.rotationSpeed || 0.01);
17977
+ console.log(`InstancedModel "${id}" loaded with ${config.count} instances`);
17978
+ } catch (error) {
17979
+ console.error(`Failed to load instanced model "${id}":`, error);
17980
+ throw error;
17981
+ }
17982
+ }
17983
+ enableAutoRotate(id, speed = 0.01) {
17984
+ this.autoRotateEnabled.set(id, true);
17985
+ this.rotationSpeeds.set(id, speed);
17986
+ }
17987
+ disableAutoRotate(id) {
17988
+ this.autoRotateEnabled.set(id, false);
17989
+ }
17990
+ updateInstance(id, index, lngLat, altitude) {
17991
+ const instancedMesh = this.instancedMeshes.get(id);
17992
+ if (!instancedMesh) return;
17993
+ const mercator = mapbox_gl.MercatorCoordinate.fromLngLat(lngLat, altitude);
17994
+ const dummy = new Object3D();
17995
+ instancedMesh.getMatrixAt(index, dummy.matrix);
17996
+ dummy.matrix.decompose(dummy.position, dummy.quaternion, dummy.scale);
17997
+ dummy.position.set(mercator.x, mercator.y, mercator.z);
17998
+ dummy.updateMatrix();
17999
+ instancedMesh.setMatrixAt(index, dummy.matrix);
18000
+ instancedMesh.instanceMatrix.needsUpdate = true;
18001
+ }
18002
+ setInstanceVisible(id, visible) {
18003
+ const instancedMesh = this.instancedMeshes.get(id);
18004
+ if (instancedMesh) instancedMesh.visible = visible;
18005
+ }
18006
+ setVisible(visible) {
18007
+ this.IsVisible = visible;
18008
+ this.instancedMeshes.forEach((mesh)=>{
18009
+ mesh.visible = visible;
18010
+ });
18011
+ }
18012
+ getInstanceCount(id) {
18013
+ const instancedMesh = this.instancedMeshes.get(id);
18014
+ return instancedMesh?.count || 0;
18015
+ }
18016
+ getIds() {
18017
+ return Array.from(this.instancedMeshes.keys());
18018
+ }
18019
+ remove(id) {
18020
+ const instancedMesh = this.instancedMeshes.get(id);
18021
+ if (!instancedMesh) return;
18022
+ if (this.scene) this.scene.remove(instancedMesh);
18023
+ instancedMesh.geometry.dispose();
18024
+ if (Array.isArray(instancedMesh.material)) instancedMesh.material.forEach((m)=>{
18025
+ m.dispose();
18026
+ });
18027
+ else instancedMesh.material.dispose();
18028
+ this.instancedMeshes.delete(id);
18029
+ this.rotationAngles.delete(id);
18030
+ this.autoRotateEnabled.delete(id);
18031
+ this.rotationSpeeds.delete(id);
18032
+ }
18033
+ clear() {
18034
+ const ids = this.getIds();
18035
+ ids.forEach((id)=>{
18036
+ this.remove(id);
18037
+ });
18038
+ }
18039
+ setColor(id, color) {
18040
+ const instancedMesh = this.instancedMeshes.get(id);
18041
+ if (!instancedMesh) return;
18042
+ const meshColor = 'string' == typeof color ? new Color(color) : color;
18043
+ if (Array.isArray(instancedMesh.material)) instancedMesh.material.forEach((m)=>{
18044
+ if ('color' in m) m.color.set(meshColor);
18045
+ });
18046
+ else if ('color' in instancedMesh.material) instancedMesh.material.color.set(meshColor);
18047
+ }
18048
+ destroy() {
18049
+ this.clear();
18050
+ if (this.map && this.customLayerId) try {
18051
+ this.map.removeLayer(this.customLayerId);
18052
+ } catch {}
18053
+ if (this.renderer) {
18054
+ this.renderer.dispose();
18055
+ this.renderer = null;
18056
+ }
18057
+ this.scene = null;
18058
+ this.camera = null;
18059
+ this.isInitialized = false;
18060
+ }
18061
+ }
18062
+ const instancedModel = InstancedModelManager;
18063
+ const attachInstancedModel = (mapless, name)=>mapless?.use(InstancedModelManager, name);
18064
+ const getInstancedModel = (mapless, name)=>mapless?.get(InstancedModelManager, name);
18065
+ const detachInstancedModel = (mapless, name)=>mapless?.unuse(InstancedModelManager, name);
17603
18066
  class Line2Manager extends manager_Manager {
17604
18067
  mapThree = null;
17605
18068
  lines = new Map();
@@ -18290,6 +18753,7 @@ class ThreeManager extends manager_Manager {
18290
18753
  };
18291
18754
  boxHelper = null;
18292
18755
  isSelected = false;
18756
+ clickCleanup = null;
18293
18757
  constructor(mapless){
18294
18758
  super(mapless);
18295
18759
  this.map = mapless.map;
@@ -18315,18 +18779,18 @@ class ThreeManager extends manager_Manager {
18315
18779
  0,
18316
18780
  0,
18317
18781
  0
18318
- ], scale = 1) {
18782
+ ], scale = 1, color) {
18319
18783
  const mapThree = this.getMapThree();
18320
18784
  if (!mapThree) throw new Error('MapThree not initialized. Call useThree first.');
18321
18785
  const loader = new GLTFLoader();
18322
18786
  return new Promise((resolve, reject)=>{
18323
18787
  loader.load(url, (gltf)=>{
18324
18788
  this.model = gltf.scene;
18325
- this.model.traverse((child)=>{
18789
+ if (color) this.model.traverse((child)=>{
18326
18790
  if (child instanceof Mesh) {
18327
18791
  const material = child.material;
18328
18792
  if (material.emissive) {
18329
- material.emissive = new Color(0x00ffff);
18793
+ material.emissive = new Color(color);
18330
18794
  material.emissiveIntensity = 0.5;
18331
18795
  }
18332
18796
  }
@@ -18535,7 +18999,30 @@ class ThreeManager extends manager_Manager {
18535
18999
  if (!this.boxHelper || !this.model) return;
18536
19000
  this.boxHelper.update();
18537
19001
  }
19002
+ registerClick(onClick, tolerance = 30) {
19003
+ const mapThree = this.getMapThree();
19004
+ if (!mapThree || !this.modelId) {
19005
+ console.warn('ThreeManager: Cannot register click, MapThree or modelId not available');
19006
+ return null;
19007
+ }
19008
+ if (this.clickCleanup) {
19009
+ this.clickCleanup();
19010
+ this.clickCleanup = null;
19011
+ }
19012
+ const cleanup = mapThree.registerRenderableObjectClick(this.modelId, (_object, point)=>{
19013
+ if (onClick && this.model) onClick(this.model, point);
19014
+ }, tolerance);
19015
+ this.clickCleanup = cleanup;
19016
+ return cleanup;
19017
+ }
19018
+ unregisterClick() {
19019
+ if (this.clickCleanup) {
19020
+ this.clickCleanup();
19021
+ this.clickCleanup = null;
19022
+ }
19023
+ }
18538
19024
  dispose() {
19025
+ this.unregisterClick();
18539
19026
  this.deselect();
18540
19027
  const mapThree = this.getMapThree();
18541
19028
  if (mapThree && this.modelId) mapThree.removeRenderableObject(this.modelId);
@@ -20482,4 +20969,4 @@ function detachPathTracker(mapless) {
20482
20969
  pathTrackerManagers.delete(mapless);
20483
20970
  }
20484
20971
  }
20485
- export { AirspaceManager, basicObject as BasicThreeObjectManager, ClickStrategy, CoordTransformer, curve3d as Curve3DManager, Draw, elevatedLine as ElevatedLineManager, EmitManager, FixedRectangleLayer as FixedRectangleLayerManager, FreeStrategy, Lang, line2Manager as Line2Manager, LngLat, manager_Manager as Manager, mapModel as MapModelManager, MapMouseEvent, Mapless_Base as Mapless, Marker, MercatorCoordinate, mana_three_model as ModelManager, MultiCoordTransformer, OldStationManager, paint_PaintBoard as PaintBoard, PathCollectionStrategy, path_PathTracker as PathTracker, Popup, PositionMarker, PositionMouse, QuickTrans, RectangleLayer as RectangleLayerManager, icons_Singleton as Singleton, three as ThreeManager, adjustMapConfigByCoord, attachAirspace, attachBasicObject, attachBoundary, attachCluster, attachCurve, attachCurve3D, attachElevatedLine, attachFixedRectangleLayer, attachHeatmap, attachImageData, attachLine, attachLine2, attachMapModel, attachMarker, attachModel, attachMovable, attachNewStation, attachNode, attachOldStation, attachPathTracker, attachPolygon, attachRectangleLayer, attachRoutes, attachShape, attachStep, attachText, attachThree, attachTrack, buildTileUrl, calculateObjectsInPolygon, createCoordTransformer, darkFog, darkSource, defaultSource, detachAirspace, detachBasicObject, detachBoundary, detachCluster, detachCurve, detachCurve3D, detachElevatedLine, detachFixedRectangleLayer, detachHeatmap, detachImageData, detachLine, detachLine2, detachMapModel, detachMarker, detachModel, detachMovable, detachNewStation, detachNode, detachOldStation, detachPathTracker, detachPolygon, detachRectangleLayer, detachRoutes, detachShape, detachStep, detachText, detachThree, detachTrack, ellipse, genPrefixId, getAirspace, getAllSourceCoordSystems, getBasicObject, getBoundary, getCluster, getCoordDisplayName, getCurve, getCurve3D, getElevatedLine, getFixedRectangleLayer, getHeatmap, getImageData, getLine, getLine2, getMapModel, getMarker, getModel, getMovable, getNewStation, getNode, getOldStation, getPaintCenter, getPaintCenterNRadius, getPaintPolygon, getPathTracker, getPolygon, getRectangleLayer, getRoutes, getShape, getSourceCoordSystem, getSourcesByCoordSystem, getStep, getText, getThree, getTrack, isValidCoordinate, lightFog, lightSource, lite, mapbox_gl as mapboxgl, maplessPreset, point2Feature, propwmsTransformRequest, sourcesMap, newstation_stateColorRule as stateColorRule, test2Point, throttle, transformCoordinate, transformCoordinateBetweenSources, transformCoordinates, transformMapCenter, tryFunc, tryTrans };
20972
+ export { AirspaceManager, basicObject as BasicThreeObjectManager, ClickStrategy, CoordTransformer, curve3d as Curve3DManager, Draw, elevatedLine as ElevatedLineManager, EmitManager, FixedRectangleLayer as FixedRectangleLayerManager, FreeStrategy, instancedModel as InstancedModelManager, Lang, line2Manager as Line2Manager, LngLat, manager_Manager as Manager, mapModel as MapModelManager, MapMouseEvent, Mapless_Base as Mapless, Marker, MercatorCoordinate, mana_three_model as ModelManager, MultiCoordTransformer, OldStationManager, paint_PaintBoard as PaintBoard, PathCollectionStrategy, path_PathTracker as PathTracker, Popup, PositionMarker, PositionMouse, QuickTrans, RectangleLayer as RectangleLayerManager, icons_Singleton as Singleton, three as ThreeManager, adjustMapConfigByCoord, attachAirspace, attachBasicObject, attachBoundary, attachCluster, attachCurve, attachCurve3D, attachElevatedLine, attachFixedRectangleLayer, attachHeatmap, attachImageData, attachInstancedModel, attachLine, attachLine2, attachMapModel, attachMarker, attachModel, attachMovable, attachNewStation, attachNode, attachOldStation, attachPathTracker, attachPolygon, attachRectangleLayer, attachRoutes, attachShape, attachStep, attachText, attachThree, attachTrack, buildTileUrl, calculateObjectsInPolygon, createCoordTransformer, darkFog, darkSource, defaultSource, detachAirspace, detachBasicObject, detachBoundary, detachCluster, detachCurve, detachCurve3D, detachElevatedLine, detachFixedRectangleLayer, detachHeatmap, detachImageData, detachInstancedModel, detachLine, detachLine2, detachMapModel, detachMarker, detachModel, detachMovable, detachNewStation, detachNode, detachOldStation, detachPathTracker, detachPolygon, detachRectangleLayer, detachRoutes, detachShape, detachStep, detachText, detachThree, detachTrack, ellipse, genPrefixId, getAirspace, getAllSourceCoordSystems, getBasicObject, getBoundary, getCluster, getCoordDisplayName, getCurve, getCurve3D, getElevatedLine, getFixedRectangleLayer, getHeatmap, getImageData, getInstancedModel, getLine, getLine2, getMapModel, getMarker, getModel, getMovable, getNewStation, getNode, getOldStation, getPaintCenter, getPaintCenterNRadius, getPaintPolygon, getPathTracker, getPolygon, getRectangleLayer, getRoutes, getShape, getSourceCoordSystem, getSourcesByCoordSystem, getStep, getText, getThree, getTrack, isValidCoordinate, lightFog, lightSource, lite, mapbox_gl as mapboxgl, maplessPreset, point2Feature, propwmsTransformRequest, sourcesMap, newstation_stateColorRule as stateColorRule, test2Point, throttle, transformCoordinate, transformCoordinateBetweenSources, transformCoordinates, transformMapCenter, tryFunc, tryTrans };
@@ -1,7 +1,7 @@
1
1
  import type { Mapless } from '..';
2
2
  import type { IdHubType } from '../core/IdHub';
3
3
  import { EmitManager } from '../core/manager';
4
- import type { ManagerOptions, Movable, MovableManagerEvents } from '../types';
4
+ import type { Movable, MovableManagerEvents, MovableManagerOptions } from '../types';
5
5
  type MovableIdHubType = IdHubType & {
6
6
  detailLayerId: string;
7
7
  simpleLayerId: string;
@@ -9,7 +9,11 @@ type MovableIdHubType = IdHubType & {
9
9
  };
10
10
  declare class MovableManager extends EmitManager<MovableManagerEvents, MovableIdHubType> {
11
11
  private movables;
12
- constructor(mapless: Mapless, options?: ManagerOptions);
12
+ private iconRotationAlignment;
13
+ private showNameByDefault;
14
+ private iconBaseSize;
15
+ private circleBaseRadius;
16
+ constructor(mapless: Mapless, options?: MovableManagerOptions);
13
17
  handleCoordSystemChange(_system: string | undefined): void;
14
18
  createIdHub(_idHub?: IdHubType): void;
15
19
  initLayers(): void;
@@ -57,10 +61,22 @@ declare class MovableManager extends EmitManager<MovableManagerEvents, MovableId
57
61
  private setupClickHandler;
58
62
  private setupHoverHandler;
59
63
  fitBounds(ids?: string[], padding?: number): void;
64
+ /**
65
+ * 设置图标旋转对齐方式
66
+ * @param alignment 对齐方式: "map" | "viewport" | "auto"
67
+ * - map: 图标随地图旋转而旋转(默认,适用于车辆等)
68
+ * - viewport: 图标始终朝向屏幕上方
69
+ * - auto: 自动选择(当 icon-rotate 为 0 时使用 viewport,否则使用 map)
70
+ */
71
+ setIconRotationAlignment(alignment: 'map' | 'viewport' | 'auto'): void;
72
+ /**
73
+ * 获取当前图标旋转对齐方式
74
+ */
75
+ getIconRotationAlignment(): 'map' | 'viewport' | 'auto';
60
76
  destroy(): void;
61
77
  }
62
78
  export default MovableManager;
63
- export declare const attachMovable: (mapless: Mapless | undefined | null, name?: string) => MovableManager | undefined;
79
+ export declare const attachMovable: (mapless: Mapless | undefined | null, name?: string, options?: MovableManagerOptions) => MovableManager | undefined;
64
80
  export declare const getMovable: (mapless: Mapless | undefined | null, name?: string) => MovableManager | undefined;
65
81
  export declare const detachMovable: (mapless: Mapless | undefined | null, name?: string) => boolean | undefined;
66
82
  //# sourceMappingURL=movable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"movable.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana/movable.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE9E,KAAK,gBAAgB,GAAG,SAAS,GAAG;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAgBF,cAAM,cAAe,SAAQ,WAAW,CACtC,oBAAoB,EACpB,gBAAgB,CACjB;IACC,OAAO,CAAC,QAAQ,CAAoC;gBAExC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc;IAS7C,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAM1D,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS;IAa9B,UAAU;IAwEnB,UAAU,GAAI,SAAS,OAAO,EAAE,sBAAoB;;;;;;;;;;;;;;;;MAuBlD;IAEF,WAAW,GAAI,UAAU,OAAO,EAAE,EAAE,sBAAoB;;;;;;;;;;;;;;;;QAEtD;IAEF,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,YAAY,UAAO;IASrD,cAAc,CAAC,QAAQ,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE;IAqBvD,aAAa,EAAE,OAAO,GAAG,IAAI,CAAQ;IAErC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;IAuBzC,WAAW;IAWX,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE;IAS5B,aAAa;IAKb,OAAO,CAAC,iBAAiB;IAsCzB,OAAO,CAAC,iBAAiB;IAsBhB,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAgB1D,OAAO,IAAI,IAAI;CAIhB;AAED,eAAe,cAAc,CAAC;AAE9B,eAAO,MAAM,aAAa,GACxB,SAAS,OAAO,GAAG,SAAS,GAAG,IAAI,EACnC,OAAO,MAAM,+BACwB,CAAC;AACxC,eAAO,MAAM,UAAU,GACrB,SAAS,OAAO,GAAG,SAAS,GAAG,IAAI,EACnC,OAAO,MAAM,+BACwB,CAAC;AACxC,eAAO,MAAM,aAAa,GACxB,SAAS,OAAO,GAAG,SAAS,GAAG,IAAI,EACnC,OAAO,MAAM,wBAC0B,CAAC"}
1
+ {"version":3,"file":"movable.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana/movable.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,KAAK,EACV,OAAO,EACP,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAElB,KAAK,gBAAgB,GAAG,SAAS,GAAG;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAgBF,cAAM,cAAe,SAAQ,WAAW,CACtC,oBAAoB,EACpB,gBAAgB,CACjB;IACC,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,qBAAqB,CAAsC;IACnE,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,gBAAgB,CAAS;gBAErB,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,qBAAqB;IAYpD,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAM1D,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS;IAa9B,UAAU;IA0EnB,UAAU,GAAI,SAAS,OAAO,EAAE,sBAAoB;;;;;;;;;;;;;;;;MAuBlD;IAEF,WAAW,GAAI,UAAU,OAAO,EAAE,EAAE,sBAAoB;;;;;;;;;;;;;;;;QAEtD;IAEF,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,YAAY,UAAO;IASrD,cAAc,CAAC,QAAQ,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE;IAqBvD,aAAa,EAAE,OAAO,GAAG,IAAI,CAAQ;IAErC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;IAuBzC,WAAW;IAWX,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE;IAS5B,aAAa;IAKb,OAAO,CAAC,iBAAiB;IAsCzB,OAAO,CAAC,iBAAiB;IAsBhB,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAgB1D;;;;;;OAMG;IACH,wBAAwB,CAAC,SAAS,EAAE,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI;IAWtE;;OAEG;IACH,wBAAwB,IAAI,KAAK,GAAG,UAAU,GAAG,MAAM;IAIvD,OAAO,IAAI,IAAI;CAIhB;AAED,eAAe,cAAc,CAAC;AAE9B,eAAO,MAAM,aAAa,GACxB,SAAS,OAAO,GAAG,SAAS,GAAG,IAAI,EACnC,OAAO,MAAM,EACb,UAAU,qBAAqB,+BACe,CAAC;AACjD,eAAO,MAAM,UAAU,GACrB,SAAS,OAAO,GAAG,SAAS,GAAG,IAAI,EACnC,OAAO,MAAM,+BACwB,CAAC;AACxC,eAAO,MAAM,aAAa,GACxB,SAAS,OAAO,GAAG,SAAS,GAAG,IAAI,EACnC,OAAO,MAAM,wBAC0B,CAAC"}
@@ -66,6 +66,19 @@ export default class AirspaceManager extends Manager<AirspaceIdHubType> {
66
66
  getZone(id: string): AirspaceType | undefined;
67
67
  getAllZones(): AirspaceType[];
68
68
  fitBounds(ids?: string[], padding?: number): void;
69
+ /**
70
+ * 显示/隐藏 3D 拉伸图层(fill-extrusion)
71
+ * 用于兼容 2D 情况下的空域区域显示
72
+ */
73
+ setFillExtrusionVisible(visible: boolean): void;
74
+ /**
75
+ * 获取 3D 拉伸图层的可见状态
76
+ */
77
+ isFillExtrusionVisible(): boolean;
78
+ /**
79
+ * 切换 3D 拉伸图层的可见状态
80
+ */
81
+ toggleFillExtrusion(): boolean;
69
82
  destroy(): void;
70
83
  }
71
84
  export declare const attachAirspace: (mapless: Maploss, name?: string) => AirspaceManager | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"airspace.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana-3d/airspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"airspace.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana-3d/airspace.ts"],"names":[],"mappings":"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"}
@@ -197,6 +197,28 @@ declare class MapModelManager extends EmitManager<MapModelManagerEvents> {
197
197
  * @param color 选中颜色,不传则使用默认选中颜色
198
198
  */
199
199
  selectModel(id: string | null, color?: [number, number, number]): void;
200
+ /**
201
+ * 隐藏模型图层
202
+ * @param id 模型ID,不传则隐藏所有模型
203
+ */
204
+ hideLayer(id?: string): void;
205
+ /**
206
+ * 显示模型图层
207
+ * @param id 模型ID,不传则显示所有模型
208
+ */
209
+ showLayer(id?: string): void;
210
+ /**
211
+ * 切换模型图层可见性
212
+ * @param id 模型ID,不传则切换所有模型
213
+ * @returns 切换后的可见状态(单个模型时返回该模型状态,多个时返回 true)
214
+ */
215
+ toggleLayer(id?: string): boolean;
216
+ /**
217
+ * 检查模型图层是否可见
218
+ * @param id 模型ID
219
+ * @returns 是否可见
220
+ */
221
+ isLayerVisible(id: string): boolean;
200
222
  destroy(): void;
201
223
  }
202
224
  export default MapModelManager;
@@ -1 +1 @@
1
- {"version":3,"file":"mapModel.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana-3d/mapModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapModel.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana-3d/mapModel.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- export { attachBasicObject, default as BasicThreeObjectManager, detachBasicObject, getBasicObject, type BasicGeometryType } from './basicObject';
1
+ export { attachBasicObject, type BasicGeometryType, default as BasicThreeObjectManager, detachBasicObject, getBasicObject } from './basicObject';
2
2
  export { attachCurve3D, default as Curve3DManager, detachCurve3D, getCurve3D } from './curve3d';
3
+ export { attachInstancedModel, default as InstancedModelManager, detachInstancedModel, getInstancedModel, type InstancedModelConfig } from './instancedModel';
3
4
  export { attachLine2, default as Line2Manager, detachLine2, getLine2, type Line2Config } from './line2Manager';
4
5
  export { attachModel, default as ModelManager, detachModel, getModel } from './model';
5
6
  export { attachThree, default as ThreeManager, detachThree, getThree } from './three';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana-three/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,OAAO,IAAI,uBAAuB,EAClC,iBAAiB,EACjB,cAAc,EACd,KAAK,iBAAiB,EACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,OAAO,IAAI,cAAc,EACzB,aAAa,EACb,UAAU,EACX,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,WAAW,EACX,OAAO,IAAI,YAAY,EACvB,WAAW,EACX,QAAQ,EACR,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,WAAW,EACX,OAAO,IAAI,YAAY,EACvB,WAAW,EACX,QAAQ,EACT,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,WAAW,EACX,OAAO,IAAI,YAAY,EACvB,WAAW,EACX,QAAQ,EACT,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana-three/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,OAAO,IAAI,uBAAuB,EAClC,iBAAiB,EACjB,cAAc,EACf,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,OAAO,IAAI,cAAc,EACzB,aAAa,EACb,UAAU,EACX,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,oBAAoB,EACpB,OAAO,IAAI,qBAAqB,EAChC,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,oBAAoB,EAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,WAAW,EACX,OAAO,IAAI,YAAY,EACvB,WAAW,EACX,QAAQ,EACR,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,WAAW,EACX,OAAO,IAAI,YAAY,EACvB,WAAW,EACX,QAAQ,EACT,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,WAAW,EACX,OAAO,IAAI,YAAY,EACvB,WAAW,EACX,QAAQ,EACT,MAAM,SAAS,CAAC"}
@@ -0,0 +1,127 @@
1
+ import type { Mapless } from '..';
2
+ import { Manager } from '../core/manager';
3
+ /**
4
+ * 实例化模型配置
5
+ */
6
+ export interface InstancedModelConfig {
7
+ /** 模型文件URL (GLB/GLTF) */
8
+ url: string;
9
+ /** 实例数量 */
10
+ count: number;
11
+ /** 中心点坐标 [lng, lat] */
12
+ center: [number, number];
13
+ /** 基础缩放比例 */
14
+ scale: number;
15
+ /** 分散范围 (经纬度偏移量) */
16
+ spread: number;
17
+ /** 是否自动旋转 */
18
+ autoRotate?: boolean;
19
+ /** 旋转速度 */
20
+ rotationSpeed?: number;
21
+ }
22
+ /**
23
+ * InstancedModelManager - 实例化渲染管理器
24
+ *
25
+ * 解决问题:
26
+ * 使用 Mapbox GL JS 标准的 model 图层加载几百个 3D 模型时会出现严重卡顿。
27
+ * 这是典型的 Draw Call 爆炸问题 - 每个模型 = 1 次 Draw Call。
28
+ *
29
+ * 解决方案:
30
+ * 使用 Three.js InstancedMesh 将几百次绘制合并为 1 次 Draw Call。
31
+ *
32
+ * 性能对比:
33
+ * - 标准 model 图层:100个模型 = 100次 Draw Call
34
+ * - InstancedMesh:100个模型 = 1次 Draw Call (100x 性能提升)
35
+ *
36
+ * 适用场景:
37
+ * - 大量相同模型的实例(建筑群、风力发电机、树木等)
38
+ * - 城市级别的大规模 3D 场景
39
+ * - 需要高性能渲染的场景
40
+ */
41
+ declare class InstancedModelManager extends Manager {
42
+ private scene;
43
+ private camera;
44
+ private renderer;
45
+ private customLayerId;
46
+ private isInitialized;
47
+ private instancedMeshes;
48
+ private rotationAngles;
49
+ private autoRotateEnabled;
50
+ private rotationSpeeds;
51
+ private renderCount;
52
+ constructor(mapless: Mapless);
53
+ /**
54
+ * 初始化 Three.js 场景和 Mapbox custom layer
55
+ */
56
+ private initThree;
57
+ /**
58
+ * 设置 Mapbox 自定义图层
59
+ */
60
+ private setupCustomLayer;
61
+ /**
62
+ * 更新自动旋转
63
+ */
64
+ private updateAutoRotate;
65
+ /**
66
+ * 生成随机实例位置
67
+ */
68
+ private generateInstances;
69
+ /**
70
+ * 加载模型并创建实例化网格
71
+ * @param id 实例组ID
72
+ * @param config 配置选项
73
+ */
74
+ load(id: string, config: InstancedModelConfig): Promise<void>;
75
+ /**
76
+ * 启用自动旋转
77
+ */
78
+ enableAutoRotate(id: string, speed?: number): void;
79
+ /**
80
+ * 禁用自动旋转
81
+ */
82
+ disableAutoRotate(id: string): void;
83
+ /**
84
+ * 更新单个实例的变换
85
+ * @param id 实例组ID
86
+ * @param index 实例索引
87
+ * @param lngLat 新位置
88
+ * @param altitude 新高度
89
+ */
90
+ updateInstance(id: string, index: number, lngLat: [number, number], altitude: number): void;
91
+ /**
92
+ * 更新单个实例组的可见性
93
+ */
94
+ setInstanceVisible(id: string, visible: boolean): void;
95
+ /**
96
+ * 重写基类的 setVisible,控制所有实例的可见性
97
+ */
98
+ setVisible(visible: boolean): void;
99
+ /**
100
+ * 获取实例数量
101
+ */
102
+ getInstanceCount(id: string): number;
103
+ /**
104
+ * 获取所有实例组ID
105
+ */
106
+ getIds(): string[];
107
+ /**
108
+ * 移除实例组
109
+ */
110
+ remove(id: string): void;
111
+ /**
112
+ * 清除所有实例组
113
+ */
114
+ clear(): void;
115
+ /**
116
+ * 设置实例颜色
117
+ * @param id 实例组ID
118
+ * @param color 颜色值
119
+ */
120
+ setColor(id: string, color: number | string): void;
121
+ destroy(): void;
122
+ }
123
+ export default InstancedModelManager;
124
+ export declare const attachInstancedModel: (mapless: Mapless | undefined, name?: string) => InstancedModelManager | undefined;
125
+ export declare const getInstancedModel: (mapless: Mapless | undefined, name?: string) => InstancedModelManager | undefined;
126
+ export declare const detachInstancedModel: (mapless: Mapless | undefined, name?: string) => boolean | undefined;
127
+ //# sourceMappingURL=instancedModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instancedModel.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana-three/instancedModel.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,yBAAyB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,aAAa;IACb,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW;IACX,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAYD;;;;;;;;;;;;;;;;;;GAkBG;AACH,cAAM,qBAAsB,SAAQ,OAAO;IACzC,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,cAAc,CAAwC;IAC9D,OAAO,CAAC,iBAAiB,CAAmC;IAC5D,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,WAAW,CAAK;gBAEZ,OAAO,EAAE,OAAO;IAM5B;;OAEG;IACH,OAAO,CAAC,SAAS;IAkDjB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+CxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4BxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwBzB;;;;OAIG;IACU,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8H1E;;OAEG;IACI,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,GAAE,MAAa,GAAG,IAAI;IAK/D;;OAEG;IACI,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI1C;;;;;;OAMG;IACI,cAAc,CACnB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACxB,QAAQ,EAAE,MAAM,GACf,IAAI;IAiBP;;OAEG;IACI,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAO7D;;OAEG;IACM,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAO3C;;OAEG;IACI,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAK3C;;OAEG;IACI,MAAM,IAAI,MAAM,EAAE;IAIzB;;OAEG;IACI,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAuB/B;;OAEG;IACI,KAAK,IAAI,IAAI;IAKpB;;;;OAIG;IACI,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAezD,OAAO,IAAI,IAAI;CAsBhB;AAED,eAAe,qBAAqB,CAAC;AAErC,eAAO,MAAM,oBAAoB,GAAI,SAAS,OAAO,GAAG,SAAS,EAAE,OAAO,MAAM,sCACrC,CAAC;AAE5C,eAAO,MAAM,iBAAiB,GAAI,SAAS,OAAO,GAAG,SAAS,EAAE,OAAO,MAAM,sCAClC,CAAC;AAE5C,eAAO,MAAM,oBAAoB,GAAI,SAAS,OAAO,GAAG,SAAS,EAAE,OAAO,MAAM,wBACnC,CAAC"}
@@ -16,6 +16,7 @@ declare class ThreeManager extends Manager {
16
16
  private currentOrientation;
17
17
  private boxHelper;
18
18
  private isSelected;
19
+ private clickCleanup;
19
20
  constructor(mapless: Mapless);
20
21
  private init;
21
22
  private updateAnimation;
@@ -24,7 +25,7 @@ declare class ThreeManager extends Manager {
24
25
  * 加载3D模型并添加到场景中
25
26
  * @returns 返回模型和动画列表
26
27
  */
27
- loadModel(url: string, lngLat: [number, number], altitude?: number, rotation?: [number, number, number], scale?: number): Promise<{
28
+ loadModel(url: string, lngLat: [number, number], altitude?: number, rotation?: [number, number, number], scale?: number, color?: undefined | string): Promise<{
28
29
  model: THREE.Group;
29
30
  animations: string[];
30
31
  }>;
@@ -131,6 +132,17 @@ declare class ThreeManager extends Manager {
131
132
  * 更新 BoxHelper 的变换(跟随模型)
132
133
  */
133
134
  private _updateBoxHelper;
135
+ /**
136
+ * 注册点击事件,点击模型时切换选中状态
137
+ * @param onClick 可选的自定义点击回调
138
+ * @param tolerance 点击容差(像素),默认 30
139
+ * @returns 清理函数
140
+ */
141
+ registerClick(onClick?: (model: THREE.Group, point: THREE.Vector3) => void, tolerance?: number): (() => void) | null;
142
+ /**
143
+ * 移除点击事件
144
+ */
145
+ unregisterClick(): void;
134
146
  /**
135
147
  * 释放资源
136
148
  */
@@ -1 +1 @@
1
- {"version":3,"file":"three.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana-three/three.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"three.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana-three/three.ts"],"names":[],"mappings":"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"}
@@ -159,6 +159,26 @@ export type Movable = {
159
159
  export type MovableManagerEvents = {
160
160
  movablesSelected: [Movable[]];
161
161
  };
162
+ export type MovableManagerOptions = ManagerOptions & {
163
+ /**
164
+ * 是否默认显示名称
165
+ * - true: 始终显示名称
166
+ * - false: 仅选中时显示名称(默认)
167
+ */
168
+ showNameByDefault?: boolean;
169
+ /**
170
+ * 图标基础大小
171
+ * - 默认 0.3
172
+ * - 选中时为 iconBaseSize + 0.1
173
+ */
174
+ iconBaseSize?: number;
175
+ /**
176
+ * 圆点基础半径
177
+ * - 默认 8
178
+ * - 选中时为 circleBaseRadius + 2
179
+ */
180
+ circleBaseRadius?: number;
181
+ };
162
182
  export type Route = {
163
183
  id: string;
164
184
  route: [number, number][];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/Mapless/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/Mapless/types.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ export declare class MapThree {
27
27
  private renderableObjects;
28
28
  private isInitialized;
29
29
  private customLayerId;
30
+ private lastProjectionMatrix;
30
31
  constructor(props: MapThreeProps);
31
32
  init(canvas: HTMLCanvasElement, glContext: WebGLRenderingContext, width: number, height: number): void;
32
33
  private setupCustomLayer;
@@ -112,6 +113,44 @@ export declare class MapThree {
112
113
  * 清除所有可渲染对象
113
114
  */
114
115
  clearRenderableObjects(): void;
116
+ /**
117
+ * 射线检测 - 检测给定屏幕坐标下的 Three.js 对象
118
+ * @param point 屏幕坐标点(相对于 map 容器)
119
+ * @param objects 可选的对象列表,如果不提供则检测所有 renderableObjects
120
+ * @param tolerance 点击容差(像素),用于包围盒检测的弹性范围
121
+ * @returns 命中的对象信息
122
+ */
123
+ raycast(point: {
124
+ x: number;
125
+ y: number;
126
+ }, objects?: THREE.Object3D[], tolerance?: number): {
127
+ object: THREE.Object3D;
128
+ distance: number;
129
+ point: THREE.Vector3;
130
+ } | null;
131
+ /**
132
+ * 为可渲染对象注册点击事件
133
+ * @param id 可渲染对象的 ID
134
+ * @param onClick 点击回调函数
135
+ * @param tolerance 点击容差(像素),默认 30
136
+ * @returns 清理函数,调用可移除事件监听
137
+ */
138
+ registerRenderableObjectClick(id: string, onClick: (object: THREE.Object3D, point: THREE.Vector3) => void, tolerance?: number): (() => void) | null;
139
+ /**
140
+ * 注册全局点击事件,检测任何 Three.js 对象
141
+ * @param onClick 点击回调函数
142
+ * @returns 清理函数
143
+ */
144
+ registerGlobalClick(onClick: (hit: {
145
+ object: THREE.Object3D;
146
+ distance: number;
147
+ point: THREE.Vector3;
148
+ renderableId?: string;
149
+ }) => void): (() => void) | null;
150
+ /**
151
+ * 检查对象是否在给定层级结构中
152
+ */
153
+ private isObjectInHierarchy;
115
154
  dispose(): void;
116
155
  }
117
156
  //# sourceMappingURL=MapThree.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapThree.d.ts","sourceRoot":"","sources":["../../../src/Three/MapThree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MapThree.d.ts","sourceRoot":"","sources":["../../../src/Three/MapThree.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mapless/core",
3
- "version": "1.0.7",
3
+ "version": "1.0.11",
4
4
  "type": "module",
5
5
  "description": "Mapbox wrapper library without React dependencies",
6
6
  "main": "dist/index.js",