@gisfun/maplibre-gl-components 0.15.0-alpha.0
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/LICENSE +21 -0
- package/README.md +1960 -0
- package/dist/ControlGrid-DN5md8hp.cjs +19636 -0
- package/dist/ControlGrid-rVNG7B9O.js +170422 -0
- package/dist/DuckDBConverter-B98M0DFs.cjs +23 -0
- package/dist/DuckDBConverter-RPq48-t0.js +434 -0
- package/dist/ShapefileConverter-AjbEjEyq.cjs +1 -0
- package/dist/ShapefileConverter-trvt8J3z.js +125 -0
- package/dist/decoder-CLokFc0V.js +8 -0
- package/dist/decoder-D9LU4bUo.cjs +1 -0
- package/dist/deflate-BA1jZeSX.js +10 -0
- package/dist/deflate-DEdCz12a.cjs +1 -0
- package/dist/geojson-BQSVgKFt.cjs +1 -0
- package/dist/geojson-BSUuDj5k.js +2551 -0
- package/dist/geotiff-De1w1lBy.cjs +8 -0
- package/dist/geotiff-o_Fq1Na4.js +3108 -0
- package/dist/index-8ZZtuDTp.js +705 -0
- package/dist/index-B-Nr9y7J.cjs +84 -0
- package/dist/index-B5NoFrpY.js +8892 -0
- package/dist/index-Bi1MMPUx.js +4163 -0
- package/dist/index-C9fk_HKR.js +167 -0
- package/dist/index-CBBRBJvR.cjs +274 -0
- package/dist/index-CZxPF1qt.js +4 -0
- package/dist/index-CiDPSJ9T.cjs +1 -0
- package/dist/index-CjM_nbxd.cjs +107 -0
- package/dist/index-DQXdX5y1.js +4666 -0
- package/dist/index-Dh1kpCb6.cjs +1 -0
- package/dist/index-IrsIiQNM.cjs +4 -0
- package/dist/index.cjs +3819 -0
- package/dist/index.mjs +19580 -0
- package/dist/jpeg-CF9OGQg_.js +533 -0
- package/dist/jpeg-JSQOxGHy.cjs +1 -0
- package/dist/lerc-7LlQoT6u.js +1032 -0
- package/dist/lerc-BIsodce9.cjs +1 -0
- package/dist/lzw-BZniWIYG.js +84 -0
- package/dist/lzw-BhML-BvT.cjs +1 -0
- package/dist/main-dist-Bymiy5aM.cjs +2 -0
- package/dist/main-dist-Cv8AKwrY.js +629 -0
- package/dist/maplibre-geoman.es-Bxdg-2EU.cjs +129 -0
- package/dist/maplibre-geoman.es-CFgM2ajb.js +22827 -0
- package/dist/maplibre-gl-components.css +1 -0
- package/dist/packbits-B9b7gX2c.cjs +1 -0
- package/dist/packbits-DWY5O-FG.js +24 -0
- package/dist/pako.esm-Bx5X36Wo.js +1074 -0
- package/dist/pako.esm-DZC2QrbJ.cjs +1 -0
- package/dist/raw-C3ARbSFo.cjs +1 -0
- package/dist/raw-DUslI1gr.js +9 -0
- package/dist/react.cjs +1 -0
- package/dist/react.mjs +1306 -0
- package/dist/types/index.d.ts +44 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/lib/adapters/AddVectorAdapter.d.ts +66 -0
- package/dist/types/lib/adapters/AddVectorAdapter.d.ts.map +1 -0
- package/dist/types/lib/adapters/CogLayerAdapter.d.ts +126 -0
- package/dist/types/lib/adapters/CogLayerAdapter.d.ts.map +1 -0
- package/dist/types/lib/adapters/PMTilesLayerAdapter.d.ts +78 -0
- package/dist/types/lib/adapters/PMTilesLayerAdapter.d.ts.map +1 -0
- package/dist/types/lib/adapters/StacLayerAdapter.d.ts +71 -0
- package/dist/types/lib/adapters/StacLayerAdapter.d.ts.map +1 -0
- package/dist/types/lib/adapters/ZarrLayerAdapter.d.ts +72 -0
- package/dist/types/lib/adapters/ZarrLayerAdapter.d.ts.map +1 -0
- package/dist/types/lib/adapters/index.d.ts +7 -0
- package/dist/types/lib/adapters/index.d.ts.map +1 -0
- package/dist/types/lib/addControlGrid.d.ts +80 -0
- package/dist/types/lib/addControlGrid.d.ts.map +1 -0
- package/dist/types/lib/colormaps/diverging.d.ts +30 -0
- package/dist/types/lib/colormaps/diverging.d.ts.map +1 -0
- package/dist/types/lib/colormaps/index.d.ts +32 -0
- package/dist/types/lib/colormaps/index.d.ts.map +1 -0
- package/dist/types/lib/colormaps/misc.d.ts +38 -0
- package/dist/types/lib/colormaps/misc.d.ts.map +1 -0
- package/dist/types/lib/colormaps/sequential.d.ts +22 -0
- package/dist/types/lib/colormaps/sequential.d.ts.map +1 -0
- package/dist/types/lib/converters/DuckDBConverter.d.ts +112 -0
- package/dist/types/lib/converters/DuckDBConverter.d.ts.map +1 -0
- package/dist/types/lib/converters/ShapefileConverter.d.ts +56 -0
- package/dist/types/lib/converters/ShapefileConverter.d.ts.map +1 -0
- package/dist/types/lib/converters/index.d.ts +8 -0
- package/dist/types/lib/converters/index.d.ts.map +1 -0
- package/dist/types/lib/converters/types.d.ts +75 -0
- package/dist/types/lib/converters/types.d.ts.map +1 -0
- package/dist/types/lib/core/AddVector.d.ts +116 -0
- package/dist/types/lib/core/AddVector.d.ts.map +1 -0
- package/dist/types/lib/core/Basemap.d.ts +206 -0
- package/dist/types/lib/core/Basemap.d.ts.map +1 -0
- package/dist/types/lib/core/BasemapReact.d.ts +32 -0
- package/dist/types/lib/core/BasemapReact.d.ts.map +1 -0
- package/dist/types/lib/core/BookmarkControl.d.ts +180 -0
- package/dist/types/lib/core/BookmarkControl.d.ts.map +1 -0
- package/dist/types/lib/core/ChoroplethControl.d.ts +105 -0
- package/dist/types/lib/core/ChoroplethControl.d.ts.map +1 -0
- package/dist/types/lib/core/CogLayer.d.ts +139 -0
- package/dist/types/lib/core/CogLayer.d.ts.map +1 -0
- package/dist/types/lib/core/CogLayerReact.d.ts +32 -0
- package/dist/types/lib/core/CogLayerReact.d.ts.map +1 -0
- package/dist/types/lib/core/Colorbar.d.ts +133 -0
- package/dist/types/lib/core/Colorbar.d.ts.map +1 -0
- package/dist/types/lib/core/ColorbarGuiControl.d.ts +79 -0
- package/dist/types/lib/core/ColorbarGuiControl.d.ts.map +1 -0
- package/dist/types/lib/core/ColorbarReact.d.ts +34 -0
- package/dist/types/lib/core/ColorbarReact.d.ts.map +1 -0
- package/dist/types/lib/core/ControlGrid.d.ts +125 -0
- package/dist/types/lib/core/ControlGrid.d.ts.map +1 -0
- package/dist/types/lib/core/ControlGridReact.d.ts +32 -0
- package/dist/types/lib/core/ControlGridReact.d.ts.map +1 -0
- package/dist/types/lib/core/HtmlControl.d.ts +140 -0
- package/dist/types/lib/core/HtmlControl.d.ts.map +1 -0
- package/dist/types/lib/core/HtmlControlReact.d.ts +32 -0
- package/dist/types/lib/core/HtmlControlReact.d.ts.map +1 -0
- package/dist/types/lib/core/HtmlGuiControl.d.ts +68 -0
- package/dist/types/lib/core/HtmlGuiControl.d.ts.map +1 -0
- package/dist/types/lib/core/InspectControl.d.ts +202 -0
- package/dist/types/lib/core/InspectControl.d.ts.map +1 -0
- package/dist/types/lib/core/InspectControlReact.d.ts +32 -0
- package/dist/types/lib/core/InspectControlReact.d.ts.map +1 -0
- package/dist/types/lib/core/Legend.d.ts +142 -0
- package/dist/types/lib/core/Legend.d.ts.map +1 -0
- package/dist/types/lib/core/LegendGuiControl.d.ts +69 -0
- package/dist/types/lib/core/LegendGuiControl.d.ts.map +1 -0
- package/dist/types/lib/core/LegendReact.d.ts +34 -0
- package/dist/types/lib/core/LegendReact.d.ts.map +1 -0
- package/dist/types/lib/core/MeasureControl.d.ts +211 -0
- package/dist/types/lib/core/MeasureControl.d.ts.map +1 -0
- package/dist/types/lib/core/MinimapControl.d.ts +77 -0
- package/dist/types/lib/core/MinimapControl.d.ts.map +1 -0
- package/dist/types/lib/core/MinimapControlReact.d.ts +32 -0
- package/dist/types/lib/core/MinimapControlReact.d.ts.map +1 -0
- package/dist/types/lib/core/PMTilesLayer.d.ts +119 -0
- package/dist/types/lib/core/PMTilesLayer.d.ts.map +1 -0
- package/dist/types/lib/core/PrintControl.d.ts +226 -0
- package/dist/types/lib/core/PrintControl.d.ts.map +1 -0
- package/dist/types/lib/core/SearchControl.d.ts +172 -0
- package/dist/types/lib/core/SearchControl.d.ts.map +1 -0
- package/dist/types/lib/core/SearchControlReact.d.ts +32 -0
- package/dist/types/lib/core/SearchControlReact.d.ts.map +1 -0
- package/dist/types/lib/core/StacLayer.d.ts +107 -0
- package/dist/types/lib/core/StacLayer.d.ts.map +1 -0
- package/dist/types/lib/core/StacSearch.d.ts +109 -0
- package/dist/types/lib/core/StacSearch.d.ts.map +1 -0
- package/dist/types/lib/core/Terrain.d.ts +165 -0
- package/dist/types/lib/core/Terrain.d.ts.map +1 -0
- package/dist/types/lib/core/TerrainReact.d.ts +32 -0
- package/dist/types/lib/core/TerrainReact.d.ts.map +1 -0
- package/dist/types/lib/core/VectorDataset.d.ts +228 -0
- package/dist/types/lib/core/VectorDataset.d.ts.map +1 -0
- package/dist/types/lib/core/VectorDatasetReact.d.ts +31 -0
- package/dist/types/lib/core/VectorDatasetReact.d.ts.map +1 -0
- package/dist/types/lib/core/ViewStateControl.d.ts +205 -0
- package/dist/types/lib/core/ViewStateControl.d.ts.map +1 -0
- package/dist/types/lib/core/ViewStateControlReact.d.ts +32 -0
- package/dist/types/lib/core/ViewStateControlReact.d.ts.map +1 -0
- package/dist/types/lib/core/ZarrLayer.d.ts +110 -0
- package/dist/types/lib/core/ZarrLayer.d.ts.map +1 -0
- package/dist/types/lib/core/types.d.ts +2793 -0
- package/dist/types/lib/core/types.d.ts.map +1 -0
- package/dist/types/lib/hooks/index.d.ts +13 -0
- package/dist/types/lib/hooks/index.d.ts.map +1 -0
- package/dist/types/lib/hooks/useBasemap.d.ts +43 -0
- package/dist/types/lib/hooks/useBasemap.d.ts.map +1 -0
- package/dist/types/lib/hooks/useCogLayer.d.ts +44 -0
- package/dist/types/lib/hooks/useCogLayer.d.ts.map +1 -0
- package/dist/types/lib/hooks/useColorbar.d.ts +36 -0
- package/dist/types/lib/hooks/useColorbar.d.ts.map +1 -0
- package/dist/types/lib/hooks/useControlGrid.d.ts +41 -0
- package/dist/types/lib/hooks/useControlGrid.d.ts.map +1 -0
- package/dist/types/lib/hooks/useHtmlControl.d.ts +39 -0
- package/dist/types/lib/hooks/useHtmlControl.d.ts.map +1 -0
- package/dist/types/lib/hooks/useInspectControl.d.ts +49 -0
- package/dist/types/lib/hooks/useInspectControl.d.ts.map +1 -0
- package/dist/types/lib/hooks/useLegend.d.ts +41 -0
- package/dist/types/lib/hooks/useLegend.d.ts.map +1 -0
- package/dist/types/lib/hooks/useMinimapControl.d.ts +35 -0
- package/dist/types/lib/hooks/useMinimapControl.d.ts.map +1 -0
- package/dist/types/lib/hooks/useSearchControl.d.ts +43 -0
- package/dist/types/lib/hooks/useSearchControl.d.ts.map +1 -0
- package/dist/types/lib/hooks/useTerrain.d.ts +43 -0
- package/dist/types/lib/hooks/useTerrain.d.ts.map +1 -0
- package/dist/types/lib/hooks/useVectorDataset.d.ts +35 -0
- package/dist/types/lib/hooks/useVectorDataset.d.ts.map +1 -0
- package/dist/types/lib/hooks/useViewState.d.ts +43 -0
- package/dist/types/lib/hooks/useViewState.d.ts.map +1 -0
- package/dist/types/lib/utils/color.d.ts +47 -0
- package/dist/types/lib/utils/color.d.ts.map +1 -0
- package/dist/types/lib/utils/fileHelpers.d.ts +207 -0
- package/dist/types/lib/utils/fileHelpers.d.ts.map +1 -0
- package/dist/types/lib/utils/helpers.d.ts +48 -0
- package/dist/types/lib/utils/helpers.d.ts.map +1 -0
- package/dist/types/lib/utils/index.d.ts +4 -0
- package/dist/types/lib/utils/index.d.ts.map +1 -0
- package/dist/types/lib/utils/providers.d.ts +46 -0
- package/dist/types/lib/utils/providers.d.ts.map +1 -0
- package/dist/types/react.d.ts +15 -0
- package/dist/types/react.d.ts.map +1 -0
- package/dist/webimage-CBRffWZD.cjs +1 -0
- package/dist/webimage-ibSPOLHJ.js +19 -0
- package/package.json +137 -0
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { IControl, Map as MapLibreMap, ControlPosition } from 'maplibre-gl';
|
|
2
|
+
import { MeasureControlOptions, MeasureControlState, MeasureEvent, MeasureEventHandler, MeasureMode, Measurement, DistanceUnit, AreaUnit } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* A control for measuring distances and areas on the map.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* const measureControl = new MeasureControl({
|
|
9
|
+
* defaultMode: 'distance',
|
|
10
|
+
* distanceUnit: 'kilometers',
|
|
11
|
+
* });
|
|
12
|
+
* map.addControl(measureControl, 'top-right');
|
|
13
|
+
*
|
|
14
|
+
* measureControl.on('drawend', (event) => {
|
|
15
|
+
* console.log('Measurement:', event.measurement);
|
|
16
|
+
* });
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare class MeasureControl implements IControl {
|
|
20
|
+
private _container?;
|
|
21
|
+
private _button?;
|
|
22
|
+
private _panel?;
|
|
23
|
+
private _options;
|
|
24
|
+
private _state;
|
|
25
|
+
private _eventHandlers;
|
|
26
|
+
private _map?;
|
|
27
|
+
private _handleZoom?;
|
|
28
|
+
private _zoomVisible;
|
|
29
|
+
private _sourceId;
|
|
30
|
+
private _lineLayerId;
|
|
31
|
+
private _fillLayerId;
|
|
32
|
+
private _resultValueEl?;
|
|
33
|
+
private _resultUnitEl?;
|
|
34
|
+
private _segmentListEl?;
|
|
35
|
+
private _instructionsEl?;
|
|
36
|
+
private _measurementsListEl?;
|
|
37
|
+
private _boundClickHandler?;
|
|
38
|
+
private _boundMoveHandler?;
|
|
39
|
+
private _boundDblClickHandler?;
|
|
40
|
+
private _boundKeyHandler?;
|
|
41
|
+
private _markers;
|
|
42
|
+
/**
|
|
43
|
+
* Creates a new MeasureControl instance.
|
|
44
|
+
*/
|
|
45
|
+
constructor(options?: MeasureControlOptions);
|
|
46
|
+
/**
|
|
47
|
+
* Called when the control is added to the map.
|
|
48
|
+
*/
|
|
49
|
+
onAdd(map: MapLibreMap): HTMLElement;
|
|
50
|
+
/**
|
|
51
|
+
* Called when the control is removed from the map.
|
|
52
|
+
*/
|
|
53
|
+
onRemove(): void;
|
|
54
|
+
/**
|
|
55
|
+
* Get the default position for this control.
|
|
56
|
+
*/
|
|
57
|
+
getDefaultPosition(): ControlPosition;
|
|
58
|
+
/**
|
|
59
|
+
* Register an event handler.
|
|
60
|
+
*/
|
|
61
|
+
on(event: MeasureEvent, handler: MeasureEventHandler): this;
|
|
62
|
+
/**
|
|
63
|
+
* Remove an event handler.
|
|
64
|
+
*/
|
|
65
|
+
off(event: MeasureEvent, handler: MeasureEventHandler): this;
|
|
66
|
+
/**
|
|
67
|
+
* Emit an event to registered handlers.
|
|
68
|
+
*/
|
|
69
|
+
private _emit;
|
|
70
|
+
/**
|
|
71
|
+
* Create the control container.
|
|
72
|
+
*/
|
|
73
|
+
private _createContainer;
|
|
74
|
+
/**
|
|
75
|
+
* Create the panel content.
|
|
76
|
+
*/
|
|
77
|
+
private _createPanel;
|
|
78
|
+
/**
|
|
79
|
+
* Update unit dropdown options based on current mode.
|
|
80
|
+
*/
|
|
81
|
+
private _updateUnitOptions;
|
|
82
|
+
/**
|
|
83
|
+
* Get the current unit label.
|
|
84
|
+
*/
|
|
85
|
+
private _getCurrentUnitLabel;
|
|
86
|
+
/**
|
|
87
|
+
* Expand the panel.
|
|
88
|
+
*/
|
|
89
|
+
expand(): void;
|
|
90
|
+
/**
|
|
91
|
+
* Collapse the panel.
|
|
92
|
+
*/
|
|
93
|
+
collapse(): void;
|
|
94
|
+
/**
|
|
95
|
+
* Toggle the panel visibility.
|
|
96
|
+
*/
|
|
97
|
+
private _togglePanel;
|
|
98
|
+
/**
|
|
99
|
+
* Show the panel.
|
|
100
|
+
*/
|
|
101
|
+
private _showPanel;
|
|
102
|
+
/**
|
|
103
|
+
* Hide the panel.
|
|
104
|
+
*/
|
|
105
|
+
private _hidePanel;
|
|
106
|
+
/**
|
|
107
|
+
* Set the measurement mode.
|
|
108
|
+
*/
|
|
109
|
+
private _setMode;
|
|
110
|
+
/**
|
|
111
|
+
* Set up map sources and layers for rendering measurements.
|
|
112
|
+
*/
|
|
113
|
+
private _setupMapSources;
|
|
114
|
+
/**
|
|
115
|
+
* Clean up map sources and layers.
|
|
116
|
+
*/
|
|
117
|
+
private _cleanupMapSources;
|
|
118
|
+
/**
|
|
119
|
+
* Start drawing a measurement.
|
|
120
|
+
*/
|
|
121
|
+
private _startDrawing;
|
|
122
|
+
/**
|
|
123
|
+
* Stop drawing (cleanup event handlers).
|
|
124
|
+
*/
|
|
125
|
+
private _stopDrawing;
|
|
126
|
+
/**
|
|
127
|
+
* Handle map click during drawing.
|
|
128
|
+
*/
|
|
129
|
+
private _handleClick;
|
|
130
|
+
/**
|
|
131
|
+
* Handle mouse move during drawing.
|
|
132
|
+
*/
|
|
133
|
+
private _handleMouseMove;
|
|
134
|
+
/**
|
|
135
|
+
* Finish the current drawing.
|
|
136
|
+
*/
|
|
137
|
+
private _finishDrawing;
|
|
138
|
+
/**
|
|
139
|
+
* Cancel the current drawing.
|
|
140
|
+
*/
|
|
141
|
+
private _cancelDrawing;
|
|
142
|
+
/**
|
|
143
|
+
* Update the current measurement calculation.
|
|
144
|
+
*/
|
|
145
|
+
private _updateMeasurement;
|
|
146
|
+
/**
|
|
147
|
+
* Update the result display.
|
|
148
|
+
*/
|
|
149
|
+
private _updateResult;
|
|
150
|
+
/**
|
|
151
|
+
* Update the map geometry (lines/polygons).
|
|
152
|
+
*/
|
|
153
|
+
private _updateMapGeometry;
|
|
154
|
+
/**
|
|
155
|
+
* Add a marker for a vertex.
|
|
156
|
+
*/
|
|
157
|
+
private _addMarker;
|
|
158
|
+
/**
|
|
159
|
+
* Clear all markers.
|
|
160
|
+
*/
|
|
161
|
+
private _clearMarkers;
|
|
162
|
+
/**
|
|
163
|
+
* Update the measurements list display.
|
|
164
|
+
*/
|
|
165
|
+
private _updateMeasurementsList;
|
|
166
|
+
/**
|
|
167
|
+
* Remove a measurement by ID.
|
|
168
|
+
*/
|
|
169
|
+
private _removeMeasurement;
|
|
170
|
+
/**
|
|
171
|
+
* Clear all measurements.
|
|
172
|
+
*/
|
|
173
|
+
private _clearAll;
|
|
174
|
+
/**
|
|
175
|
+
* Set up zoom-based visibility handling.
|
|
176
|
+
*/
|
|
177
|
+
private _setupZoomHandler;
|
|
178
|
+
/**
|
|
179
|
+
* Show the control.
|
|
180
|
+
*/
|
|
181
|
+
show(): this;
|
|
182
|
+
/**
|
|
183
|
+
* Hide the control.
|
|
184
|
+
*/
|
|
185
|
+
hide(): this;
|
|
186
|
+
/**
|
|
187
|
+
* Get the current state.
|
|
188
|
+
*/
|
|
189
|
+
getState(): MeasureControlState;
|
|
190
|
+
/**
|
|
191
|
+
* Get all measurements.
|
|
192
|
+
*/
|
|
193
|
+
getMeasurements(): Measurement[];
|
|
194
|
+
/**
|
|
195
|
+
* Set the measurement mode.
|
|
196
|
+
*/
|
|
197
|
+
setMode(mode: MeasureMode): this;
|
|
198
|
+
/**
|
|
199
|
+
* Set the distance unit.
|
|
200
|
+
*/
|
|
201
|
+
setDistanceUnit(unit: DistanceUnit): this;
|
|
202
|
+
/**
|
|
203
|
+
* Set the area unit.
|
|
204
|
+
*/
|
|
205
|
+
setAreaUnit(unit: AreaUnit): this;
|
|
206
|
+
/**
|
|
207
|
+
* Clear all measurements.
|
|
208
|
+
*/
|
|
209
|
+
clear(): this;
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=MeasureControl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeasureControl.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/MeasureControl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { IControl, Map as MapLibreMap, ControlPosition } from 'maplibre-gl';
|
|
2
|
+
import { MinimapControlOptions, MinimapControlState, MinimapEvent, MinimapEventHandler } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* A control that displays a small overview map showing the current viewport extent.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* const minimap = new MinimapControl({
|
|
9
|
+
* width: 250,
|
|
10
|
+
* height: 180,
|
|
11
|
+
* zoomOffset: -5,
|
|
12
|
+
* interactive: true,
|
|
13
|
+
* });
|
|
14
|
+
* map.addControl(minimap, 'bottom-left');
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare class MinimapControl implements IControl {
|
|
18
|
+
private _container?;
|
|
19
|
+
private _button?;
|
|
20
|
+
private _panel?;
|
|
21
|
+
private _options;
|
|
22
|
+
private _state;
|
|
23
|
+
private _eventHandlers;
|
|
24
|
+
private _map?;
|
|
25
|
+
private _minimapMap?;
|
|
26
|
+
private _handleMove?;
|
|
27
|
+
private _handleZoom?;
|
|
28
|
+
private _zoomVisible;
|
|
29
|
+
private _isDragging;
|
|
30
|
+
private _dragStartLngLat?;
|
|
31
|
+
private _dragCleanup?;
|
|
32
|
+
constructor(options?: MinimapControlOptions);
|
|
33
|
+
getDefaultPosition(): ControlPosition;
|
|
34
|
+
onAdd(map: MapLibreMap): HTMLElement;
|
|
35
|
+
onRemove(): void;
|
|
36
|
+
/**
|
|
37
|
+
* Register an event handler.
|
|
38
|
+
*/
|
|
39
|
+
on(event: MinimapEvent, handler: MinimapEventHandler): this;
|
|
40
|
+
/**
|
|
41
|
+
* Remove an event handler.
|
|
42
|
+
*/
|
|
43
|
+
off(event: MinimapEvent, handler: MinimapEventHandler): this;
|
|
44
|
+
private _emit;
|
|
45
|
+
private _createContainer;
|
|
46
|
+
private _showPanel;
|
|
47
|
+
private _hidePanel;
|
|
48
|
+
private _syncMinimap;
|
|
49
|
+
private _addViewportRect;
|
|
50
|
+
private _updateViewportRect;
|
|
51
|
+
private _checkZoomVisibility;
|
|
52
|
+
/**
|
|
53
|
+
* Show the control.
|
|
54
|
+
*/
|
|
55
|
+
show(): this;
|
|
56
|
+
/**
|
|
57
|
+
* Hide the control.
|
|
58
|
+
*/
|
|
59
|
+
hide(): this;
|
|
60
|
+
/**
|
|
61
|
+
* Expand the minimap (show the panel).
|
|
62
|
+
*/
|
|
63
|
+
expand(): this;
|
|
64
|
+
/**
|
|
65
|
+
* Collapse the minimap (hide the panel).
|
|
66
|
+
*/
|
|
67
|
+
collapse(): this;
|
|
68
|
+
/**
|
|
69
|
+
* Toggle the collapsed state.
|
|
70
|
+
*/
|
|
71
|
+
toggle(): this;
|
|
72
|
+
/**
|
|
73
|
+
* Get the current state.
|
|
74
|
+
*/
|
|
75
|
+
getState(): MinimapControlState;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=MinimapControl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MinimapControl.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/MinimapControl.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EACV,QAAQ,EACR,GAAG,IAAI,WAAW,EAClB,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACpB,MAAM,SAAS,CAAC;AA+BjB;;;;;;;;;;;;;GAaG;AACH,qBAAa,cAAe,YAAW,QAAQ;IAC7C,OAAO,CAAC,UAAU,CAAC,CAAc;IACjC,OAAO,CAAC,OAAO,CAAC,CAAoB;IACpC,OAAO,CAAC,MAAM,CAAC,CAAc;IAC7B,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,cAAc,CACV;IACZ,OAAO,CAAC,IAAI,CAAC,CAAc;IAC3B,OAAO,CAAC,WAAW,CAAC,CAAiB;IACrC,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,gBAAgB,CAAC,CAA+B;IACxD,OAAO,CAAC,YAAY,CAAC,CAAa;gBAEtB,OAAO,CAAC,EAAE,qBAAqB;IAQ3C,kBAAkB,IAAI,eAAe;IAIrC,KAAK,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW;IAoBpC,QAAQ,IAAI,IAAI;IA0BhB;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAQ3D;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAK5D,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,UAAU;IA2IlB,OAAO,CAAC,UAAU;IAqBlB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,gBAAgB;IAiCxB,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,oBAAoB;IAY5B;;OAEG;IACH,IAAI,IAAI,IAAI;IASZ;;OAEG;IACH,IAAI,IAAI,IAAI;IASZ;;OAEG;IACH,MAAM,IAAI,IAAI;IAQd;;OAEG;IACH,QAAQ,IAAI,IAAI;IAQhB;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACH,QAAQ,IAAI,mBAAmB;CAGhC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { MinimapControlReactProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* React wrapper component for MinimapControl.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```tsx
|
|
7
|
+
* import { MinimapControlReact } from 'maplibre-gl-components/react';
|
|
8
|
+
*
|
|
9
|
+
* function MyMap() {
|
|
10
|
+
* const [map, setMap] = useState<Map | null>(null);
|
|
11
|
+
*
|
|
12
|
+
* return (
|
|
13
|
+
* <>
|
|
14
|
+
* <div ref={mapContainer} />
|
|
15
|
+
* {map && (
|
|
16
|
+
* <MinimapControlReact
|
|
17
|
+
* map={map}
|
|
18
|
+
* width={250}
|
|
19
|
+
* height={180}
|
|
20
|
+
* interactive={true}
|
|
21
|
+
* />
|
|
22
|
+
* )}
|
|
23
|
+
* </>
|
|
24
|
+
* );
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @param props - Component props including map instance and minimap options.
|
|
29
|
+
* @returns null - This component renders nothing directly.
|
|
30
|
+
*/
|
|
31
|
+
export declare function MinimapControlReact({ map, onStateChange, position, ...options }: MinimapControlReactProps): null;
|
|
32
|
+
//# sourceMappingURL=MinimapControlReact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MinimapControlReact.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/MinimapControlReact.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAuB,MAAM,SAAS,CAAC;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,GAAG,EACH,aAAa,EACb,QAAwB,EACxB,GAAG,OAAO,EACX,EAAE,wBAAwB,GAAG,IAAI,CA8BjC"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { IControl, Map as MapLibreMap } from 'maplibre-gl';
|
|
2
|
+
import { PMTilesLayerControlOptions, PMTilesLayerControlState, PMTilesLayerEvent, PMTilesLayerEventHandler } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* A control for adding PMTiles layers to the map.
|
|
5
|
+
*
|
|
6
|
+
* Supports both vector and raster PMTiles files.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* const pmtilesControl = new PMTilesLayerControl({
|
|
11
|
+
* defaultUrl: 'https://example.com/tiles.pmtiles',
|
|
12
|
+
* loadDefaultUrl: true,
|
|
13
|
+
* });
|
|
14
|
+
* map.addControl(pmtilesControl, 'top-right');
|
|
15
|
+
*
|
|
16
|
+
* pmtilesControl.on('layeradd', (event) => {
|
|
17
|
+
* console.log('PMTiles layer added:', event.url);
|
|
18
|
+
* });
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare class PMTilesLayerControl implements IControl {
|
|
22
|
+
private _container?;
|
|
23
|
+
private _button?;
|
|
24
|
+
private _panel?;
|
|
25
|
+
private _options;
|
|
26
|
+
private _state;
|
|
27
|
+
private _eventHandlers;
|
|
28
|
+
private _map?;
|
|
29
|
+
private _handleZoom?;
|
|
30
|
+
private _zoomVisible;
|
|
31
|
+
private _pmtilesLayers;
|
|
32
|
+
private _layerCounter;
|
|
33
|
+
private _protocolRegistered;
|
|
34
|
+
private _protocol?;
|
|
35
|
+
private _popup?;
|
|
36
|
+
private _clickHandler?;
|
|
37
|
+
constructor(options?: PMTilesLayerControlOptions);
|
|
38
|
+
onAdd(map: MapLibreMap): HTMLElement;
|
|
39
|
+
onRemove(): void;
|
|
40
|
+
show(): void;
|
|
41
|
+
hide(): void;
|
|
42
|
+
expand(): void;
|
|
43
|
+
collapse(): void;
|
|
44
|
+
toggle(): void;
|
|
45
|
+
getState(): PMTilesLayerControlState;
|
|
46
|
+
update(options: Partial<PMTilesLayerControlOptions>): void;
|
|
47
|
+
on(event: PMTilesLayerEvent, handler: PMTilesLayerEventHandler): void;
|
|
48
|
+
off(event: PMTilesLayerEvent, handler: PMTilesLayerEventHandler): void;
|
|
49
|
+
/**
|
|
50
|
+
* Programmatically add a PMTiles layer.
|
|
51
|
+
*/
|
|
52
|
+
addLayer(url?: string): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Programmatically remove a PMTiles layer by ID, or all layers if no ID given.
|
|
55
|
+
*/
|
|
56
|
+
removeLayer(id?: string): void;
|
|
57
|
+
/**
|
|
58
|
+
* Get all PMTiles layer IDs.
|
|
59
|
+
*/
|
|
60
|
+
getLayerIds(): string[];
|
|
61
|
+
/**
|
|
62
|
+
* Find the source info that contains a specific layer ID.
|
|
63
|
+
*/
|
|
64
|
+
private _findSourceByLayerId;
|
|
65
|
+
/**
|
|
66
|
+
* Get the opacity of a layer (by layer ID or source ID).
|
|
67
|
+
*/
|
|
68
|
+
getLayerOpacity(id: string): number | null;
|
|
69
|
+
/**
|
|
70
|
+
* Set the opacity of a layer (by layer ID or source ID).
|
|
71
|
+
* If layer ID is provided, sets opacity for that specific layer.
|
|
72
|
+
* If source ID is provided, sets opacity for all layers from that source.
|
|
73
|
+
*/
|
|
74
|
+
setLayerOpacity(id: string, opacity: number): void;
|
|
75
|
+
/**
|
|
76
|
+
* Set opacity directly on a MapLibre layer.
|
|
77
|
+
*/
|
|
78
|
+
private _setLayerOpacityDirect;
|
|
79
|
+
/**
|
|
80
|
+
* Get the visibility of a layer (by layer ID or source ID).
|
|
81
|
+
*/
|
|
82
|
+
getLayerVisibility(id: string): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Set the visibility of a layer (by layer ID or source ID).
|
|
85
|
+
* If layer ID is provided, sets visibility for that specific layer.
|
|
86
|
+
* If source ID is provided, sets visibility for all layers from that source.
|
|
87
|
+
*/
|
|
88
|
+
setLayerVisibility(id: string, visible: boolean): void;
|
|
89
|
+
/**
|
|
90
|
+
* Get the URL for a specific PMTiles source.
|
|
91
|
+
*/
|
|
92
|
+
getLayerUrl(sourceId: string): string | null;
|
|
93
|
+
/**
|
|
94
|
+
* Get whether features are pickable (clickable) globally or for a specific source.
|
|
95
|
+
*/
|
|
96
|
+
getPickable(sourceId?: string): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Set whether features are pickable (clickable).
|
|
99
|
+
* If sourceId is provided, sets pickable for that specific source.
|
|
100
|
+
* If no sourceId, sets the global pickable state for all current and future layers.
|
|
101
|
+
*/
|
|
102
|
+
setPickable(pickable: boolean, sourceId?: string): void;
|
|
103
|
+
private _emit;
|
|
104
|
+
private _setupClickHandler;
|
|
105
|
+
private _checkZoomVisibility;
|
|
106
|
+
private _updateDisplayState;
|
|
107
|
+
private _createContainer;
|
|
108
|
+
private _render;
|
|
109
|
+
private _renderCollapsed;
|
|
110
|
+
private _renderExpanded;
|
|
111
|
+
private _createFormGroup;
|
|
112
|
+
private _appendStatus;
|
|
113
|
+
private _ensureProtocol;
|
|
114
|
+
private _fetchSourceLayers;
|
|
115
|
+
private _addLayer;
|
|
116
|
+
private _removeLayer;
|
|
117
|
+
private _updateOpacity;
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=PMTilesLayer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PMTilesLayer.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/PMTilesLayer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import { IControl, Map as MapLibreMap, ControlPosition } from 'maplibre-gl';
|
|
2
|
+
import { PrintControlOptions, PrintControlState, PrintEvent, PrintEventHandler, PrintColorbarConfig } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* A control for exporting the current map view as an image.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* const printControl = new PrintControl({
|
|
9
|
+
* filename: 'my-map',
|
|
10
|
+
* format: 'png',
|
|
11
|
+
* });
|
|
12
|
+
* map.addControl(printControl, 'top-right');
|
|
13
|
+
*
|
|
14
|
+
* printControl.on('export', (event) => {
|
|
15
|
+
* console.log('Map exported:', event.state.filename);
|
|
16
|
+
* });
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare class PrintControl implements IControl {
|
|
20
|
+
private _container?;
|
|
21
|
+
private _button?;
|
|
22
|
+
private _panel?;
|
|
23
|
+
private _options;
|
|
24
|
+
private _state;
|
|
25
|
+
private _eventHandlers;
|
|
26
|
+
private _map?;
|
|
27
|
+
private _handleZoom?;
|
|
28
|
+
private _zoomVisible;
|
|
29
|
+
private _titleInput?;
|
|
30
|
+
private _northArrowInput?;
|
|
31
|
+
private _scaleBarInput?;
|
|
32
|
+
private _colorbarInput?;
|
|
33
|
+
private _colorbarSettingsDiv?;
|
|
34
|
+
private _colorbarColormapSelect?;
|
|
35
|
+
private _colorbarOrientationSelect?;
|
|
36
|
+
private _colorbarVminInput?;
|
|
37
|
+
private _colorbarVmaxInput?;
|
|
38
|
+
private _colorbarLabelInput?;
|
|
39
|
+
private _colorbarUnitsInput?;
|
|
40
|
+
private _filenameInput?;
|
|
41
|
+
private _formatSelect?;
|
|
42
|
+
private _qualityInput?;
|
|
43
|
+
private _qualityValue?;
|
|
44
|
+
private _qualityField?;
|
|
45
|
+
private _sizeRadioCurrent?;
|
|
46
|
+
private _sizeRadioCustom?;
|
|
47
|
+
private _widthInput?;
|
|
48
|
+
private _heightInput?;
|
|
49
|
+
private _customSizeInputs?;
|
|
50
|
+
private _exportBtn?;
|
|
51
|
+
private _copyBtn?;
|
|
52
|
+
private _feedbackEl?;
|
|
53
|
+
/**
|
|
54
|
+
* Creates a new PrintControl instance.
|
|
55
|
+
*/
|
|
56
|
+
constructor(options?: PrintControlOptions);
|
|
57
|
+
/**
|
|
58
|
+
* Called when the control is added to the map.
|
|
59
|
+
*/
|
|
60
|
+
onAdd(map: MapLibreMap): HTMLElement;
|
|
61
|
+
/**
|
|
62
|
+
* Called when the control is removed from the map.
|
|
63
|
+
*/
|
|
64
|
+
onRemove(): void;
|
|
65
|
+
/**
|
|
66
|
+
* Get the default position for this control.
|
|
67
|
+
*/
|
|
68
|
+
getDefaultPosition(): ControlPosition;
|
|
69
|
+
/**
|
|
70
|
+
* Register an event handler.
|
|
71
|
+
*/
|
|
72
|
+
on(event: PrintEvent, handler: PrintEventHandler): this;
|
|
73
|
+
/**
|
|
74
|
+
* Remove an event handler.
|
|
75
|
+
*/
|
|
76
|
+
off(event: PrintEvent, handler: PrintEventHandler): this;
|
|
77
|
+
/**
|
|
78
|
+
* Emit an event to registered handlers.
|
|
79
|
+
*/
|
|
80
|
+
private _emit;
|
|
81
|
+
/**
|
|
82
|
+
* Create the control container.
|
|
83
|
+
*/
|
|
84
|
+
private _createContainer;
|
|
85
|
+
/**
|
|
86
|
+
* Create the panel content.
|
|
87
|
+
*/
|
|
88
|
+
private _createPanel;
|
|
89
|
+
/**
|
|
90
|
+
* Toggle quality field visibility based on format.
|
|
91
|
+
*/
|
|
92
|
+
private _updateQualityVisibility;
|
|
93
|
+
/**
|
|
94
|
+
* Toggle copy button visibility (hidden for PDF format).
|
|
95
|
+
*/
|
|
96
|
+
private _updateCopyBtnVisibility;
|
|
97
|
+
/**
|
|
98
|
+
* Export the canvas to a PDF file using jspdf.
|
|
99
|
+
*/
|
|
100
|
+
private _exportPdf;
|
|
101
|
+
/**
|
|
102
|
+
* Toggle custom size inputs visibility.
|
|
103
|
+
*/
|
|
104
|
+
private _updateCustomSizeVisibility;
|
|
105
|
+
/**
|
|
106
|
+
* Toggle colorbar settings visibility.
|
|
107
|
+
*/
|
|
108
|
+
private _updateColorbarSettingsVisibility;
|
|
109
|
+
/**
|
|
110
|
+
* Get color stops from colormap configuration.
|
|
111
|
+
*/
|
|
112
|
+
private _getColorStops;
|
|
113
|
+
/**
|
|
114
|
+
* Draw a colorbar on the export canvas.
|
|
115
|
+
*/
|
|
116
|
+
private _drawColorbar;
|
|
117
|
+
/**
|
|
118
|
+
* Format a tick value for display.
|
|
119
|
+
*/
|
|
120
|
+
private _formatTickValue;
|
|
121
|
+
/**
|
|
122
|
+
* Expand the panel.
|
|
123
|
+
*/
|
|
124
|
+
expand(): void;
|
|
125
|
+
/**
|
|
126
|
+
* Collapse the panel.
|
|
127
|
+
*/
|
|
128
|
+
collapse(): void;
|
|
129
|
+
/**
|
|
130
|
+
* Toggle the panel visibility.
|
|
131
|
+
*/
|
|
132
|
+
private _togglePanel;
|
|
133
|
+
/**
|
|
134
|
+
* Show the panel.
|
|
135
|
+
*/
|
|
136
|
+
private _showPanel;
|
|
137
|
+
/**
|
|
138
|
+
* Hide the panel.
|
|
139
|
+
*/
|
|
140
|
+
private _hidePanel;
|
|
141
|
+
/**
|
|
142
|
+
* Show feedback message.
|
|
143
|
+
*/
|
|
144
|
+
private _showFeedback;
|
|
145
|
+
/**
|
|
146
|
+
* Set loading state on buttons.
|
|
147
|
+
*/
|
|
148
|
+
private _setExporting;
|
|
149
|
+
/**
|
|
150
|
+
* Capture the map canvas during the render cycle.
|
|
151
|
+
* WebGL canvases have preserveDrawingBuffer=false by default, so the
|
|
152
|
+
* framebuffer is cleared after compositing. We must read it during render.
|
|
153
|
+
*/
|
|
154
|
+
private _captureMapCanvas;
|
|
155
|
+
/**
|
|
156
|
+
* Draw a north arrow on the export canvas.
|
|
157
|
+
*/
|
|
158
|
+
private _drawNorthArrow;
|
|
159
|
+
/**
|
|
160
|
+
* Return a rounded scale distance using 1/2/5 progression.
|
|
161
|
+
*/
|
|
162
|
+
private _niceDistance;
|
|
163
|
+
/**
|
|
164
|
+
* Draw a scale bar on the export canvas.
|
|
165
|
+
*/
|
|
166
|
+
private _drawScaleBar;
|
|
167
|
+
/**
|
|
168
|
+
* Create the export canvas from the map.
|
|
169
|
+
*/
|
|
170
|
+
private _createExportCanvas;
|
|
171
|
+
/**
|
|
172
|
+
* Export the map to a file download.
|
|
173
|
+
*/
|
|
174
|
+
private _exportMap;
|
|
175
|
+
/**
|
|
176
|
+
* Copy the map to clipboard.
|
|
177
|
+
*/
|
|
178
|
+
private _copyToClipboard;
|
|
179
|
+
/**
|
|
180
|
+
* Set up zoom-based visibility handling.
|
|
181
|
+
*/
|
|
182
|
+
private _setupZoomHandler;
|
|
183
|
+
/**
|
|
184
|
+
* Show the control.
|
|
185
|
+
*/
|
|
186
|
+
show(): this;
|
|
187
|
+
/**
|
|
188
|
+
* Hide the control.
|
|
189
|
+
*/
|
|
190
|
+
hide(): this;
|
|
191
|
+
/**
|
|
192
|
+
* Get the current state.
|
|
193
|
+
*/
|
|
194
|
+
getState(): PrintControlState;
|
|
195
|
+
/**
|
|
196
|
+
* Set the export format.
|
|
197
|
+
*/
|
|
198
|
+
setFormat(format: "png" | "jpeg" | "pdf"): this;
|
|
199
|
+
/**
|
|
200
|
+
* Set the JPEG quality.
|
|
201
|
+
*/
|
|
202
|
+
setQuality(quality: number): this;
|
|
203
|
+
/**
|
|
204
|
+
* Set the title text.
|
|
205
|
+
*/
|
|
206
|
+
setTitle(title: string): this;
|
|
207
|
+
/**
|
|
208
|
+
* Export the map programmatically and return a data URL.
|
|
209
|
+
*/
|
|
210
|
+
exportMap(options?: {
|
|
211
|
+
format?: "png" | "jpeg" | "pdf";
|
|
212
|
+
quality?: number;
|
|
213
|
+
filename?: string;
|
|
214
|
+
title?: string;
|
|
215
|
+
includeNorthArrow?: boolean;
|
|
216
|
+
includeScaleBar?: boolean;
|
|
217
|
+
colorbar?: PrintColorbarConfig;
|
|
218
|
+
width?: number;
|
|
219
|
+
height?: number;
|
|
220
|
+
}): Promise<string>;
|
|
221
|
+
/**
|
|
222
|
+
* Set the colorbar configuration.
|
|
223
|
+
*/
|
|
224
|
+
setColorbar(config: PrintColorbarConfig): this;
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=PrintControl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrintControl.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/PrintControl.ts"],"names":[],"mappings":"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"}
|