@mapless/core 1.0.28 → 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 CHANGED
@@ -13797,6 +13797,284 @@ class BoundaryManager extends manager_Manager {
13797
13797
  const attachBoundary = (mapless, name)=>mapless?.attach(BoundaryManager, name);
13798
13798
  const getBoundary = (mapless, name)=>mapless?.get(BoundaryManager, name);
13799
13799
  const detachBoundary = (mapless, name)=>mapless?.detach(BoundaryManager, name);
13800
+ class CircleManager extends EmitManager {
13801
+ points = void 0;
13802
+ maxPoints;
13803
+ maxZoom;
13804
+ radius;
13805
+ fillColor;
13806
+ strokeColor;
13807
+ strokeWidth;
13808
+ lastHoverIds = [];
13809
+ hoveredIds = new Set();
13810
+ constructor(mapless, options){
13811
+ super(mapless, options, 'circle');
13812
+ this.maxZoom = getOption('maxZoom', options, 24);
13813
+ this.maxPoints = getOption('maxPoints', options, 1000);
13814
+ this.radius = getOption('radius', options, 8);
13815
+ this.fillColor = getOption('fillColor', options, 'rgba(24, 144, 255, 0.6)');
13816
+ this.strokeColor = getOption('strokeColor', options, '#1890ff');
13817
+ this.strokeWidth = getOption('strokeWidth', options, 2);
13818
+ this.onInitialized();
13819
+ this.points = [];
13820
+ this.setupHoverHandler();
13821
+ }
13822
+ handleCoordSystemChange(_system) {
13823
+ if (this.points) this._updateDraw();
13824
+ }
13825
+ createIdHub(_idHub) {
13826
+ const newHub = new core_IdHub({
13827
+ layers: {
13828
+ circleLayerId: 'dzmap-circle-layer'
13829
+ },
13830
+ sources: {
13831
+ circleSourceId: 'dzmap-circle-source'
13832
+ }
13833
+ });
13834
+ super.createIdHub(newHub);
13835
+ }
13836
+ initLayers() {
13837
+ if (!this.mapless) return;
13838
+ const sid = this.idHub?.circleSourceId;
13839
+ this.mapless.addEmptySource(sid, {
13840
+ promoteId: 'id'
13841
+ });
13842
+ this.mapless.addLayer({
13843
+ id: this.idHub?.circleLayerId,
13844
+ type: 'circle',
13845
+ source: sid,
13846
+ maxzoom: this.maxZoom,
13847
+ paint: {
13848
+ 'circle-radius': [
13849
+ 'case',
13850
+ [
13851
+ 'boolean',
13852
+ [
13853
+ 'feature-state',
13854
+ 'hover'
13855
+ ],
13856
+ false
13857
+ ],
13858
+ 1.5 * this.radius,
13859
+ this.radius
13860
+ ],
13861
+ 'circle-color': [
13862
+ 'case',
13863
+ [
13864
+ 'boolean',
13865
+ [
13866
+ 'feature-state',
13867
+ 'hover'
13868
+ ],
13869
+ false
13870
+ ],
13871
+ 'rgba(255, 120, 0, 0.95)',
13872
+ this.fillColor
13873
+ ],
13874
+ 'circle-stroke-color': this.strokeColor,
13875
+ 'circle-stroke-width': [
13876
+ 'case',
13877
+ [
13878
+ 'boolean',
13879
+ [
13880
+ 'feature-state',
13881
+ 'hover'
13882
+ ],
13883
+ false
13884
+ ],
13885
+ this.strokeWidth + 2,
13886
+ this.strokeWidth
13887
+ ],
13888
+ 'circle-opacity': 1
13889
+ }
13890
+ });
13891
+ }
13892
+ _updateDraw() {
13893
+ const features = (this.points || []).map((point, index)=>{
13894
+ const lngLat = LngLat.convert(point);
13895
+ const [lng, lat] = lngLat.toArray();
13896
+ return {
13897
+ type: 'Feature',
13898
+ properties: {
13899
+ id: `circle-${index}`,
13900
+ index,
13901
+ longitude: lng,
13902
+ latitude: lat
13903
+ },
13904
+ geometry: {
13905
+ type: 'Point',
13906
+ coordinates: this.mapless?.coordTrans('dataToTile', [
13907
+ lng,
13908
+ lat
13909
+ ])
13910
+ }
13911
+ };
13912
+ });
13913
+ this.mapless?.setData(this.idHub?.circleSourceId, {
13914
+ type: 'FeatureCollection',
13915
+ features
13916
+ });
13917
+ }
13918
+ drawCircle(points) {
13919
+ this.points = points;
13920
+ this._updateDraw();
13921
+ }
13922
+ updateCircle(points, maxPoints) {
13923
+ if (void 0 !== maxPoints) this.maxPoints = maxPoints;
13924
+ this.points = [
13925
+ ...this.points || [],
13926
+ ...points
13927
+ ].slice(-this.maxPoints);
13928
+ this._updateDraw();
13929
+ }
13930
+ removeCircle() {
13931
+ this.mapless?.setEmptyData(this.idHub?.circleSourceId);
13932
+ this.points = [];
13933
+ this._clearHoverState();
13934
+ }
13935
+ setRadius(radius) {
13936
+ this.radius = radius;
13937
+ this._applyRadiusPaint();
13938
+ }
13939
+ setFillColor(color) {
13940
+ this.fillColor = color;
13941
+ this._applyFillColorPaint();
13942
+ }
13943
+ setStrokeColor(color) {
13944
+ this.strokeColor = color;
13945
+ const lid = this.idHub?.circleLayerId;
13946
+ if (lid) this.mapless?.map?.setPaintProperty(lid, 'circle-stroke-color', color);
13947
+ }
13948
+ setStrokeWidth(width) {
13949
+ this.strokeWidth = width;
13950
+ this._applyStrokeWidthPaint();
13951
+ }
13952
+ _applyRadiusPaint() {
13953
+ const lid = this.idHub?.circleLayerId;
13954
+ if (!lid) return;
13955
+ this.mapless?.map?.setPaintProperty(lid, 'circle-radius', [
13956
+ 'case',
13957
+ [
13958
+ 'boolean',
13959
+ [
13960
+ 'feature-state',
13961
+ 'hover'
13962
+ ],
13963
+ false
13964
+ ],
13965
+ 1.5 * this.radius,
13966
+ this.radius
13967
+ ]);
13968
+ }
13969
+ _applyFillColorPaint() {
13970
+ const lid = this.idHub?.circleLayerId;
13971
+ if (!lid) return;
13972
+ this.mapless?.map?.setPaintProperty(lid, 'circle-color', [
13973
+ 'case',
13974
+ [
13975
+ 'boolean',
13976
+ [
13977
+ 'feature-state',
13978
+ 'hover'
13979
+ ],
13980
+ false
13981
+ ],
13982
+ 'rgba(255, 120, 0, 0.95)',
13983
+ this.fillColor
13984
+ ]);
13985
+ }
13986
+ _applyStrokeWidthPaint() {
13987
+ const lid = this.idHub?.circleLayerId;
13988
+ if (!lid) return;
13989
+ this.mapless?.map?.setPaintProperty(lid, 'circle-stroke-width', [
13990
+ 'case',
13991
+ [
13992
+ 'boolean',
13993
+ [
13994
+ 'feature-state',
13995
+ 'hover'
13996
+ ],
13997
+ false
13998
+ ],
13999
+ this.strokeWidth + 2,
14000
+ this.strokeWidth
14001
+ ]);
14002
+ }
14003
+ _clearHoverState() {
14004
+ const sid = this.idHub?.circleSourceId;
14005
+ if (!sid) return;
14006
+ for (const id of this.hoveredIds)this.map?.setFeatureState({
14007
+ source: sid,
14008
+ id
14009
+ }, {
14010
+ hover: false
14011
+ });
14012
+ this.hoveredIds.clear();
14013
+ }
14014
+ setupHoverHandler() {
14015
+ const lid = this.idHub?.circleLayerId;
14016
+ if (!lid) return;
14017
+ const mousemoveHandler = (e)=>{
14018
+ const features = e.features;
14019
+ if (!features || 0 === features.length) return;
14020
+ this.mapless?.setCursor('pointer');
14021
+ const points = features.map((f)=>{
14022
+ const p = f.properties;
14023
+ if (!p) return;
14024
+ return {
14025
+ id: String(p.id),
14026
+ index: Number(p.index),
14027
+ longitude: Number(p.longitude),
14028
+ latitude: Number(p.latitude)
14029
+ };
14030
+ }).filter((p)=>void 0 !== p);
14031
+ const ids = points.map((p)=>p.id);
14032
+ const changed = ids.length !== this.lastHoverIds.length || ids.some((id, i)=>id !== this.lastHoverIds[i]);
14033
+ if (changed) {
14034
+ this.lastHoverIds = ids;
14035
+ const nextHover = new Set(ids);
14036
+ const sid = this.idHub?.circleSourceId;
14037
+ if (sid) {
14038
+ for (const id of this.hoveredIds)if (!nextHover.has(id)) this.map?.setFeatureState({
14039
+ source: sid,
14040
+ id
14041
+ }, {
14042
+ hover: false
14043
+ });
14044
+ for (const id of nextHover)if (!this.hoveredIds.has(id)) this.map?.setFeatureState({
14045
+ source: sid,
14046
+ id
14047
+ }, {
14048
+ hover: true
14049
+ });
14050
+ this.hoveredIds = nextHover;
14051
+ }
14052
+ this.emit('circleHover', points);
14053
+ }
14054
+ };
14055
+ const mouseleaveHandler = ()=>{
14056
+ this.mapless?.setCursor('');
14057
+ this._clearHoverState();
14058
+ if (this.lastHoverIds.length > 0) {
14059
+ this.lastHoverIds = [];
14060
+ this.emit('circleHover', []);
14061
+ }
14062
+ };
14063
+ this._listener?.add('mousemove', this.idHub?.circleLayerId, mousemoveHandler);
14064
+ this._listener?.add('mouseleave', this.idHub?.circleLayerId, mouseleaveHandler);
14065
+ }
14066
+ fitBounds(padding) {
14067
+ if (this.points && this.points.length > 0) this.mapless?.fitBounds(this.points, padding || 300);
14068
+ }
14069
+ destroy() {
14070
+ super.destroy();
14071
+ this._clearHoverState();
14072
+ this.points = void 0;
14073
+ }
14074
+ }
14075
+ const attachCircle = (mapless, name, options)=>mapless?.use(CircleManager, name, options);
14076
+ const getCircle = (mapless, name)=>mapless?.get(CircleManager, name);
14077
+ const detachCircle = (mapless, name)=>mapless?.unuse(CircleManager, name);
13800
14078
  class ClusterManager extends EmitManager {
13801
14079
  nodes = void 0;
13802
14080
  iconSize = 0.6;
@@ -14164,6 +14442,214 @@ class CurveManager extends manager_Manager {
14164
14442
  const attachCurve = (mapless, name)=>mapless?.use(CurveManager, name);
14165
14443
  const getCurve = (mapless, name)=>mapless?.get(CurveManager, name);
14166
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);
14167
14653
  class HeatmapManager extends manager_Manager {
14168
14654
  points = void 0;
14169
14655
  maxPoints;
@@ -15070,10 +15556,16 @@ class NewStationManager extends EmitManager {
15070
15556
  }
15071
15557
  isDefaultMultiSelect = false;
15072
15558
  applyTwiceSelectKey = 'id';
15559
+ dblClickEnabled = false;
15560
+ dblClickThreshold = 300;
15561
+ lastClickTime = 0;
15562
+ pendingSingleClickTimer = null;
15073
15563
  constructor(mapless, options){
15074
15564
  super(mapless, options, 'station');
15075
15565
  this.onInitialized();
15076
15566
  this.isDefaultMultiSelect = getOption('isDefaultMultiSelect', options, false);
15567
+ this.dblClickEnabled = getOption('dblClickEnabled', options, false);
15568
+ this.dblClickThreshold = getOption('dblClickThreshold', options, 300);
15077
15569
  this.setupClickHandler();
15078
15570
  this.setupHoverHandler();
15079
15571
  }
@@ -15525,7 +16017,7 @@ class NewStationManager extends EmitManager {
15525
16017
  });
15526
16018
  };
15527
16019
  setupClickHandler() {
15528
- const clickHandler = (e)=>{
16020
+ const handleDetailSingleClick = (e)=>{
15529
16021
  if (!this.selectable) return;
15530
16022
  if (e.features) {
15531
16023
  const currs = this.stations.filter((station)=>e.features?.some((f)=>f.properties?.id === station.id));
@@ -15572,10 +16064,7 @@ class NewStationManager extends EmitManager {
15572
16064
  }
15573
16065
  }
15574
16066
  };
15575
- this._listener?.addIdList('click', [
15576
- this.idHub?.detailLayerId
15577
- ], clickHandler);
15578
- const clickSimpleHandler = (e)=>{
16067
+ const handleSimpleSingleClick = (e)=>{
15579
16068
  if (!this.selectable) return;
15580
16069
  const feature = e.features?.[0];
15581
16070
  if (feature) {
@@ -15619,9 +16108,61 @@ class NewStationManager extends EmitManager {
15619
16108
  }
15620
16109
  }
15621
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
+ };
15622
16152
  this._listener?.addIdList('click', [
16153
+ this.idHub?.detailLayerId
16154
+ ], wrapWithDblClickDetection(handleDetailSingleClick, getDetailStations));
16155
+ this._listener?.addIdList('click', [
16156
+ this.idHub?.simpleLayerId
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,
15623
16164
  this.idHub?.simpleLayerId
15624
- ], clickSimpleHandler);
16165
+ ], preventZoomOnDblClick);
15625
16166
  }
15626
16167
  setupHoverHandler() {
15627
16168
  const enterHnadler = (e)=>{
@@ -15642,6 +16183,10 @@ class NewStationManager extends EmitManager {
15642
16183
  }
15643
16184
  destroy = ()=>{
15644
16185
  super.destroy();
16186
+ if (this.pendingSingleClickTimer) {
16187
+ clearTimeout(this.pendingSingleClickTimer);
16188
+ this.pendingSingleClickTimer = null;
16189
+ }
15645
16190
  this.stations = [];
15646
16191
  };
15647
16192
  }
@@ -23051,4 +23596,4 @@ const test2Point = (map)=>{
23051
23596
  end
23052
23597
  };
23053
23598
  };
23054
- 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, 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, 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, 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 };
@@ -15,8 +15,10 @@ export * from './extensions/types';
15
15
  export * from './lang';
