@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,206 @@
|
|
|
1
|
+
import { IControl, Map as MapLibreMap } from 'maplibre-gl';
|
|
2
|
+
import { BasemapControlOptions, BasemapControlState, BasemapItem, BasemapEvent } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Event handler type for basemap events.
|
|
5
|
+
*/
|
|
6
|
+
type BasemapEventHandler = (event: {
|
|
7
|
+
type: BasemapEvent;
|
|
8
|
+
state: BasemapControlState;
|
|
9
|
+
basemap?: BasemapItem;
|
|
10
|
+
}) => void;
|
|
11
|
+
/**
|
|
12
|
+
* A basemap switcher control for MapLibre GL maps.
|
|
13
|
+
*
|
|
14
|
+
* Allows users to interactively switch between different basemap tile sources.
|
|
15
|
+
* Supports loading basemaps from xyzservices or custom basemap arrays.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const basemapControl = new BasemapControl({
|
|
20
|
+
* defaultBasemap: 'OpenStreetMap.Mapnik',
|
|
21
|
+
* showSearch: true,
|
|
22
|
+
* filterGroups: ['OpenStreetMap', 'CartoDB', 'Stadia'],
|
|
23
|
+
* });
|
|
24
|
+
* map.addControl(basemapControl, 'top-right');
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare class BasemapControl implements IControl {
|
|
28
|
+
private _container?;
|
|
29
|
+
private _options;
|
|
30
|
+
private _state;
|
|
31
|
+
private _basemaps;
|
|
32
|
+
private _eventHandlers;
|
|
33
|
+
private _map?;
|
|
34
|
+
private _handleZoom?;
|
|
35
|
+
private _zoomVisible;
|
|
36
|
+
/**
|
|
37
|
+
* Creates a new BasemapControl instance.
|
|
38
|
+
*
|
|
39
|
+
* @param options - Configuration options for the control.
|
|
40
|
+
*/
|
|
41
|
+
constructor(options?: BasemapControlOptions);
|
|
42
|
+
/**
|
|
43
|
+
* Called when the control is added to the map.
|
|
44
|
+
*
|
|
45
|
+
* @param map - The MapLibre GL map instance.
|
|
46
|
+
* @returns The control's container element.
|
|
47
|
+
*/
|
|
48
|
+
onAdd(map: MapLibreMap): HTMLElement;
|
|
49
|
+
/**
|
|
50
|
+
* Called when the control is removed from the map.
|
|
51
|
+
*/
|
|
52
|
+
onRemove(): void;
|
|
53
|
+
/**
|
|
54
|
+
* Shows the control.
|
|
55
|
+
*/
|
|
56
|
+
show(): void;
|
|
57
|
+
/**
|
|
58
|
+
* Hides the control.
|
|
59
|
+
*/
|
|
60
|
+
hide(): void;
|
|
61
|
+
/**
|
|
62
|
+
* Expands the control (if collapsible).
|
|
63
|
+
*/
|
|
64
|
+
expand(): void;
|
|
65
|
+
/**
|
|
66
|
+
* Collapses the control (if collapsible).
|
|
67
|
+
*/
|
|
68
|
+
collapse(): void;
|
|
69
|
+
/**
|
|
70
|
+
* Toggles the collapsed state.
|
|
71
|
+
*/
|
|
72
|
+
toggle(): void;
|
|
73
|
+
/**
|
|
74
|
+
* Sets the active basemap by ID.
|
|
75
|
+
*
|
|
76
|
+
* @param basemapId - The ID of the basemap to activate.
|
|
77
|
+
*/
|
|
78
|
+
setBasemap(basemapId: string): void;
|
|
79
|
+
/**
|
|
80
|
+
* Gets the list of available basemaps.
|
|
81
|
+
*
|
|
82
|
+
* @returns Array of basemap items.
|
|
83
|
+
*/
|
|
84
|
+
getBasemaps(): BasemapItem[];
|
|
85
|
+
/**
|
|
86
|
+
* Adds a custom basemap.
|
|
87
|
+
*
|
|
88
|
+
* @param basemap - The basemap item to add.
|
|
89
|
+
*/
|
|
90
|
+
addBasemap(basemap: BasemapItem): void;
|
|
91
|
+
/**
|
|
92
|
+
* Removes a basemap by ID.
|
|
93
|
+
*
|
|
94
|
+
* @param basemapId - The ID of the basemap to remove.
|
|
95
|
+
*/
|
|
96
|
+
removeBasemap(basemapId: string): void;
|
|
97
|
+
/**
|
|
98
|
+
* Sets an API key for a basemap.
|
|
99
|
+
*
|
|
100
|
+
* @param basemapId - The ID of the basemap.
|
|
101
|
+
* @param apiKey - The API key to set.
|
|
102
|
+
*/
|
|
103
|
+
setApiKey(basemapId: string, apiKey: string): void;
|
|
104
|
+
/**
|
|
105
|
+
* Updates control options and re-renders.
|
|
106
|
+
*
|
|
107
|
+
* @param options - Partial options to update.
|
|
108
|
+
*/
|
|
109
|
+
update(options: Partial<BasemapControlOptions>): void;
|
|
110
|
+
/**
|
|
111
|
+
* Gets the current state.
|
|
112
|
+
*
|
|
113
|
+
* @returns The current control state.
|
|
114
|
+
*/
|
|
115
|
+
getState(): BasemapControlState;
|
|
116
|
+
/**
|
|
117
|
+
* Gets the currently selected basemap.
|
|
118
|
+
*
|
|
119
|
+
* @returns The selected basemap item, or null if none selected.
|
|
120
|
+
*/
|
|
121
|
+
getSelectedBasemap(): BasemapItem | null;
|
|
122
|
+
/**
|
|
123
|
+
* Registers an event handler.
|
|
124
|
+
*
|
|
125
|
+
* @param event - The event type to listen for.
|
|
126
|
+
* @param handler - The callback function.
|
|
127
|
+
*/
|
|
128
|
+
on(event: BasemapEvent, handler: BasemapEventHandler): void;
|
|
129
|
+
/**
|
|
130
|
+
* Removes an event handler.
|
|
131
|
+
*
|
|
132
|
+
* @param event - The event type.
|
|
133
|
+
* @param handler - The callback function to remove.
|
|
134
|
+
*/
|
|
135
|
+
off(event: BasemapEvent, handler: BasemapEventHandler): void;
|
|
136
|
+
/**
|
|
137
|
+
* Emits an event to all registered handlers.
|
|
138
|
+
*/
|
|
139
|
+
private _emit;
|
|
140
|
+
/**
|
|
141
|
+
* Fetches providers from the xyzservices URL.
|
|
142
|
+
*/
|
|
143
|
+
private _fetchProviders;
|
|
144
|
+
/**
|
|
145
|
+
* Applies a basemap to the map.
|
|
146
|
+
*/
|
|
147
|
+
private _applyBasemap;
|
|
148
|
+
/**
|
|
149
|
+
* Applies an XYZ tile basemap.
|
|
150
|
+
*/
|
|
151
|
+
private _applyXYZBasemap;
|
|
152
|
+
/**
|
|
153
|
+
* Applies a vector style basemap.
|
|
154
|
+
*/
|
|
155
|
+
private _applyStyleBasemap;
|
|
156
|
+
/**
|
|
157
|
+
* Removes the basemap layer and source.
|
|
158
|
+
*/
|
|
159
|
+
private _removeBasemapLayer;
|
|
160
|
+
/**
|
|
161
|
+
* Checks if the current zoom level is within the visibility range.
|
|
162
|
+
*/
|
|
163
|
+
private _checkZoomVisibility;
|
|
164
|
+
/**
|
|
165
|
+
* Updates the display state based on visibility and zoom level.
|
|
166
|
+
*/
|
|
167
|
+
private _updateDisplayState;
|
|
168
|
+
/**
|
|
169
|
+
* Creates the main container element.
|
|
170
|
+
*/
|
|
171
|
+
private _createContainer;
|
|
172
|
+
/**
|
|
173
|
+
* Renders the control content.
|
|
174
|
+
*/
|
|
175
|
+
private _render;
|
|
176
|
+
/**
|
|
177
|
+
* Creates the icon button for collapsed state.
|
|
178
|
+
*/
|
|
179
|
+
private _createIconButton;
|
|
180
|
+
/**
|
|
181
|
+
* Creates the header element.
|
|
182
|
+
*/
|
|
183
|
+
private _createHeader;
|
|
184
|
+
/**
|
|
185
|
+
* Creates the search input element.
|
|
186
|
+
*/
|
|
187
|
+
private _createSearchInput;
|
|
188
|
+
/**
|
|
189
|
+
* Creates the below labels checkbox element.
|
|
190
|
+
*/
|
|
191
|
+
private _createBelowLabelsCheckbox;
|
|
192
|
+
/**
|
|
193
|
+
* Renders the list mode.
|
|
194
|
+
*/
|
|
195
|
+
private _renderList;
|
|
196
|
+
/**
|
|
197
|
+
* Renders the gallery mode.
|
|
198
|
+
*/
|
|
199
|
+
private _renderGallery;
|
|
200
|
+
/**
|
|
201
|
+
* Creates a basemap item element.
|
|
202
|
+
*/
|
|
203
|
+
private _createBasemapItem;
|
|
204
|
+
}
|
|
205
|
+
export {};
|
|
206
|
+
//# sourceMappingURL=Basemap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Basemap.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/Basemap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { BasemapControlReactProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* React wrapper component for BasemapControl.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```tsx
|
|
7
|
+
* import { BasemapReact } 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
|
+
* <BasemapReact
|
|
17
|
+
* map={map}
|
|
18
|
+
* defaultBasemap="OpenStreetMap.Mapnik"
|
|
19
|
+
* showSearch
|
|
20
|
+
* onBasemapChange={(basemap) => console.log('Changed to:', basemap.name)}
|
|
21
|
+
* />
|
|
22
|
+
* )}
|
|
23
|
+
* </>
|
|
24
|
+
* );
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @param props - Component props including map instance and basemap control options.
|
|
29
|
+
* @returns null - This component renders nothing directly.
|
|
30
|
+
*/
|
|
31
|
+
export declare function BasemapReact({ map, onBasemapChange, onStateChange, position, ...options }: BasemapControlReactProps): null;
|
|
32
|
+
//# sourceMappingURL=BasemapReact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BasemapReact.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/BasemapReact.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,wBAAwB,EAGzB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,YAAY,CAAC,EAC3B,GAAG,EACH,eAAe,EACf,aAAa,EACb,QAAsB,EACtB,GAAG,OAAO,EACX,EAAE,wBAAwB,GAAG,IAAI,CA4EjC"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { IControl, Map as MapLibreMap, ControlPosition } from 'maplibre-gl';
|
|
2
|
+
import { BookmarkControlOptions, BookmarkControlState, BookmarkEvent, BookmarkEventHandler, MapBookmark } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* A control for saving and restoring map bookmarks/views.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* const bookmarkControl = new BookmarkControl({
|
|
9
|
+
* storageKey: 'my-map-bookmarks',
|
|
10
|
+
* flyToDuration: 2000,
|
|
11
|
+
* });
|
|
12
|
+
* map.addControl(bookmarkControl, 'top-right');
|
|
13
|
+
*
|
|
14
|
+
* bookmarkControl.on('select', (event) => {
|
|
15
|
+
* console.log('Selected bookmark:', event.bookmark);
|
|
16
|
+
* });
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare class BookmarkControl 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 _listEl?;
|
|
30
|
+
private _nameInput?;
|
|
31
|
+
/**
|
|
32
|
+
* Creates a new BookmarkControl instance.
|
|
33
|
+
*/
|
|
34
|
+
constructor(options?: BookmarkControlOptions);
|
|
35
|
+
/**
|
|
36
|
+
* Called when the control is added to the map.
|
|
37
|
+
*/
|
|
38
|
+
onAdd(map: MapLibreMap): HTMLElement;
|
|
39
|
+
/**
|
|
40
|
+
* Called when the control is removed from the map.
|
|
41
|
+
*/
|
|
42
|
+
onRemove(): void;
|
|
43
|
+
/**
|
|
44
|
+
* Get the default position for this control.
|
|
45
|
+
*/
|
|
46
|
+
getDefaultPosition(): ControlPosition;
|
|
47
|
+
/**
|
|
48
|
+
* Register an event handler.
|
|
49
|
+
*/
|
|
50
|
+
on(event: BookmarkEvent, handler: BookmarkEventHandler): this;
|
|
51
|
+
/**
|
|
52
|
+
* Remove an event handler.
|
|
53
|
+
*/
|
|
54
|
+
off(event: BookmarkEvent, handler: BookmarkEventHandler): this;
|
|
55
|
+
/**
|
|
56
|
+
* Emit an event to registered handlers.
|
|
57
|
+
*/
|
|
58
|
+
private _emit;
|
|
59
|
+
/**
|
|
60
|
+
* Create the control container.
|
|
61
|
+
*/
|
|
62
|
+
private _createContainer;
|
|
63
|
+
/**
|
|
64
|
+
* Create the panel content.
|
|
65
|
+
*/
|
|
66
|
+
private _createPanel;
|
|
67
|
+
/**
|
|
68
|
+
* Expand the panel.
|
|
69
|
+
*/
|
|
70
|
+
expand(): void;
|
|
71
|
+
/**
|
|
72
|
+
* Collapse the panel.
|
|
73
|
+
*/
|
|
74
|
+
collapse(): void;
|
|
75
|
+
/**
|
|
76
|
+
* Toggle the panel visibility.
|
|
77
|
+
*/
|
|
78
|
+
private _togglePanel;
|
|
79
|
+
/**
|
|
80
|
+
* Show the panel.
|
|
81
|
+
*/
|
|
82
|
+
private _showPanel;
|
|
83
|
+
/**
|
|
84
|
+
* Hide the panel.
|
|
85
|
+
*/
|
|
86
|
+
private _hidePanel;
|
|
87
|
+
/**
|
|
88
|
+
* Update the bookmarks list display.
|
|
89
|
+
*/
|
|
90
|
+
private _updateList;
|
|
91
|
+
/**
|
|
92
|
+
* Escape HTML for safe rendering.
|
|
93
|
+
*/
|
|
94
|
+
private _escapeHtml;
|
|
95
|
+
/**
|
|
96
|
+
* Add a new bookmark.
|
|
97
|
+
*/
|
|
98
|
+
private _addBookmark;
|
|
99
|
+
/**
|
|
100
|
+
* Remove a bookmark by ID.
|
|
101
|
+
*/
|
|
102
|
+
private _removeBookmark;
|
|
103
|
+
/**
|
|
104
|
+
* Go to a bookmark.
|
|
105
|
+
*/
|
|
106
|
+
private _goToBookmark;
|
|
107
|
+
/**
|
|
108
|
+
* Start renaming a bookmark.
|
|
109
|
+
*/
|
|
110
|
+
private _startRename;
|
|
111
|
+
/**
|
|
112
|
+
* Clear all bookmarks.
|
|
113
|
+
*/
|
|
114
|
+
private _clearAll;
|
|
115
|
+
/**
|
|
116
|
+
* Update the footer (show/hide Clear All based on bookmark count).
|
|
117
|
+
*/
|
|
118
|
+
private _updateFooter;
|
|
119
|
+
/**
|
|
120
|
+
* Export bookmarks to a JSON file download.
|
|
121
|
+
*/
|
|
122
|
+
private _exportToFile;
|
|
123
|
+
/**
|
|
124
|
+
* Import bookmarks from a JSON file via file picker.
|
|
125
|
+
*/
|
|
126
|
+
private _importFromFile;
|
|
127
|
+
/**
|
|
128
|
+
* Save bookmarks to localStorage.
|
|
129
|
+
*/
|
|
130
|
+
private _saveToStorage;
|
|
131
|
+
/**
|
|
132
|
+
* Load bookmarks from localStorage.
|
|
133
|
+
*/
|
|
134
|
+
private _loadFromStorage;
|
|
135
|
+
/**
|
|
136
|
+
* Set up zoom-based visibility handling.
|
|
137
|
+
*/
|
|
138
|
+
private _setupZoomHandler;
|
|
139
|
+
/**
|
|
140
|
+
* Show the control.
|
|
141
|
+
*/
|
|
142
|
+
show(): this;
|
|
143
|
+
/**
|
|
144
|
+
* Hide the control.
|
|
145
|
+
*/
|
|
146
|
+
hide(): this;
|
|
147
|
+
/**
|
|
148
|
+
* Get the current state.
|
|
149
|
+
*/
|
|
150
|
+
getState(): BookmarkControlState;
|
|
151
|
+
/**
|
|
152
|
+
* Get all bookmarks.
|
|
153
|
+
*/
|
|
154
|
+
getBookmarks(): MapBookmark[];
|
|
155
|
+
/**
|
|
156
|
+
* Add a bookmark programmatically.
|
|
157
|
+
*/
|
|
158
|
+
addBookmark(name?: string): this;
|
|
159
|
+
/**
|
|
160
|
+
* Remove a bookmark by ID.
|
|
161
|
+
*/
|
|
162
|
+
removeBookmark(id: string): this;
|
|
163
|
+
/**
|
|
164
|
+
* Go to a bookmark by ID.
|
|
165
|
+
*/
|
|
166
|
+
goTo(id: string): this;
|
|
167
|
+
/**
|
|
168
|
+
* Clear all bookmarks.
|
|
169
|
+
*/
|
|
170
|
+
clear(): this;
|
|
171
|
+
/**
|
|
172
|
+
* Import bookmarks from an array.
|
|
173
|
+
*/
|
|
174
|
+
importBookmarks(bookmarks: MapBookmark[]): this;
|
|
175
|
+
/**
|
|
176
|
+
* Export bookmarks as JSON string.
|
|
177
|
+
*/
|
|
178
|
+
exportBookmarks(): string;
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=BookmarkControl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BookmarkControl.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/BookmarkControl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { IControl, Map as MapLibreMap } from 'maplibre-gl';
|
|
2
|
+
import { ChoroplethControlOptions, ChoroplethControlState, ChoroplethEvent, ChoroplethEventHandler, ChoroplethClassificationScheme, ColormapName } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* A control for adding choropleth (thematic) maps from vector data URLs.
|
|
5
|
+
* Supports classification schemes, colormaps, fill and extrusion modes.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const choropleth = new ChoroplethControl({
|
|
10
|
+
* defaultUrl: 'https://data.source.coop/giswqs/opengeos/h3_res4_geo.parquet',
|
|
11
|
+
* defaultColumn: 'value',
|
|
12
|
+
* defaultColormap: 'viridis',
|
|
13
|
+
* defaultScheme: 'quantile',
|
|
14
|
+
* defaultK: 5,
|
|
15
|
+
* });
|
|
16
|
+
* map.addControl(choropleth, 'top-right');
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare class ChoroplethControl 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 _choroplethLayers;
|
|
30
|
+
private _legendControls;
|
|
31
|
+
private _activePopup?;
|
|
32
|
+
private _cachedGeojson?;
|
|
33
|
+
private _cachedColumns;
|
|
34
|
+
constructor(options?: ChoroplethControlOptions);
|
|
35
|
+
onAdd(map: MapLibreMap): HTMLElement;
|
|
36
|
+
onRemove(): void;
|
|
37
|
+
show(): void;
|
|
38
|
+
hide(): void;
|
|
39
|
+
expand(): void;
|
|
40
|
+
collapse(): void;
|
|
41
|
+
toggle(): void;
|
|
42
|
+
getState(): ChoroplethControlState;
|
|
43
|
+
update(options: Partial<ChoroplethControlOptions>): void;
|
|
44
|
+
on(event: ChoroplethEvent, handler: ChoroplethEventHandler): void;
|
|
45
|
+
off(event: ChoroplethEvent, handler: ChoroplethEventHandler): void;
|
|
46
|
+
/**
|
|
47
|
+
* Programmatically add a choropleth layer.
|
|
48
|
+
*/
|
|
49
|
+
addLayer(url?: string, column?: string, options?: {
|
|
50
|
+
colormap?: ColormapName;
|
|
51
|
+
scheme?: ChoroplethClassificationScheme;
|
|
52
|
+
k?: number;
|
|
53
|
+
}): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Remove a choropleth layer by ID.
|
|
56
|
+
*/
|
|
57
|
+
removeLayer(id?: string): void;
|
|
58
|
+
/**
|
|
59
|
+
* Get all choropleth layer IDs.
|
|
60
|
+
*/
|
|
61
|
+
getLayerIds(): string[];
|
|
62
|
+
private _emit;
|
|
63
|
+
private _checkZoomVisibility;
|
|
64
|
+
private _updateDisplayState;
|
|
65
|
+
private _createContainer;
|
|
66
|
+
private _render;
|
|
67
|
+
private _renderCollapsed;
|
|
68
|
+
private _renderExpanded;
|
|
69
|
+
private _createFormGroup;
|
|
70
|
+
private _appendStatus;
|
|
71
|
+
private _updateColormapPreview;
|
|
72
|
+
/**
|
|
73
|
+
* Load vector data from URL and detect numeric columns.
|
|
74
|
+
*/
|
|
75
|
+
private _loadData;
|
|
76
|
+
/**
|
|
77
|
+
* Detect numeric columns from GeoJSON features.
|
|
78
|
+
*/
|
|
79
|
+
private _detectNumericColumns;
|
|
80
|
+
/**
|
|
81
|
+
* Create and add the choropleth layer to the map.
|
|
82
|
+
*/
|
|
83
|
+
private _addChoroplethLayer;
|
|
84
|
+
private _formatBreak;
|
|
85
|
+
private _normalizeGeoJSON;
|
|
86
|
+
private _fetchWithCorsProxy;
|
|
87
|
+
private _loadGeoParquet;
|
|
88
|
+
private _loadFlatGeobuf;
|
|
89
|
+
private _fitToData;
|
|
90
|
+
private _removeLayer;
|
|
91
|
+
/**
|
|
92
|
+
* Add a Legend control to the map for a given choropleth layer.
|
|
93
|
+
*/
|
|
94
|
+
private _addLegendControl;
|
|
95
|
+
/**
|
|
96
|
+
* Remove a Legend control from the map for a given choropleth layer.
|
|
97
|
+
*/
|
|
98
|
+
private _removeLegendControl;
|
|
99
|
+
/**
|
|
100
|
+
* Remove all Legend controls from the map.
|
|
101
|
+
*/
|
|
102
|
+
private _removeAllLegendControls;
|
|
103
|
+
private _removeAllLayers;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=ChoroplethControl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChoroplethControl.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/ChoroplethControl.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,kCAAkC,CAAC;AAC1C,OAAmB,EACjB,KAAK,QAAQ,EACb,KAAK,GAAG,IAAI,WAAW,EACxB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,EACf,sBAAsB,EAEtB,8BAA8B,EAC9B,YAAY,EAEb,MAAM,SAAS,CAAC;AAiQjB;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,iBAAkB,YAAW,QAAQ;IAChD,OAAO,CAAC,UAAU,CAAC,CAAc;IACjC,OAAO,CAAC,OAAO,CAAC,CAAoB;IACpC,OAAO,CAAC,MAAM,CAAC,CAAc;IAC7B,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,cAAc,CACV;IACZ,OAAO,CAAC,IAAI,CAAC,CAAc;IAC3B,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,iBAAiB,CAA+C;IACxE,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,YAAY,CAAC,CAAmB;IAExC,OAAO,CAAC,cAAc,CAAC,CAA4B;IACnD,OAAO,CAAC,cAAc,CAAgB;gBAE1B,OAAO,CAAC,EAAE,wBAAwB;IA6B9C,KAAK,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW;IAsBpC,QAAQ,IAAI,IAAI;IAiBhB,IAAI,IAAI,IAAI;IAQZ,IAAI,IAAI,IAAI;IAQZ,MAAM,IAAI,IAAI;IAQd,QAAQ,IAAI,IAAI;IAQhB,MAAM,IAAI,IAAI;IAKd,QAAQ,IAAI,sBAAsB;IAIlC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,wBAAwB,CAAC,GAAG,IAAI;IASxD,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,sBAAsB,GAAG,IAAI;IAOjE,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,sBAAsB,GAAG,IAAI;IAIlE;;OAEG;IACG,QAAQ,CACZ,GAAG,CAAC,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,MAAM,CAAC,EAAE,8BAA8B,CAAC;QACxC,CAAC,CAAC,EAAE,MAAM,CAAC;KACZ,GACA,OAAO,CAAC,IAAI,CAAC;IAYhB;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAK9B;;OAEG;IACH,WAAW,IAAI,MAAM,EAAE;IAQvB,OAAO,CAAC,KAAK;IAWb,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,OAAO;IA4Bf,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,eAAe;IAifvB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,sBAAsB;IAY9B;;OAEG;YACW,SAAS;IAmEvB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAkC7B;;OAEG;YACW,mBAAmB;IA0VjC,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,iBAAiB;YAsBX,mBAAmB;YAuBnB,eAAe;YAiCf,eAAe;IAwB7B,OAAO,CAAC,UAAU;IAoDlB,OAAO,CAAC,YAAY;IAoCpB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsBzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,gBAAgB;CA8BzB"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { IControl, Map as MapLibreMap } from 'maplibre-gl';
|
|
2
|
+
import { CogLayerControlOptions, CogLayerControlState, CogLayerEvent, CogLayerEventHandler } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* A control for adding Cloud Optimized GeoTIFF (COG) layers to the map.
|
|
5
|
+
*
|
|
6
|
+
* Uses deck.gl's COGLayer rendered through MapboxOverlay for efficient
|
|
7
|
+
* streaming and rendering of COG imagery.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const cogControl = new CogLayerControl({
|
|
12
|
+
* defaultUrl: 'https://example.com/cog.tif',
|
|
13
|
+
* defaultColormap: 'terrain',
|
|
14
|
+
* });
|
|
15
|
+
* map.addControl(cogControl, 'top-right');
|
|
16
|
+
*
|
|
17
|
+
* cogControl.on('layeradd', (event) => {
|
|
18
|
+
* console.log('COG layer added:', event.url);
|
|
19
|
+
* });
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare class CogLayerControl implements IControl {
|
|
23
|
+
private _container?;
|
|
24
|
+
private _button?;
|
|
25
|
+
private _panel?;
|
|
26
|
+
private _options;
|
|
27
|
+
private _state;
|
|
28
|
+
private _eventHandlers;
|
|
29
|
+
private _map?;
|
|
30
|
+
private _handleZoom?;
|
|
31
|
+
private _zoomVisible;
|
|
32
|
+
private _deckOverlay?;
|
|
33
|
+
private _cogLayers;
|
|
34
|
+
private _cogLayerPropsMap;
|
|
35
|
+
private _layerCounter;
|
|
36
|
+
private _activePopup?;
|
|
37
|
+
private _mapClickHandler?;
|
|
38
|
+
constructor(options?: CogLayerControlOptions);
|
|
39
|
+
onAdd(map: MapLibreMap): HTMLElement;
|
|
40
|
+
onRemove(): void;
|
|
41
|
+
show(): void;
|
|
42
|
+
hide(): void;
|
|
43
|
+
expand(): void;
|
|
44
|
+
collapse(): void;
|
|
45
|
+
toggle(): void;
|
|
46
|
+
getState(): CogLayerControlState;
|
|
47
|
+
update(options: Partial<CogLayerControlOptions>): void;
|
|
48
|
+
on(event: CogLayerEvent, handler: CogLayerEventHandler): void;
|
|
49
|
+
off(event: CogLayerEvent, handler: CogLayerEventHandler): void;
|
|
50
|
+
/**
|
|
51
|
+
* Programmatically add a COG layer.
|
|
52
|
+
*/
|
|
53
|
+
addLayer(url?: string): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Programmatically remove a COG layer by ID, or all layers if no ID given.
|
|
56
|
+
*/
|
|
57
|
+
removeLayer(id?: string): void;
|
|
58
|
+
/**
|
|
59
|
+
* Get all COG layer IDs.
|
|
60
|
+
* Useful for adapters and external integrations.
|
|
61
|
+
*/
|
|
62
|
+
getLayerIds(): string[];
|
|
63
|
+
/**
|
|
64
|
+
* Get the opacity of a specific COG layer.
|
|
65
|
+
* @param layerId The layer ID
|
|
66
|
+
* @returns The opacity value (0-1) or null if layer not found
|
|
67
|
+
*/
|
|
68
|
+
getLayerOpacity(layerId: string): number | null;
|
|
69
|
+
/**
|
|
70
|
+
* Set the opacity of a specific COG layer.
|
|
71
|
+
* @param layerId The layer ID
|
|
72
|
+
* @param opacity The opacity value (0-1)
|
|
73
|
+
*/
|
|
74
|
+
setLayerOpacity(layerId: string, opacity: number): void;
|
|
75
|
+
/**
|
|
76
|
+
* Get the visibility of a specific COG layer.
|
|
77
|
+
* Visibility is simulated via opacity (opacity > 0 = visible).
|
|
78
|
+
* @param layerId The layer ID
|
|
79
|
+
* @returns true if visible, false otherwise
|
|
80
|
+
*/
|
|
81
|
+
getLayerVisibility(layerId: string): boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Set the visibility of a specific COG layer.
|
|
84
|
+
* Visibility is simulated by setting opacity to 0 (hidden) or restoring it (visible).
|
|
85
|
+
* @param layerId The layer ID
|
|
86
|
+
* @param visible Whether the layer should be visible
|
|
87
|
+
* @param storedOpacity Optional opacity to restore when making visible (defaults to 1)
|
|
88
|
+
*/
|
|
89
|
+
setLayerVisibility(layerId: string, visible: boolean, storedOpacity?: number): void;
|
|
90
|
+
/**
|
|
91
|
+
* Get the URL for a specific COG layer.
|
|
92
|
+
* @param layerId The layer ID
|
|
93
|
+
* @returns The COG URL or null if layer not found
|
|
94
|
+
*/
|
|
95
|
+
getLayerUrl(layerId: string): string | null;
|
|
96
|
+
private _emit;
|
|
97
|
+
private _checkZoomVisibility;
|
|
98
|
+
private _updateDisplayState;
|
|
99
|
+
private _createContainer;
|
|
100
|
+
private _render;
|
|
101
|
+
private _renderCollapsed;
|
|
102
|
+
private _renderExpanded;
|
|
103
|
+
private _createFormGroup;
|
|
104
|
+
private _appendStatus;
|
|
105
|
+
private _updateColormapPreview;
|
|
106
|
+
private _updateColormapPreviewElement;
|
|
107
|
+
private _ensureOverlay;
|
|
108
|
+
private _setupClickHandler;
|
|
109
|
+
private _updatePickable;
|
|
110
|
+
private _rebuildLayers;
|
|
111
|
+
/**
|
|
112
|
+
* Register common projections that may not be included by default.
|
|
113
|
+
*/
|
|
114
|
+
private _registerCommonProjections;
|
|
115
|
+
/**
|
|
116
|
+
* Build a geoKeysParser function using geotiff-geokeys-to-proj4.
|
|
117
|
+
* This converts GeoTIFF geokeys to a ProjectionInfo object compatible
|
|
118
|
+
* with @developmentseed/deck.gl-geotiff.
|
|
119
|
+
*/
|
|
120
|
+
private _buildGeoKeysParser;
|
|
121
|
+
/**
|
|
122
|
+
* Monkey-patch COGLayer._parseGeoTIFF to handle floating-point GeoTIFFs.
|
|
123
|
+
* The upstream library only supports unsigned integer data (SampleFormat: 1).
|
|
124
|
+
* This patch catches the "non-unsigned integers not yet supported" error and
|
|
125
|
+
* re-implements the parsing with a float-compatible render pipeline.
|
|
126
|
+
*/
|
|
127
|
+
private _patchCOGLayerForFloat;
|
|
128
|
+
/**
|
|
129
|
+
* Monkey-patch COGLayer._renderSubLayers to propagate opacity to sublayers.
|
|
130
|
+
* The upstream COGLayer doesn't pass opacity to its RasterLayer/PathLayer
|
|
131
|
+
* sublayers, so opacity changes have no visual effect without this patch.
|
|
132
|
+
*/
|
|
133
|
+
private _patchCOGLayerForOpacity;
|
|
134
|
+
private _addLayer;
|
|
135
|
+
private _removeLayer;
|
|
136
|
+
private _updateOpacity;
|
|
137
|
+
private _buildLayerInfoList;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=CogLayer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CogLayer.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/CogLayer.ts"],"names":[],"mappings":"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"}
|