@geoql/v-maplibre 1.5.0 → 1.6.1

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.
Files changed (62) hide show
  1. package/README.md +6 -2
  2. package/dist/controls/_shared/index.d.ts +1 -0
  3. package/dist/controls/_shared/useMapControl.d.ts +10 -0
  4. package/dist/controls/index.d.ts +6 -0
  5. package/dist/controls/layer/VControlLayer.vue.d.ts +38 -0
  6. package/dist/controls/layer/VControlLayerGroup.vue.d.ts +53 -0
  7. package/dist/controls/layer/events.d.ts +1 -0
  8. package/dist/controls/layer/index.d.ts +5 -0
  9. package/dist/controls/layer/types.d.ts +16 -0
  10. package/dist/controls/legend/VControlLegend.vue.d.ts +54 -0
  11. package/dist/controls/legend/events.d.ts +2 -0
  12. package/dist/controls/legend/index.d.ts +3 -0
  13. package/dist/controls/legend/types.d.ts +63 -0
  14. package/dist/decoder-CLokFc0V.js +9 -0
  15. package/dist/decoder-CLokFc0V.js.map +1 -0
  16. package/dist/deflate-yeu3ogBn.js +11 -0
  17. package/dist/deflate-yeu3ogBn.js.map +1 -0
  18. package/dist/geotiff-BUZniE5g.js +3106 -0
  19. package/dist/geotiff-BUZniE5g.js.map +1 -0
  20. package/dist/index-Bt_rREAc.js +168 -0
  21. package/dist/index-Bt_rREAc.js.map +1 -0
  22. package/dist/index-CA8I5Z2-.js +4667 -0
  23. package/dist/index-CA8I5Z2-.js.map +1 -0
  24. package/dist/index.d.ts +4 -4
  25. package/dist/index.js +2736 -1638
  26. package/dist/index.js.map +1 -1
  27. package/dist/jpeg-B7yImnpY.js +534 -0
  28. package/dist/jpeg-B7yImnpY.js.map +1 -0
  29. package/dist/layers/deckgl/_shared/useDeckOverlay.d.ts +2 -0
  30. package/dist/layers/deckgl/index.d.ts +2 -0
  31. package/dist/layers/deckgl/mosaic/VLayerDeckglMosaic.vue.d.ts +163 -0
  32. package/dist/layers/deckgl/mosaic/index.d.ts +2 -0
  33. package/dist/layers/deckgl/text/VLayerDeckglText.vue.d.ts +1 -1
  34. package/dist/layers/deckgl/wind-particle/VLayerDeckglWindParticle.vue.d.ts +1 -1
  35. package/dist/layers/index.d.ts +3 -2
  36. package/dist/layers/maplibre/canvas/VLayerMaplibreCanvas.vue.d.ts +1 -1
  37. package/dist/layers/maplibre/custom/isochrone/VLayerMaplibreIsochrone.vue.d.ts +71 -0
  38. package/dist/layers/maplibre/custom/isochrone/index.d.ts +1 -0
  39. package/dist/layers/maplibre/geojson/VLayerMaplibreGeojson.vue.d.ts +1 -1
  40. package/dist/layers/maplibre/image/VLayerMaplibreImage.vue.d.ts +1 -1
  41. package/dist/layers/maplibre/pmtile/VLayerMaplibrePmtile.vue.d.ts +1 -1
  42. package/dist/layers/maplibre/video/VLayerMaplibreVideo.vue.d.ts +1 -1
  43. package/dist/lerc-CqgA9njy.js +1032 -0
  44. package/dist/lerc-CqgA9njy.js.map +1 -0
  45. package/dist/lzw-DL9RcHOz.js +85 -0
  46. package/dist/lzw-DL9RcHOz.js.map +1 -0
  47. package/dist/markers/VMarker.vue.d.ts +1 -2
  48. package/dist/packbits-YEJGULcy.js +25 -0
  49. package/dist/packbits-YEJGULcy.js.map +1 -0
  50. package/dist/pako.esm-Bx5X36Wo.js +1075 -0
  51. package/dist/pako.esm-Bx5X36Wo.js.map +1 -0
  52. package/dist/popups/VPopup.vue.d.ts +1 -1
  53. package/dist/raw-CoQHiEnn.js +10 -0
  54. package/dist/raw-CoQHiEnn.js.map +1 -0
  55. package/dist/v-maplibre.css +1 -1
  56. package/dist/webimage-BXLN-zu8.js +20 -0
  57. package/dist/webimage-BXLN-zu8.js.map +1 -0
  58. package/package.json +100 -84
  59. package/dist/layers/maplibre/{cluster → custom/cluster}/VLayerMaplibreCluster.vue.d.ts +1 -1
  60. package/dist/layers/maplibre/{cluster → custom/cluster}/index.d.ts +0 -0
  61. package/dist/layers/maplibre/{route → custom/route}/VLayerMaplibreRoute.vue.d.ts +2 -2
  62. /package/dist/layers/maplibre/{route → custom/route}/index.d.ts +0 -0