16
16
  export * from './layer';
17
17
  export * from './mana/boundary';
18
+ export * from './mana/circle';
18
19
  export * from './mana/cluster';
19
20
  export * from './mana/curve';
21
+ export * from './mana/custom';
20
22
  export * from './mana/heatmap';
21
23
  export * from './mana/imagedata';
22
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,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,65 @@
1
+ import { type LngLatLike } from 'mapbox-gl';
2
+ import type { Mapless } from '..';
3
+ import type { IdHubType } from '../core/IdHub';
4
+ import { EmitManager } from '../core/manager';
5
+ import type { CircleManagerEvents, CircleManagerOptions } from '../types';
6
+ type CircleIdHubType = IdHubType & {
7
+ circleLayerId: string;
8
+ circleSourceId: string;
9
+ };
10
+ export default class CircleManager extends EmitManager<CircleManagerEvents, CircleIdHubType> {
11
+ private points;
12
+ private maxPoints;
13
+ private maxZoom;
14
+ private radius;
15
+ private fillColor;
16
+ private strokeColor;
17
+ private strokeWidth;
18
+ /** 最近一次 hover 传出的点的 id 集合,用于去重避免重复 emit */
19
+ private lastHoverIds;
20
+ /** 当前处于 hover 高亮态的 feature id 集合,用于鼠标移出后取消高亮 */
21
+ private hoveredIds;
22
+ constructor(mapless: Mapless, options?: CircleManagerOptions);
23
+ handleCoordSystemChange(_system: string | undefined): void;
24
+ createIdHub(_idHub?: IdHubType): void;
25
+ initLayers(): void;
26
+ private _updateDraw;
27
+ drawCircle(points: LngLatLike[]): void;
28
+ updateCircle(points: LngLatLike[], maxPoints?: number): void;
29
+ removeCircle(): void;
30
+ /** 设置 circle 半径 */
31
+ setRadius(radius: number): void;
32
+ /** 设置 circle 背景色 */
33
+ setFillColor(color: string): void;
34
+ /** 设置 circle 描边颜色 */
35
+ setStrokeColor(color: string): void;
36
+ /** 设置 circle 描边宽度 */
37
+ setStrokeWidth(width: number): void;
38
+ /**
39
+ * 重设半径 paint(保留 hover 放大效果)
40
+ * hover 状态由 feature-state 驱动,半径需用 case 表达式而非定值,
41
+ * 否则 setPaintProperty 会覆盖掉 hover 样式。
42
+ */
43
+ private _applyRadiusPaint;
44
+ /** 重设背景色 paint(保留 hover 加深效果) */
45
+ private _applyFillColorPaint;
46
+ /** 重设描边宽度 paint(保留 hover 加粗效果) */
47
+ private _applyStrokeWidthPaint;
48
+ /** 清除所有 hover 高亮态(鼠标移出 / 移除 / 销毁时调用) */
49
+ private _clearHoverState;
50
+ /**
51
+ * 悬停事件处理
52
+ * - mousemove:鼠标在 circle 上移动时,把当前命中的所有点(含重叠点)传出
53
+ * - mouseleave:鼠标离开 circle 时清空并传出空数组
54
+ * 注:mapbox 的 layer mousemove 事件会返回该位置命中的全部 feature,
55
+ * 因此天然支持“多个 circle 同时 hover”。这里对相同命中集合做去重,避免高频重复 emit。
56
+ */
57
+ private setupHoverHandler;
58
+ fitBounds(padding?: number): void;
59
+ destroy(): void;
60
+ }
61
+ export declare const attachCircle: (mapless: Mapless | undefined, name?: string, options?: CircleManagerOptions) => CircleManager | undefined;
62
+ export declare const getCircle: (mapless: Mapless | undefined | null, name?: string) => CircleManager | undefined;
63
+ export declare const detachCircle: (mapless: Mapless | undefined | null, name?: string) => boolean | undefined;
64
+ export {};
65
+ //# sourceMappingURL=circle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circle.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana/circle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACpD,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,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE1E,KAAK,eAAe,GAAG,SAAS,GAAG;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,WAAW,CACpD,mBAAmB,EACnB,eAAe,CAChB;IACC,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IAGxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAE5B,2CAA2C;IAC3C,OAAO,CAAC,YAAY,CAAgB;IAEpC,gDAAgD;IAChD,OAAO,CAAC,UAAU,CAAqB;gBAE3B,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,oBAAoB;IAoBnD,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAM1D,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS;IAY9B,UAAU;IAyCnB,OAAO,CAAC,WAAW;IA0BnB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE;IAK/B,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM;IAUrD,YAAY;IAMZ,mBAAmB;IACnB,SAAS,CAAC,MAAM,EAAE,MAAM;IAKxB,oBAAoB;IACpB,YAAY,CAAC,KAAK,EAAE,MAAM;IAK1B,qBAAqB;IACrB,cAAc,CAAC,KAAK,EAAE,MAAM;IAQ5B,qBAAqB;IACrB,cAAc,CAAC,KAAK,EAAE,MAAM;IAK5B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAWzB,iCAAiC;IACjC,OAAO,CAAC,oBAAoB;IAW5B,kCAAkC;IAClC,OAAO,CAAC,sBAAsB;IAW9B,wCAAwC;IACxC,OAAO,CAAC,gBAAgB;IASxB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAsEhB,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM;IAS1B,OAAO;CAKjB;AAED,eAAO,MAAM,YAAY,GACvB,SAAS,OAAO,GAAG,SAAS,EAC5B,OAAO,MAAM,EACb,UAAU,oBAAoB,8BACe,CAAC;AAChD,eAAO,MAAM,SAAS,GAAI,SAAS,OAAO,GAAG,SAAS,GAAG,IAAI,EAAE,OAAO,MAAM,8BACzC,CAAC;AACpC,eAAO,MAAM,YAAY,GACvB,SAAS,OAAO,GAAG,SAAS,GAAG,IAAI,EACnC,OAAO,MAAM,wBACyB,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
- private isDefaultMultiSelect;
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,CAAS;IAErC,OAAO,CAAC,mBAAmB,CAAQ;gBAGvB,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc;IAc7C,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAM1D,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS;IAe9B,UAAU;IAsIV,cAAc,GAAI,KAAK,MAAM,UA8BpC;IAEF,OAAO,CAAC,WAAW,CAajB;IAEF,WAAW,GAAI,UAAU,OAAO,EAAE;;;;yBAoBlB,CAAC,MAAM,EAAE,MAAM,CAAC;;;;;;;;;;;QAa9B;IAEF,YAAY,GACV,UAAU,OAAO,EAAE,EACnB,cAAc,MAAM,EAAE,EACtB,+BAA6B,UAmB7B;IAEF,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE;IAgBlC,kBAAkB,CAChB,WAAW,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,EACnC,oBAAoB,UAAO,EAC3B,OAAO,UAAO;IAkBhB,OAAO,CAAC,iBAAiB,CAAS;IAElC,mBAAmB,GAAI,kBAAkB,OAAO,UAW9C;IAEO,QAAQ;IAKR,SAAS,CAChB,WAAW,UAAQ,EACnB,OAAO,SAAK,EACZ,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GACA,IAAI;IA6BP,SAAS,GACP,MAAM,kBAAkB,EACxB,MAAM,OAAO,EAAE,EACf,aAAa,MAAM,UAInB;IAGF,OAAO,CAAC,iBAAiB;IA6HzB,OAAO,CAAC,iBAAiB;IAsBhB,OAAO,aAGd;CACH;AAED,eAAe,iBAAiB,CAAC;AAEjC,eAAO,MAAM,gBAAgB,GAC3B,SAAS,OAAO,EAChB,OAAO,MAAM,EACb,UAAU,wBAAwB,kCACe,CAAC;AACpD,eAAO,MAAM,aAAa,GAAI,SAAS,OAAO,EAAE,OAAO,MAAM,kCACtB,CAAC;AACxC,eAAO,MAAM,gBAAgB,GAAI,SAAS,OAAO,EAAE,OAAO,MAAM,wBACvB,CAAC"}
1
+ {"version":3,"file":"newstation.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana/newstation.ts"],"names":[],"mappings":"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"}
@@ -57,11 +57,38 @@ 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];
75
+ };
76
+ /**
77
+ * circle 图层上单个点的信息,由 hover 事件传出
78
+ */
79
+ export type CirclePoint = {
80
+ /** 点的稳定 id(drawCircle 时按索引生成) */
81
+ id: string;
82
+ /** 该点在传入点集中的索引 */
83
+ index: number;
84
+ /** 经度 */
85
+ longitude: number;
86
+ /** 纬度 */
87
+ latitude: number;
88
+ };
89
+ export type CircleManagerEvents = {
90
+ /** 鼠标悬停时触发,传入当前命中的所有点(支持多个 circle 同时 hover) */
91
+ circleHover: [CirclePoint[]];
65
92
  };
