@mapless/core 1.0.29 → 1.0.30
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 +274 -7
- package/dist/types/Mapless/index.d.ts +1 -0
- package/dist/types/Mapless/index.d.ts.map +1 -1
- package/dist/types/Mapless/mana/custom.d.ts +187 -0
- package/dist/types/Mapless/mana/custom.d.ts.map +1 -0
- package/dist/types/Mapless/mana/newstation.d.ts +10 -1
- package/dist/types/Mapless/mana/newstation.d.ts.map +1 -1
- package/dist/types/Mapless/types.d.ts +19 -0
- package/dist/types/Mapless/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -14442,6 +14442,214 @@ class CurveManager extends manager_Manager {
|
|
|
14442
14442
|
const attachCurve = (mapless, name)=>mapless?.use(CurveManager, name);
|
|
14443
14443
|
const getCurve = (mapless, name)=>mapless?.get(CurveManager, name);
|
|
14444
14444
|
const detachCurve = (mapless, name)=>mapless?.unuse(CurveManager, name);
|
|
14445
|
+
class CustomManager extends manager_Manager {
|
|
14446
|
+
sourceConfigs = [];
|
|
14447
|
+
layerConfigs = [];
|
|
14448
|
+
sourceKey2Id = new Map();
|
|
14449
|
+
layerKey2Id = new Map();
|
|
14450
|
+
transformCoordinates = true;
|
|
14451
|
+
dataCache = new Map();
|
|
14452
|
+
constructor(mapless, options){
|
|
14453
|
+
super(mapless, options, 'custom');
|
|
14454
|
+
const opts = options;
|
|
14455
|
+
this.sourceConfigs = opts?.sources || [];
|
|
14456
|
+
this.layerConfigs = opts?.layers || [];
|
|
14457
|
+
this.transformCoordinates = getOption('transformCoordinates', opts, true);
|
|
14458
|
+
this.onInitialized();
|
|
14459
|
+
}
|
|
14460
|
+
createIdHub(_idHub) {
|
|
14461
|
+
const newHub = new core_IdHub({
|
|
14462
|
+
layers: Object.fromEntries(this.layerConfigs.map((l)=>[
|
|
14463
|
+
`${l.key}LayerId`,
|
|
14464
|
+
`dzmap-custom-${l.id}-layer`
|
|
14465
|
+
])),
|
|
14466
|
+
sources: Object.fromEntries(this.sourceConfigs.map((s)=>[
|
|
14467
|
+
`${s.key}SourceId`,
|
|
14468
|
+
`dzmap-custom-${s.id}-source`
|
|
14469
|
+
]))
|
|
14470
|
+
});
|
|
14471
|
+
super.createIdHub(newHub);
|
|
14472
|
+
this.sourceConfigs.forEach((s)=>{
|
|
14473
|
+
const realId = newHub[`${s.key}SourceId`];
|
|
14474
|
+
if (realId) this.sourceKey2Id.set(s.key, realId);
|
|
14475
|
+
});
|
|
14476
|
+
this.layerConfigs.forEach((l)=>{
|
|
14477
|
+
const realId = newHub[`${l.key}LayerId`];
|
|
14478
|
+
if (realId) this.layerKey2Id.set(l.key, realId);
|
|
14479
|
+
});
|
|
14480
|
+
}
|
|
14481
|
+
initLayers() {
|
|
14482
|
+
if (!this.mapless) return;
|
|
14483
|
+
this.sourceConfigs.forEach((s)=>{
|
|
14484
|
+
const sid = this.sourceKey2Id.get(s.key);
|
|
14485
|
+
this.mapless?.addEmptySource(sid, s.options);
|
|
14486
|
+
});
|
|
14487
|
+
this.layerConfigs.forEach((l)=>{
|
|
14488
|
+
const lid = this.layerKey2Id.get(l.key);
|
|
14489
|
+
const sid = this.sourceKey2Id.get(l.sourceKey);
|
|
14490
|
+
if (!lid || !sid) return;
|
|
14491
|
+
this.mapless?.addLayer({
|
|
14492
|
+
id: lid,
|
|
14493
|
+
type: l.type,
|
|
14494
|
+
source: sid,
|
|
14495
|
+
...void 0 !== l.minzoom ? {
|
|
14496
|
+
minzoom: l.minzoom
|
|
14497
|
+
} : {},
|
|
14498
|
+
...void 0 !== l.maxzoom ? {
|
|
14499
|
+
maxzoom: l.maxzoom
|
|
14500
|
+
} : {},
|
|
14501
|
+
...l.filter ? {
|
|
14502
|
+
filter: l.filter
|
|
14503
|
+
} : {},
|
|
14504
|
+
...l.layout ? {
|
|
14505
|
+
layout: l.layout
|
|
14506
|
+
} : {},
|
|
14507
|
+
...l.paint ? {
|
|
14508
|
+
paint: l.paint
|
|
14509
|
+
} : {}
|
|
14510
|
+
});
|
|
14511
|
+
});
|
|
14512
|
+
}
|
|
14513
|
+
handleCoordSystemChange(_system) {
|
|
14514
|
+
this.sourceConfigs.forEach((s)=>{
|
|
14515
|
+
const data = this.dataCache.get(s.key);
|
|
14516
|
+
if (data) this.setData(s.key, data);
|
|
14517
|
+
});
|
|
14518
|
+
}
|
|
14519
|
+
setData(sourceKey, data) {
|
|
14520
|
+
const sid = this.sourceKey2Id.get(sourceKey);
|
|
14521
|
+
if (!sid) return;
|
|
14522
|
+
this.dataCache.set(sourceKey, data);
|
|
14523
|
+
const transformed = this.transformCoordinates ? this._transformCoords(data) : data;
|
|
14524
|
+
this.mapless?.setData(sid, transformed);
|
|
14525
|
+
}
|
|
14526
|
+
clearData(sourceKey) {
|
|
14527
|
+
const sid = this.sourceKey2Id.get(sourceKey);
|
|
14528
|
+
if (!sid) return;
|
|
14529
|
+
this.dataCache.delete(sourceKey);
|
|
14530
|
+
this.mapless?.setEmptyData(sid);
|
|
14531
|
+
}
|
|
14532
|
+
setPaintProperty(layerKey, name, value) {
|
|
14533
|
+
const lid = this.layerKey2Id.get(layerKey);
|
|
14534
|
+
if (lid) this.mapless?.map?.setPaintProperty(lid, name, value);
|
|
14535
|
+
}
|
|
14536
|
+
setLayoutProperty(layerKey, name, value) {
|
|
14537
|
+
const lid = this.layerKey2Id.get(layerKey);
|
|
14538
|
+
if (lid) this.mapless?.map?.setLayoutProperty(lid, name, value);
|
|
14539
|
+
}
|
|
14540
|
+
getLayerIdByKey(layerKey) {
|
|
14541
|
+
return this.layerKey2Id.get(layerKey);
|
|
14542
|
+
}
|
|
14543
|
+
getSourceIdByKey(sourceKey) {
|
|
14544
|
+
return this.sourceKey2Id.get(sourceKey);
|
|
14545
|
+
}
|
|
14546
|
+
fitBounds(sourceKey, padding) {
|
|
14547
|
+
const keys = sourceKey ? [
|
|
14548
|
+
sourceKey
|
|
14549
|
+
] : [
|
|
14550
|
+
...this.dataCache.keys()
|
|
14551
|
+
];
|
|
14552
|
+
const coords = [];
|
|
14553
|
+
keys.forEach((k)=>{
|
|
14554
|
+
const data = this.dataCache.get(k);
|
|
14555
|
+
if (!data) return;
|
|
14556
|
+
data.features.forEach((f)=>{
|
|
14557
|
+
this._collectCoords(f, coords);
|
|
14558
|
+
});
|
|
14559
|
+
});
|
|
14560
|
+
if (coords.length > 0) this.mapless?.fitBounds(coords, padding || 300);
|
|
14561
|
+
}
|
|
14562
|
+
destroy() {
|
|
14563
|
+
super.destroy();
|
|
14564
|
+
this.sourceKey2Id.clear();
|
|
14565
|
+
this.layerKey2Id.clear();
|
|
14566
|
+
this.dataCache.clear();
|
|
14567
|
+
}
|
|
14568
|
+
_transformCoords(data) {
|
|
14569
|
+
if (!this.mapless) return data;
|
|
14570
|
+
const clone = structuredClone(data);
|
|
14571
|
+
clone.features.forEach((f)=>{
|
|
14572
|
+
if (!f.geometry) return;
|
|
14573
|
+
switch(f.geometry.type){
|
|
14574
|
+
case 'Point':
|
|
14575
|
+
this._transPosition(f.geometry.coordinates);
|
|
14576
|
+
break;
|
|
14577
|
+
case 'MultiPoint':
|
|
14578
|
+
case 'LineString':
|
|
14579
|
+
f.geometry.coordinates.forEach((c)=>{
|
|
14580
|
+
this._transPosition(c);
|
|
14581
|
+
});
|
|
14582
|
+
break;
|
|
14583
|
+
case 'MultiLineString':
|
|
14584
|
+
case 'Polygon':
|
|
14585
|
+
f.geometry.coordinates.forEach((ring)=>{
|
|
14586
|
+
ring.forEach((c)=>{
|
|
14587
|
+
this._transPosition(c);
|
|
14588
|
+
});
|
|
14589
|
+
});
|
|
14590
|
+
break;
|
|
14591
|
+
case 'MultiPolygon':
|
|
14592
|
+
f.geometry.coordinates.forEach((poly)=>{
|
|
14593
|
+
poly.forEach((ring)=>{
|
|
14594
|
+
ring.forEach((c)=>{
|
|
14595
|
+
this._transPosition(c);
|
|
14596
|
+
});
|
|
14597
|
+
});
|
|
14598
|
+
});
|
|
14599
|
+
break;
|
|
14600
|
+
default:
|
|
14601
|
+
break;
|
|
14602
|
+
}
|
|
14603
|
+
});
|
|
14604
|
+
return clone;
|
|
14605
|
+
}
|
|
14606
|
+
_transPosition(c) {
|
|
14607
|
+
const transed = this.mapless?.coordTrans('dataToTile', [
|
|
14608
|
+
Number(c[0]),
|
|
14609
|
+
Number(c[1])
|
|
14610
|
+
]);
|
|
14611
|
+
if (transed) {
|
|
14612
|
+
c[0] = transed[0];
|
|
14613
|
+
c[1] = transed[1];
|
|
14614
|
+
}
|
|
14615
|
+
}
|
|
14616
|
+
_collectCoords(f, coords) {
|
|
14617
|
+
if (!f.geometry) return;
|
|
14618
|
+
const push = (c)=>{
|
|
14619
|
+
coords.push([
|
|
14620
|
+
Number(c[0]),
|
|
14621
|
+
Number(c[1])
|
|
14622
|
+
]);
|
|
14623
|
+
};
|
|
14624
|
+
switch(f.geometry.type){
|
|
14625
|
+
case 'Point':
|
|
14626
|
+
push(f.geometry.coordinates);
|
|
14627
|
+
break;
|
|
14628
|
+
case 'MultiPoint':
|
|
14629
|
+
case 'LineString':
|
|
14630
|
+
f.geometry.coordinates.forEach(push);
|
|
14631
|
+
break;
|
|
14632
|
+
case 'MultiLineString':
|
|
14633
|
+
case 'Polygon':
|
|
14634
|
+
f.geometry.coordinates.forEach((ring)=>{
|
|
14635
|
+
ring.forEach(push);
|
|
14636
|
+
});
|
|
14637
|
+
break;
|
|
14638
|
+
case 'MultiPolygon':
|
|
14639
|
+
f.geometry.coordinates.forEach((poly)=>{
|
|
14640
|
+
poly.forEach((ring)=>{
|
|
14641
|
+
ring.forEach(push);
|
|
14642
|
+
});
|
|
14643
|
+
});
|
|
14644
|
+
break;
|
|
14645
|
+
default:
|
|
14646
|
+
break;
|
|
14647
|
+
}
|
|
14648
|
+
}
|
|
14649
|
+
}
|
|
14650
|
+
const attachCustom = (mapless, name, options)=>mapless?.use(CustomManager, name, options);
|
|
14651
|
+
const getCustom = (mapless, name)=>mapless?.get(CustomManager, name);
|
|
14652
|
+
const detachCustom = (mapless, name)=>mapless?.unuse(CustomManager, name);
|
|
14445
14653
|
class HeatmapManager extends manager_Manager {
|
|
14446
14654
|
points = void 0;
|
|
14447
14655
|
maxPoints;
|
|
@@ -15348,10 +15556,16 @@ class NewStationManager extends EmitManager {
|
|
|
15348
15556
|
}
|
|
15349
15557
|
isDefaultMultiSelect = false;
|
|
15350
15558
|
applyTwiceSelectKey = 'id';
|
|
15559
|
+
dblClickEnabled = false;
|
|
15560
|
+
dblClickThreshold = 300;
|
|
15561
|
+
lastClickTime = 0;
|
|
15562
|
+
pendingSingleClickTimer = null;
|
|
15351
15563
|
constructor(mapless, options){
|
|
15352
15564
|
super(mapless, options, 'station');
|
|
15353
15565
|
this.onInitialized();
|
|
15354
15566
|
this.isDefaultMultiSelect = getOption('isDefaultMultiSelect', options, false);
|
|
15567
|
+
this.dblClickEnabled = getOption('dblClickEnabled', options, false);
|
|
15568
|
+
this.dblClickThreshold = getOption('dblClickThreshold', options, 300);
|
|
15355
15569
|
this.setupClickHandler();
|
|
15356
15570
|
this.setupHoverHandler();
|
|
15357
15571
|
}
|
|
@@ -15803,7 +16017,7 @@ class NewStationManager extends EmitManager {
|
|
|
15803
16017
|
});
|
|
15804
16018
|
};
|
|
15805
16019
|
setupClickHandler() {
|
|
15806
|
-
const
|
|
16020
|
+
const handleDetailSingleClick = (e)=>{
|
|
15807
16021
|
if (!this.selectable) return;
|
|
15808
16022
|
if (e.features) {
|
|
15809
16023
|
const currs = this.stations.filter((station)=>e.features?.some((f)=>f.properties?.id === station.id));
|
|
@@ -15850,10 +16064,7 @@ class NewStationManager extends EmitManager {
|
|
|
15850
16064
|
}
|
|
15851
16065
|
}
|
|
15852
16066
|
};
|
|
15853
|
-
|
|
15854
|
-
this.idHub?.detailLayerId
|
|
15855
|
-
], clickHandler);
|
|
15856
|
-
const clickSimpleHandler = (e)=>{
|
|
16067
|
+
const handleSimpleSingleClick = (e)=>{
|
|
15857
16068
|
if (!this.selectable) return;
|
|
15858
16069
|
const feature = e.features?.[0];
|
|
15859
16070
|
if (feature) {
|
|
@@ -15897,9 +16108,61 @@ class NewStationManager extends EmitManager {
|
|
|
15897
16108
|
}
|
|
15898
16109
|
}
|
|
15899
16110
|
};
|
|
16111
|
+
const getDetailStations = (e)=>this.stations.filter((station)=>e.features?.some((f)=>f.properties?.id === station.id));
|
|
16112
|
+
const getSimpleStations = (e)=>{
|
|
16113
|
+
const feature = e.features?.[0];
|
|
16114
|
+
if (!feature) return [];
|
|
16115
|
+
const curr = this.stations.find((station)=>station.id === feature.properties?.id);
|
|
16116
|
+
return curr ? [
|
|
16117
|
+
curr
|
|
16118
|
+
] : [];
|
|
16119
|
+
};
|
|
16120
|
+
const wrapWithDblClickDetection = (singleClickAction, getStations)=>(e)=>{
|
|
16121
|
+
if (!this.dblClickEnabled) return void singleClickAction(e);
|
|
16122
|
+
const now = Date.now();
|
|
16123
|
+
const isDoubleClick = now - this.lastClickTime < this.dblClickThreshold;
|
|
16124
|
+
this.lastClickTime = now;
|
|
16125
|
+
if (isDoubleClick) {
|
|
16126
|
+
if (this.pendingSingleClickTimer) {
|
|
16127
|
+
clearTimeout(this.pendingSingleClickTimer);
|
|
16128
|
+
this.pendingSingleClickTimer = null;
|
|
16129
|
+
}
|
|
16130
|
+
const stations = getStations(e);
|
|
16131
|
+
if (stations.length > 0) this.emit('stationsDbClick', {
|
|
16132
|
+
stations,
|
|
16133
|
+
datas: stations,
|
|
16134
|
+
lngLat: {
|
|
16135
|
+
lng: e.lngLat.lng,
|
|
16136
|
+
lat: e.lngLat.lat
|
|
16137
|
+
},
|
|
16138
|
+
sourceName: 'StationManager'
|
|
16139
|
+
});
|
|
16140
|
+
return;
|
|
16141
|
+
}
|
|
16142
|
+
const capturedFeatures = e.features ? e.features.slice() : e.features;
|
|
16143
|
+
const capturedOriginalEvent = e.originalEvent;
|
|
16144
|
+
if (this.pendingSingleClickTimer) clearTimeout(this.pendingSingleClickTimer);
|
|
16145
|
+
this.pendingSingleClickTimer = setTimeout(()=>{
|
|
16146
|
+
this.pendingSingleClickTimer = null;
|
|
16147
|
+
e.features = capturedFeatures;
|
|
16148
|
+
e.originalEvent = capturedOriginalEvent;
|
|
16149
|
+
singleClickAction(e);
|
|
16150
|
+
}, this.dblClickThreshold);
|
|
16151
|
+
};
|
|
16152
|
+
this._listener?.addIdList('click', [
|
|
16153
|
+
this.idHub?.detailLayerId
|
|
16154
|
+
], wrapWithDblClickDetection(handleDetailSingleClick, getDetailStations));
|
|
15900
16155
|
this._listener?.addIdList('click', [
|
|
15901
16156
|
this.idHub?.simpleLayerId
|
|
15902
|
-
],
|
|
16157
|
+
], wrapWithDblClickDetection(handleSimpleSingleClick, getSimpleStations));
|
|
16158
|
+
const preventZoomOnDblClick = (e)=>{
|
|
16159
|
+
if (!this.dblClickEnabled) return;
|
|
16160
|
+
e.preventDefault();
|
|
16161
|
+
};
|
|
16162
|
+
this._listener?.addIdList('dblclick', [
|
|
16163
|
+
this.idHub?.detailLayerId,
|
|
16164
|
+
this.idHub?.simpleLayerId
|
|
16165
|
+
], preventZoomOnDblClick);
|
|
15903
16166
|
}
|
|
15904
16167
|
setupHoverHandler() {
|
|
15905
16168
|
const enterHnadler = (e)=>{
|
|
@@ -15920,6 +16183,10 @@ class NewStationManager extends EmitManager {
|
|
|
15920
16183
|
}
|
|
15921
16184
|
destroy = ()=>{
|
|
15922
16185
|
super.destroy();
|
|
16186
|
+
if (this.pendingSingleClickTimer) {
|
|
16187
|
+
clearTimeout(this.pendingSingleClickTimer);
|
|
16188
|
+
this.pendingSingleClickTimer = null;
|
|
16189
|
+
}
|
|
15923
16190
|
this.stations = [];
|
|
15924
16191
|
};
|
|
15925
16192
|
}
|
|
@@ -23329,4 +23596,4 @@ const test2Point = (map)=>{
|
|
|
23329
23596
|
end
|
|
23330
23597
|
};
|
|
23331
23598
|
};
|
|
23332
|
-
export { AirspaceManager, ClickStrategy, CoordTransformer, Draw, EmitManager, FixedRectangleLayer as FixedRectangleLayerManager, FreeStrategy, Lang, LngLat, MapMouseEvent, Mapless_Base as Mapless, Marker, MercatorCoordinate, MultiCoordTransformer, OldStationManager, PathCollectionStrategy, Popup, PositionMarker, PositionMouse, QuickTrans, RectangleLayer as RectangleLayerManager, Three_ModelCache as ModelCache, adjustMapConfigByCoord, airspace3 as Airspace3Manager, attachAirspace, attachAirspace3, attachBasicObject, attachBoundary, attachCircle, 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, basicObject as BasicThreeObjectManager, buildTileUrl, calculateObjectsInPolygon, clearAllModelCache, clearModelCache, createCoordTransformer, curve3d as Curve3DManager, darkFog, darkSource, deepClonePath, defaultSource, detachAirspace, detachAirspace3, detachBasicObject, detachBoundary, detachCircle, 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, elevatedLine as ElevatedLineManager, ellipse, genPrefixId, getAirspace, getAirspace3, getAllSourceCoordSystems, getBasicObject, getBoundary, getCircle, getCluster, getCoordDisplayName, getCurve, getCurve3D, getEffectiveAltitude, getElevatedLine, getFixedRectangleLayer, getHeatmap, getImageData, getInstancedModel, getLine, getLine2, getMapModel, getMarker, getModel, getModelCacheSize, getMovable, getNewStation, getNode, getOldStation, getPathTracker, getPolygon, getRectangleLayer, getRoutes, getSelectCenter, getSelectCenterNRadius, getSelectPolygon, getShape, getSourceCoordSystem, getSourcesByCoordSystem, getStep, getTerrainElevation, getText, getThree, getTrack, hasDEMData, hasDEMDataInRegion, icons_Singleton as Singleton, instancedModel as InstancedModelManager, isValidCoordinate, lightFog, lightSource, line2Manager as Line2Manager, lite, mana_three_model as ModelManager, manager_Manager as Manager, mapModel as MapModelManager, mapbox_gl as mapboxgl, maplessPreset, newstation_stateColorRule as stateColorRule, path_PathEditor as PathEditor, path_PathTracker as PathTracker, point2Feature, propwmsTransformRequest, select_SelectBoard as SelectBoard, setMapCursor, sourcesMap, test2Point, three as ThreeManager, throttle, transformCoordinate, transformCoordinateBetweenSources, transformCoordinates, transformMapCenter, tryFunc, tryTrans };
|
|
23599
|
+
export { AirspaceManager, ClickStrategy, CoordTransformer, Draw, EmitManager, FixedRectangleLayer as FixedRectangleLayerManager, FreeStrategy, Lang, LngLat, MapMouseEvent, Mapless_Base as Mapless, Marker, MercatorCoordinate, MultiCoordTransformer, OldStationManager, PathCollectionStrategy, Popup, PositionMarker, PositionMouse, QuickTrans, RectangleLayer as RectangleLayerManager, Three_ModelCache as ModelCache, adjustMapConfigByCoord, airspace3 as Airspace3Manager, attachAirspace, attachAirspace3, attachBasicObject, attachBoundary, attachCircle, attachCluster, attachCurve, attachCurve3D, attachCustom, attachElevatedLine, attachFixedRectangleLayer, attachHeatmap, attachImageData, attachInstancedModel, attachLine, attachLine2, attachMapModel, attachMarker, attachModel, attachMovable, attachNewStation, attachNode, attachOldStation, attachPathTracker, attachPolygon, attachRectangleLayer, attachRoutes, attachShape, attachStep, attachText, attachThree, attachTrack, basicObject as BasicThreeObjectManager, buildTileUrl, calculateObjectsInPolygon, clearAllModelCache, clearModelCache, createCoordTransformer, curve3d as Curve3DManager, darkFog, darkSource, deepClonePath, defaultSource, detachAirspace, detachAirspace3, detachBasicObject, detachBoundary, detachCircle, detachCluster, detachCurve, detachCurve3D, detachCustom, detachElevatedLine, detachFixedRectangleLayer, detachHeatmap, detachImageData, detachInstancedModel, detachLine, detachLine2, detachMapModel, detachMarker, detachModel, detachMovable, detachNewStation, detachNode, detachOldStation, detachPathTracker, detachPolygon, detachRectangleLayer, detachRoutes, detachShape, detachStep, detachText, detachThree, detachTrack, elevatedLine as ElevatedLineManager, ellipse, genPrefixId, getAirspace, getAirspace3, getAllSourceCoordSystems, getBasicObject, getBoundary, getCircle, getCluster, getCoordDisplayName, getCurve, getCurve3D, getCustom, getEffectiveAltitude, getElevatedLine, getFixedRectangleLayer, getHeatmap, getImageData, getInstancedModel, getLine, getLine2, getMapModel, getMarker, getModel, getModelCacheSize, getMovable, getNewStation, getNode, getOldStation, getPathTracker, getPolygon, getRectangleLayer, getRoutes, getSelectCenter, getSelectCenterNRadius, getSelectPolygon, getShape, getSourceCoordSystem, getSourcesByCoordSystem, getStep, getTerrainElevation, getText, getThree, getTrack, hasDEMData, hasDEMDataInRegion, icons_Singleton as Singleton, instancedModel as InstancedModelManager, isValidCoordinate, lightFog, lightSource, line2Manager as Line2Manager, lite, mana_three_model as ModelManager, manager_Manager as Manager, mapModel as MapModelManager, mapbox_gl as mapboxgl, maplessPreset, newstation_stateColorRule as stateColorRule, path_PathEditor as PathEditor, path_PathTracker as PathTracker, point2Feature, propwmsTransformRequest, select_SelectBoard as SelectBoard, setMapCursor, sourcesMap, test2Point, three as ThreeManager, throttle, transformCoordinate, transformCoordinateBetweenSources, transformCoordinates, transformMapCenter, tryFunc, tryTrans };
|
|
@@ -18,6 +18,7 @@ export * from './mana/boundary';
|
|
|
18
18
|
export * from './mana/circle';
|
|
19
19
|
export * from './mana/cluster';
|
|
20
20
|
export * from './mana/curve';
|
|
21
|
+
export * from './mana/custom';
|
|
21
22
|
export * from './mana/heatmap';
|
|
22
23
|
export * from './mana/imagedata';
|
|
23
24
|
export * from './mana/line';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Mapless/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,QAAQ,CAAC;AAC7B,OAAO,8BAA8B,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EACL,OAAO,EACP,aAAa,EACb,cAAc,EACd,aAAa,EACb,uBAAuB,EACvB,SAAS,EACV,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;AAEjD,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Mapless/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,QAAQ,CAAC;AAC7B,OAAO,8BAA8B,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EACL,OAAO,EACP,aAAa,EACb,cAAc,EACd,aAAa,EACb,uBAAuB,EACvB,SAAS,EACV,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;AAEjD,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CustomManager —— 可派生的自定义专题 mana
|
|
3
|
+
*
|
|
4
|
+
* 现有专项 mana(heatmap / circle / line / shape ...)均需在 mapless 内部实现并随版本发布。
|
|
5
|
+
* CustomManager 作为一个通用的"声明式"基座,让外部用户**不必等 mapless 发版**即可创建
|
|
6
|
+
* 自定义专题图层管理器:
|
|
7
|
+
* - 声明式 options 配置:一次性传入 sources + layers,自动完成注册与图层创建。
|
|
8
|
+
* - 支持任意 type 的图层(circle / line / fill / symbol / heatmap / ...)。
|
|
9
|
+
* - 支持多 source + 多 layer 在一个 mana 内管理(如 circle + symbol 文字标注共用一个 manager)。
|
|
10
|
+
* - 默认自动对数据坐标做 coordTrans('dataToTile') 转换,与 heatmap/line 等 mana 行为一致;
|
|
11
|
+
* 高级用户可通过 transformCoordinates: false 关闭。
|
|
12
|
+
*
|
|
13
|
+
* 实现沿用 mapless 约定:
|
|
14
|
+
* - 继承 Manager(事件需求强烈时再考虑 EmitManager)。
|
|
15
|
+
* - createIdHub + initLayers + coordTrans + 基类 destroy 自动清理。
|
|
16
|
+
* - 各 source/layer id 以 `dzmap-custom-<id>` 为前缀,基类会自动追加 gmid 后缀保证唯一。
|
|
17
|
+
*/
|
|
18
|
+
import type { FilterSpecification, LayerSpecification } from 'mapbox-gl';
|
|
19
|
+
import type { Mapless } from '..';
|
|
20
|
+
import type { IdHubType } from '../core/IdHub';
|
|
21
|
+
import { Manager } from '../core/manager';
|
|
22
|
+
import type { PartSource } from '../extensions/types';
|
|
23
|
+
import type { ManagerOptions } from '../types';
|
|
24
|
+
/**
|
|
25
|
+
* CustomManager 中单个 source 的配置。
|
|
26
|
+
*/
|
|
27
|
+
export interface CustomSourceConfig {
|
|
28
|
+
/** 唯一 key,layers 通过此 key 引用该 source */
|
|
29
|
+
key: string;
|
|
30
|
+
/** source 基础 id 前缀(最终 id = 前缀 + gmid 后缀,保证唯一) */
|
|
31
|
+
id: string;
|
|
32
|
+
/**
|
|
33
|
+
* 透传给 addEmptySource 的选项,例如:
|
|
34
|
+
* { cluster: true, clusterRadius: 50 } 聚合
|
|
35
|
+
* { promoteId: 'id' } feature-state 唯一标识
|
|
36
|
+
* { dynamic: true } 动态数据
|
|
37
|
+
*/
|
|
38
|
+
options?: PartSource;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* CustomManager 中单个 layer 的配置。
|
|
42
|
+
*/
|
|
43
|
+
export interface CustomLayerConfig {
|
|
44
|
+
/** 唯一 key,外部通过此 key 获取真实 layer id(getLayerIdByKey) */
|
|
45
|
+
key: string;
|
|
46
|
+
/** layer 基础 id 前缀(最终 id = 前缀 + gmid 后缀) */
|
|
47
|
+
id: string;
|
|
48
|
+
/** 引用的 source key(必须对应 sources 中某项的 key) */
|
|
49
|
+
sourceKey: string;
|
|
50
|
+
/** mapboxgl 图层类型:circle / line / fill / symbol / heatmap / raster / ... */
|
|
51
|
+
type: LayerSpecification['type'];
|
|
52
|
+
/** mapboxgl paint 属性(支持 mapboxgl 数据驱动表达式) */
|
|
53
|
+
paint?: Record<string, unknown>;
|
|
54
|
+
/** mapboxgl layout 属性 */
|
|
55
|
+
layout?: Record<string, unknown>;
|
|
56
|
+
/** 图层最大可见缩放级别(超过则不渲染) */
|
|
57
|
+
maxzoom?: number;
|
|
58
|
+
/** 图层最小可见缩放级别(低于则不渲染) */
|
|
59
|
+
minzoom?: number;
|
|
60
|
+
/** mapboxgl filter 表达式 */
|
|
61
|
+
filter?: FilterSpecification;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* CustomManager 配置项。
|
|
65
|
+
*/
|
|
66
|
+
export type CustomManagerOptions = ManagerOptions & {
|
|
67
|
+
/** 声明的数据源集合(至少 1 个) */
|
|
68
|
+
sources: CustomSourceConfig[];
|
|
69
|
+
/** 声明的图层集合(至少 1 个,layer.sourceKey 必须在 sources 中存在) */
|
|
70
|
+
layers: CustomLayerConfig[];
|
|
71
|
+
/**
|
|
72
|
+
* setData 时是否自动对坐标做 coordTrans('dataToTile') 转换。
|
|
73
|
+
* 默认 true,与 heatmap/line 等 mana 行为一致;高级用户可设 false 自管坐标。
|
|
74
|
+
*/
|
|
75
|
+
transformCoordinates?: boolean;
|
|
76
|
+
};
|
|
77
|
+
type CustomIdHubType = IdHubType;
|
|
78
|
+
export default class CustomManager extends Manager<CustomIdHubType> {
|
|
79
|
+
/** 用户声明的 sources 配置(去重后) */
|
|
80
|
+
private sourceConfigs;
|
|
81
|
+
/** 用户声明的 layers 配置 */
|
|
82
|
+
private layerConfigs;
|
|
83
|
+
/** sourceKey -> 真实 sourceId 映射 */
|
|
84
|
+
private sourceKey2Id;
|
|
85
|
+
/** layerKey -> 真实 layerId 映射 */
|
|
86
|
+
private layerKey2Id;
|
|
87
|
+
/** setData 时是否自动转换坐标 */
|
|
88
|
+
private transformCoordinates;
|
|
89
|
+
/** 每个 source 最近一次写入的原始经纬度数据,供 fitBounds 使用 */
|
|
90
|
+
private dataCache;
|
|
91
|
+
/**
|
|
92
|
+
* 注意:构造函数形参类型用 ManagerOptions(而非 CustomManagerOptions)以兼容
|
|
93
|
+
* mapless.use 的 new(base, options?: ManagerOptions) => T 约束。
|
|
94
|
+
* (CustomManagerOptions 含必填字段,直接用会违反参数逆变。)
|
|
95
|
+
* 实际传入的 CustomManagerOptions 在内部按需读取。
|
|
96
|
+
*/
|
|
97
|
+
constructor(mapless: Mapless, options?: ManagerOptions);
|
|
98
|
+
createIdHub(_idHub?: IdHubType): void;
|
|
99
|
+
initLayers(): void;
|
|
100
|
+
handleCoordSystemChange(_system: string | undefined): void;
|
|
101
|
+
/**
|
|
102
|
+
* 向指定 sourceKey 写入 GeoJSON。
|
|
103
|
+
* 默认 transformCoordinates=true 时,递归遍历 features 的 geometry.coordinates,
|
|
104
|
+
* 用 coordTrans('dataToTile', [lng, lat]) 转换坐标(覆盖 Point/LineString/Polygon/Multi*)。
|
|
105
|
+
*
|
|
106
|
+
* @param sourceKey CustomSourceConfig.key
|
|
107
|
+
* @param data GeoJSON FeatureCollection(经纬度坐标)
|
|
108
|
+
*/
|
|
109
|
+
setData(sourceKey: string, data: GeoJSON.FeatureCollection): void;
|
|
110
|
+
/** 清空指定 sourceKey 的数据 */
|
|
111
|
+
clearData(sourceKey: string): void;
|
|
112
|
+
/** 按 layerKey 透传 paint 属性 */
|
|
113
|
+
setPaintProperty(layerKey: string, name: string, value: unknown): void;
|
|
114
|
+
/** 按 layerKey 透传 layout 属性 */
|
|
115
|
+
setLayoutProperty(layerKey: string, name: string, value: unknown): void;
|
|
116
|
+
/** 通过 layerKey 获取真实 layerId,便于外部绑定原生事件(hover/click 等) */
|
|
117
|
+
getLayerIdByKey(layerKey: string): string | undefined;
|
|
118
|
+
/** 通过 sourceKey 获取真实 sourceId */
|
|
119
|
+
getSourceIdByKey(sourceKey: string): string | undefined;
|
|
120
|
+
/**
|
|
121
|
+
* 根据 sourceKey 的缓存数据适配视野。
|
|
122
|
+
* @param sourceKey 指定 source,未传则用所有有数据的 source
|
|
123
|
+
* @param padding 边距,默认 300
|
|
124
|
+
*/
|
|
125
|
+
fitBounds(sourceKey?: string, padding?: number): void;
|
|
126
|
+
destroy(): void;
|
|
127
|
+
/**
|
|
128
|
+
* 递归把 GeoJSON 中所有 [lng, lat] 坐标经 coordTrans('dataToTile') 转换。
|
|
129
|
+
* 深拷贝后改写,避免污染调用方传入的数据。
|
|
130
|
+
*/
|
|
131
|
+
private _transformCoords;
|
|
132
|
+
/** 转换单个 position(原地修改):[lng, lat] -> 瓦片坐标 */
|
|
133
|
+
private _transPosition;
|
|
134
|
+
/** 从单个 feature 中收集所有经纬度坐标到 coords(用于 fitBounds) */
|
|
135
|
+
private _collectCoords;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* ============================================================
|
|
139
|
+
* 使用示例
|
|
140
|
+
* ============================================================
|
|
141
|
+
*
|
|
142
|
+
* import { attachCustom, getCustom, detachCustom } from '@mapless/react';
|
|
143
|
+
*
|
|
144
|
+
* // 一个 CustomManager 同时管理 circle + symbol(文字标注) 两个图层,分别用两个 source
|
|
145
|
+
* const cm = attachCustom(mapless, 'myMana', {
|
|
146
|
+
* transformCoordinates: true,
|
|
147
|
+
* sources: [
|
|
148
|
+
* { key: 'pts', id: 'points-src', options: { promoteId: 'id' } },
|
|
149
|
+
* { key: 'labels', id: 'labels-src' }
|
|
150
|
+
* ],
|
|
151
|
+
* layers: [
|
|
152
|
+
* {
|
|
153
|
+
* key: 'circle', sourceKey: 'pts', id: 'points-circle', type: 'circle',
|
|
154
|
+
* paint: { 'circle-radius': 8, 'circle-color': '#1890ff', 'circle-stroke-width': 2 }
|
|
155
|
+
* },
|
|
156
|
+
* {
|
|
157
|
+
* key: 'label', sourceKey: 'labels', id: 'labels-text', type: 'symbol',
|
|
158
|
+
* layout: { 'text-field': ['get', 'name'], 'text-size': 14 }
|
|
159
|
+
* }
|
|
160
|
+
* ]
|
|
161
|
+
* });
|
|
162
|
+
*
|
|
163
|
+
* // 写数据:经纬度会自动转成瓦片坐标
|
|
164
|
+
* cm?.setData('pts', {
|
|
165
|
+
* type: 'FeatureCollection',
|
|
166
|
+
* features: [{
|
|
167
|
+
* type: 'Feature',
|
|
168
|
+
* properties: { id: 'a' },
|
|
169
|
+
* geometry: { type: 'Point', coordinates: [113.267, 23.132] }
|
|
170
|
+
* }]
|
|
171
|
+
* });
|
|
172
|
+
*
|
|
173
|
+
* // 运行时改样式
|
|
174
|
+
* cm?.setPaintProperty('circle', 'circle-color', '#ff4d4f');
|
|
175
|
+
*
|
|
176
|
+
* // 拿真实 layerId 绑原生事件(hover / click 等)
|
|
177
|
+
* const lid = cm?.getLayerIdByKey('circle');
|
|
178
|
+
* map.on('mouseenter', lid!, () => { /* ... *\/ });
|
|
179
|
+
*
|
|
180
|
+
* // 销毁:自动清源/清图层
|
|
181
|
+
* detachCustom(mapless, 'myMana');
|
|
182
|
+
*/
|
|
183
|
+
export declare const attachCustom: (mapless: Mapless | undefined, name?: string, options?: CustomManagerOptions) => CustomManager | undefined;
|
|
184
|
+
export declare const getCustom: (mapless: Mapless | undefined | null, name?: string) => CustomManager | undefined;
|
|
185
|
+
export declare const detachCustom: (mapless: Mapless | undefined | null, name?: string) => boolean | undefined;
|
|
186
|
+
export {};
|
|
187
|
+
//# sourceMappingURL=custom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana/custom.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,8 +22,17 @@ declare class NewStationManager extends EmitManager<StationManagerEvents, NewSta
|
|
|
22
22
|
displayCategoryFilterFunc: ((s: Station) => boolean) | undefined;
|
|
23
23
|
getStations(): Station[];
|
|
24
24
|
clearSelected(): void;
|
|
25
|
-
|
|
25
|
+
/** 是否默认多选(开启后普通点击即切换选中,无需 Ctrl/Command)。可在运行时切换 */
|
|
26
|
+
isDefaultMultiSelect: boolean;
|
|
26
27
|
private applyTwiceSelectKey;
|
|
28
|
+
/** 是否启用双击检测(click 时间差判定,兼容移动端,不依赖 dblclick 事件)。默认关闭,需要时显式开启 */
|
|
29
|
+
dblClickEnabled: boolean;
|
|
30
|
+
/** 双击判定的时间阈值(ms) */
|
|
31
|
+
dblClickThreshold: number;
|
|
32
|
+
/** 上一次 click 的时间戳,用于双击判定 */
|
|
33
|
+
private lastClickTime;
|
|
34
|
+
/** 待执行的单击定时器:双击到来时会被取消,从而避免双击触发选中 */
|
|
35
|
+
private pendingSingleClickTimer;
|
|
27
36
|
constructor(mapless: Mapless, options?: ManagerOptions);
|
|
28
37
|
handleCoordSystemChange(_system: string | undefined): void;
|
|
29
38
|
createIdHub(_idHub?: IdHubType): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"newstation.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana/newstation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,oCAAoC,EACrC,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAiB,MAAM,IAAI,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,KAAK,EACV,cAAc,EACd,wBAAwB,EACxB,OAAO,EACP,oBAAoB,EACrB,MAAM,UAAU,CAAC;AAElB,KAAK,mBAAmB,GAAG,SAAS,GAAG;IACrC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAMF,eAAO,MAAM,cAAc,EAAE,oCAAoC,CAAC,kBAAkB,CAYjF,CAAC;AAEJ;;;;GAIG;AACH,cAAM,iBAAkB,SAAQ,WAAW,CACzC,oBAAoB,EACpB,mBAAmB,CACpB;IACC,OAAO,CAAC,QAAQ,CAAiB;IAE1B,UAAU,UAAQ;IAClB,yBAAyB,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,SAAS,CAC3D;IAEZ,WAAW;IAIX,aAAa;IASb,OAAO,CAAC,oBAAoB,
|
|
1
|
+
{"version":3,"file":"newstation.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana/newstation.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,11 +57,21 @@ export type EventPayload = {
|
|
|
57
57
|
export type StationsSelectedPayload = EventPayload & {
|
|
58
58
|
stations?: Station[];
|
|
59
59
|
};
|
|
60
|
+
export type StationsDbClickPayload = EventPayload & {
|
|
61
|
+
stations?: Station[];
|
|
62
|
+
/** 双击命中的地理坐标(lng/lat) */
|
|
63
|
+
lngLat?: {
|
|
64
|
+
lng: number;
|
|
65
|
+
lat: number;
|
|
66
|
+
};
|
|
67
|
+
};
|
|
60
68
|
export type ManagerEvents = {
|
|
61
69
|
[key: string]: EventPayload[];
|
|
62
70
|
};
|
|
63
71
|
export type StationManagerEvents = {
|
|
64
72
|
stationsSelected: [StationsSelectedPayload];
|
|
73
|
+
/** 站点双击:由 click 时间差判定,不依赖 dblclick 事件(兼容移动端) */
|
|
74
|
+
stationsDbClick: [StationsDbClickPayload];
|
|
65
75
|
};
|
|
66
76
|
/**
|
|
67
77
|
* circle 图层上单个点的信息,由 hover 事件传出
|
|
@@ -97,6 +107,15 @@ export type Line = {
|
|
|
97
107
|
};
|
|
98
108
|
export type NewStationManagerOptions = ManagerOptions & {
|
|
99
109
|
isDefaultMultiSelect: boolean;
|
|
110
|
+
/**
|
|
111
|
+
* 是否启用双击检测(通过 click 时间差判定,不依赖 dblclick 事件,兼容移动端)。
|
|
112
|
+
* 启用后单击选中会有 dblClickThreshold ms 的延迟,以等待可能的双击;
|
|
113
|
+
* 检测到双击时仅抛出 stationsDbClick 事件,newstation 自身不做选中操作。
|
|
114
|
+
* 默认 false(避免影响已有单击选中的即时响应,需要双击时显式开启)。
|
|
115
|
+
*/
|
|
116
|
+
dblClickEnabled?: boolean;
|
|
117
|
+
/** 双击判定的时间阈值(ms),默认 300 */
|
|
118
|
+
dblClickThreshold?: number;
|
|
100
119
|
};
|
|
101
120
|
export type LineManagerOptions = ManagerOptions & {
|
|
102
121
|
showText?: boolean;
|
|
@@ -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":"AAAA,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAiB;AAE/D,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;AAErC,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE9D,MAAM,MAAM,QAAQ,GAChB,SAAS,GACT,WAAW,GACX,MAAM,GACN,OAAO,GAEP,cAAc,GACd,YAAY,GACZ,UAAU,GACV,SAAS,GACT,UAAU,GACV,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,KAAK,IAAI,CAAC;IACtC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,GACT,SAAS,GACT,QAAQ,GACR,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB,KAAK,cAAc,GAAG,IAAI,GAAG,IAAI,CAAC;AAClC,MAAM,MAAM,OAAO,GAAG,cAAc,GAAG,UAAU,MAAM,EAAE,CAAC;AAE1D,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC5B,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;CACnC,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,WAAW,EAAE,MAAM,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,YAAY,GAAG;IACnD,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG;IAClD,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,yBAAyB;IACzB,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,gBAAgB,EAAE,CAAC,uBAAuB,CAAC,CAAC;IAC5C,gDAAgD;IAChD,eAAe,EAAE,CAAC,sBAAsB,CAAC,CAAC;CAC3C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,iCAAiC;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS;IACT,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,+CAA+C;IAC/C,WAAW,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IACxB,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,cAAc,GAAG;IACtD,oBAAoB,EAAE,OAAO,CAAC;IAC9B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,2BAA2B;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAGF,MAAM,MAAM,KAAK,GAAG;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IACxB,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC;IAClB,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,cAAc,GAAG;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,gBAAgB,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,cAAc,GAAG;IACnD;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC"}
|