@@ -0,0 +1,163 @@
1
+ import type { Color } from '@deck.gl/core';
2
+ import type { Texture } from '@luma.gl/core';
3
+ import type { MosaicSource as BaseMosaicSource } from '@developmentseed/deck.gl-geotiff';
4
+ /**
5
+ * A STAC-like item with bounding box and COG asset URL
6
+ * Extends the base MosaicSource from deck.gl-geotiff with asset info
7
+ */
8
+ export interface MosaicSource extends BaseMosaicSource {
9
+ /** Asset containing the COG URL */
10
+ assets: {
11
+ image: {
12
+ href: string;
13
+ };
14
+ };
15
+ }
16
+ /**
17
+ * Render mode for the mosaic layer
18
+ */
19
+ export type MosaicRenderMode = 'trueColor' | 'falseColor' | 'ndvi' | 'custom';
20
+ /**
21
+ * Custom render module for advanced band manipulation
22
+ */
23
+ export interface RenderModule {
24
+ module: {
25
+ name: string;
26
+ inject?: Record<string, string>;
27
+ };
28
+ props?: Record<string, unknown>;
29
+ }
30
+ interface Props {
31
+ id: string;
32
+ /**
33
+ * Array of STAC-like items with bbox and COG asset URLs
34
+ */
35
+ sources: MosaicSource[];
36
+ /**
37
+ * Render mode: trueColor (RGB), falseColor (NIR-R-G), ndvi (with colormap)
38
+ */
39
+ renderMode?: MosaicRenderMode;
40
+ /**
41
+ * Custom render modules (only used when renderMode is 'custom')
42
+ */
43
+ customRenderModules?: (texture: Texture) => RenderModule[];
44
+ /**
45
+ * Custom colormap data for NDVI (Uint8ClampedArray of RGBA values, 256 colors)
46
+ * @reserved Currently not implemented - NDVI uses built-in cfastie colormap.
47
+ */
48
+ colormapData?: Uint8ClampedArray;
49
+ /**
50
+ * Maximum number of tiles to cache
51
+ */
52
+ maxCacheSize?: number;
53
+ /**
54
+ * Layer opacity (0-1)
55
+ */
56
+ opacity?: number;
57
+ /**
58
+ * Layer visibility
59
+ */
60
+ visible?: boolean;
61
+ /**
62
+ * Enable picking on this layer
63
+ */
64
+ pickable?: boolean;
65
+ /**
66
+ * Auto highlight on hover
67
+ */
68
+ autoHighlight?: boolean;
69
+ /**
70
+ * Highlight color when autoHighlight is enabled
71
+ */
72
+ highlightColor?: Color;
73
+ /**
74
+ * Insert layer before this layer id
75
+ */
76
+ beforeId?: string;
77
+ }
78
+ declare var __VLS_1: {};
79
+ type __VLS_Slots = {} & {
80
+ default?: (props: typeof __VLS_1) => any;
81
+ };
82
+ declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
83
+ click: (info: {
84
+ color: Uint8Array | null;
85
+ layer: import("@deck.gl/core").Layer | null;
86
+ sourceLayer?: import("@deck.gl/core").Layer | null;
87
+ viewport?: import("@deck.gl/core").Viewport;
88
+ index: number;
89
+ picked: boolean;
90
+ object?: any;
91
+ x: number;
92
+ y: number;
93
+ pixel?: [number, number];
94
+ coordinate?: number[];
95
+ devicePixel?: [number, number];
96
+ pixelRatio: number;
97
+ }) => any;
98
+ error: (error: Error, source?: MosaicSource | undefined) => any;
99
+ hover: (info: {
100
+ color: Uint8Array | null;
101
+ layer: import("@deck.gl/core").Layer | null;
102
+ sourceLayer?: import("@deck.gl/core").Layer | null;
103
+ viewport?: import("@deck.gl/core").Viewport;
104
+ index: number;
105
+ picked: boolean;
106
+ object?: any;
107
+ x: number;
108
+ y: number;
109
+ pixel?: [number, number];
110
+ coordinate?: number[];
111
+ devicePixel?: [number, number];
112
+ pixelRatio: number;
113
+ }) => any;
114
+ sourceLoad: (source: MosaicSource) => any;
115
+ }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
116
+ onClick?: ((info: {
117
+ color: Uint8Array | null;
118
+ layer: import("@deck.gl/core").Layer | null;
119
+ sourceLayer?: import("@deck.gl/core").Layer | null;
120
+ viewport?: import("@deck.gl/core").Viewport;
121
+ index: number;
122
+ picked: boolean;
123
+ object?: any;
124
+ x: number;
125
+ y: number;
126
+ pixel?: [number, number];
127
+ coordinate?: number[];
128
+ devicePixel?: [number, number];
129
+ pixelRatio: number;
130
+ }) => any) | undefined;
131
+ onError?: ((error: Error, source?: MosaicSource | undefined) => any) | undefined;
132
+ onHover?: ((info: {
133
+ color: Uint8Array | null;
134
+ layer: import("@deck.gl/core").Layer | null;
135
+ sourceLayer?: import("@deck.gl/core").Layer | null;
136
+ viewport?: import("@deck.gl/core").Viewport;
137
+ index: number;
138
+ picked: boolean;
139
+ object?: any;
140
+ x: number;
141
+ y: number;
142
+ pixel?: [number, number];
143
+ coordinate?: number[];
144
+ devicePixel?: [number, number];
145
+ pixelRatio: number;
146
+ }) => any) | undefined;
147
+ onSourceLoad?: ((source: MosaicSource) => any) | undefined;
148
+ }>, {
149
+ opacity: number;
150
+ pickable: boolean;
151
+ visible: boolean;
152
+ autoHighlight: boolean;
153
+ maxCacheSize: number;
154
+ renderMode: MosaicRenderMode;
155
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
156
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
157
+ declare const _default: typeof __VLS_export;
158
+ export default _default;
159
+ type __VLS_WithSlots<T, S> = T & {
160
+ new (): {
161
+ $slots: S;
162
+ };
163
+ };
@@ -0,0 +1,2 @@
1
+ export { default as VLayerDeckglMosaic } from './VLayerDeckglMosaic.vue';
2
+ export type { MosaicSource, MosaicRenderMode, RenderModule, } from './VLayerDeckglMosaic.vue';
@@ -115,8 +115,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
115
115
  }>, {
116
116
  opacity: number;
117
117
  pickable: boolean;
118
- background: boolean;
119
118
  visible: boolean;
119
+ background: boolean;
120
120
  billboard: boolean;
121
121
  autoHighlight: boolean;
122
122
  sizeScale: number;
@@ -97,9 +97,9 @@ declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, i
97
97
  opacity: number;
98
98
  pickable: boolean;
99
99
  visible: boolean;
100
- bounds: [number, number, number, number];
101
100
  animate: boolean;
102
101
  color: Color;
102
+ bounds: [number, number, number, number];
103
103
  uMin: number;
104
104
  uMax: number;
105
105
  vMin: number;
@@ -5,6 +5,7 @@ export { RasterLayer as VLayerMaplibreRaster } from './maplibre/raster';
5
5
  export { VectorLayer as VLayerMaplibreVector } from './maplibre/vector';
6
6
  export { VideoLayer as VLayerMaplibreVideo } from './maplibre/video';
7
7
  export { PmtileLayer as VLayerMaplibrePmtile } from './maplibre/pmtile';
8
- export { ClusterLayer as VLayerMaplibreCluster } from './maplibre/cluster';
9
- export { RouteLayer as VLayerMaplibreRoute } from './maplibre/route';
8
+ export { ClusterLayer as VLayerMaplibreCluster } from './maplibre/custom/cluster';
9
+ export { RouteLayer as VLayerMaplibreRoute } from './maplibre/custom/route';
10
+ export { VLayerMaplibreIsochrone } from './maplibre/custom/isochrone';
10
11
  export * from './deckgl';
@@ -11,8 +11,8 @@ type __VLS_Slots = {} & {
11
11
  default?: (props: typeof __VLS_1) => any;
12
12
  };
13
13
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
14
- sourceId: string;
15
14
  layerId: string;
15
+ sourceId: string;
16
16
  before: string;
17
17
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
18
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -0,0 +1,71 @@
1
+ interface IsochroneFeature {
2
+ type: 'Feature';
3
+ properties: {
4
+ color: string;
5
+ contour?: number;
6
+ metric?: string;
7
+ [key: string]: unknown;
8
+ };
9
+ geometry: GeoJSON.Polygon | GeoJSON.MultiPolygon;
10
+ }
11
+ interface IsochroneData {
12
+ type: 'FeatureCollection';
13
+ features: IsochroneFeature[];
14
+ }
15
+ interface IsochroneClick {
16
+ feature: IsochroneFeature;
17
+ coordinates: {
18
+ lng: number;
19
+ lat: number;
20
+ };
21
+ }
22
+ interface Props {
23
+ /** Unique identifier for the isochrone layer */
24
+ id?: string;
25
+ /** GeoJSON FeatureCollection with isochrone polygons (from Valhalla, OSRM, etc.) */
26
+ data: IsochroneData | null;
27
+ /** Fill opacity (0-1) */
28
+ fillOpacity?: number;
29
+ /** Line width in pixels for polygon outlines */
30
+ lineWidth?: number;
31
+ /** Line opacity (0-1) */
32
+ lineOpacity?: number;
33
+ /** Whether the layer is visible */
34
+ visible?: boolean;
35
+ /** Whether the layer is interactive (shows pointer cursor on hover) */
36
+ interactive?: boolean;
37
+ /** Render this layer before the specified layer */
38
+ before?: string;
39
+ /** Whether to reverse the feature order (for proper stacking of overlapping polygons) */
40
+ reverseOrder?: boolean;
41
+ }
42
+ declare var __VLS_1: {};
43
+ type __VLS_Slots = {} & {
44
+ default?: (props: typeof __VLS_1) => any;
45
+ };
46
+ declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
47
+ click: (event: IsochroneClick) => any;
48
+ mouseenter: (feature: IsochroneFeature) => any;
49
+ mouseleave: () => any;
50
+ }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
51
+ onClick?: ((event: IsochroneClick) => any) | undefined;
52
+ onMouseenter?: ((feature: IsochroneFeature) => any) | undefined;
53
+ onMouseleave?: (() => any) | undefined;
54
+ }>, {
55
+ id: string;
56
+ visible: boolean;
57
+ interactive: boolean;
58
+ before: string;
59
+ fillOpacity: number;
60
+ lineWidth: number;
61
+ lineOpacity: number;
62
+ reverseOrder: boolean;
63
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
64
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
65
+ declare const _default: typeof __VLS_export;
66
+ export default _default;
67
+ type __VLS_WithSlots<T, S> = T & {
68
+ new (): {
69
+ $slots: S;
70
+ };
71
+ };
@@ -0,0 +1 @@
1
+ export { default as VLayerMaplibreIsochrone } from './VLayerMaplibreIsochrone.vue';
@@ -22,8 +22,8 @@ declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, i
22
22
  }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
23
23
  "onOn-click"?: ((event: LayerClick) => any) | undefined;
24
24
  }>, {
25
- sourceId: string;
26
25
  layerId: string;
26
+ sourceId: string;
27
27
  before: string;
28
28
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
29
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -55,9 +55,9 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
55
55
  required: false;
56
56
  };
57
57
  }>> & Readonly<{}>, {
58
+ layerId: string;
58
59
  layer: AnyLayer;
59
60
  sourceId: string;
60
- layerId: string;
61
61
  before: string;
62
62
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
63
63
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -51,9 +51,9 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
51
51
  required: false;
52
52
  };
53
53
  }>> & Readonly<{}>, {
54
+ layerId: string;
54
55
  layer: RasterLayerSpecification;
55
56
  sourceId: string;
56
- layerId: string;
57
57
  before: string;
58
58
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
59
59
  declare const _default: typeof __VLS_export;
@@ -55,9 +55,9 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
55
55
  required: false;
56
56
  };
57
57
  }>> & Readonly<{}>, {
58
+ layerId: string;
58
59
  layer: AnyLayer;
59
60
  sourceId: string;
60
- layerId: string;
61
61
  before: string;
62
62
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
63
63
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;