66
93
  export type StepManagerEvents = {
67
94
  stepsSelected: [Step[]];
@@ -80,6 +107,15 @@ export type Line = {
80
107
  };
81
108
  export type NewStationManagerOptions = ManagerOptions & {
82
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;
83
119
  };
84
120
  export type LineManagerOptions = ManagerOptions & {
85
121
  showText?: boolean;
@@ -127,6 +163,19 @@ export type HeatmapManagerOptions = ManagerOptions & {
127
163
  /** 热力图可见的最大缩放级别,超过此级别图层不再渲染。默认 24 */
128
164
  maxZoom?: number;
129
165
  };
166
+ export type CircleManagerOptions = ManagerOptions & {
167
+ maxPoints?: number;
168
+ /** circle 图层可见的最大缩放级别,超过此级别图层不再渲染。默认 24 */
169
+ maxZoom?: number;
170
+ /** circle 半径(像素),默认 8 */
171
+ radius?: number;
172
+ /** circle 背景色,默认 rgba(24, 144, 255, 0.6) */
173
+ fillColor?: string;
174
+ /** circle 描边颜色,默认 #1890ff */
175
+ strokeColor?: string;
176
+ /** circle 描边宽度(像素),默认 2 */
177
+ strokeWidth?: number;
178
+ };
130
179
  export interface BoundaryOptions {
131
180
  data: GeoJSON.FeatureCollection;
132
181
  strokeColor?: string;
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mapless/core",
3
- "version": "1.0.28",
3
+ "version": "1.0.30",
4
4
  "type": "module",
5
5
  "description": "Mapbox wrapper library without React dependencies",
6
6
  "source": "src/index.ts",