@kispace-io/gs-lib 1.1.8 → 1.2.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/dist/base-map-builder.d.ts.map +1 -1
- package/dist/gs-model.d.ts +6 -0
- package/dist/gs-model.d.ts.map +1 -1
- package/dist/index.d.ts +3 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +890 -288
- package/dist/index.js.map +1 -1
- package/dist/map-renderer.d.ts +94 -0
- package/dist/map-renderer.d.ts.map +1 -0
- package/dist/ml/gs-gs2ml.d.ts +96 -0
- package/dist/ml/gs-gs2ml.d.ts.map +1 -0
- package/dist/ml/gs-ml-adapters.d.ts +41 -0
- package/dist/ml/gs-ml-adapters.d.ts.map +1 -0
- package/dist/ml/gs-ml-lib.d.ts +17 -0
- package/dist/ml/gs-ml-lib.d.ts.map +1 -0
- package/dist/ml/gs-ml2gs.d.ts +10 -0
- package/dist/ml/gs-ml2gs.d.ts.map +1 -0
- package/dist/ml/gs-mlns.d.ts +10 -0
- package/dist/ml/gs-mlns.d.ts.map +1 -0
- package/dist/ml/index.d.ts +9 -0
- package/dist/ml/index.d.ts.map +1 -0
- package/dist/ml/maplibre-map-renderer.d.ts +66 -0
- package/dist/ml/maplibre-map-renderer.d.ts.map +1 -0
- package/dist/{gs-gs2ol.d.ts → ol/gs-gs2ol.d.ts} +2 -2
- package/dist/ol/gs-gs2ol.d.ts.map +1 -0
- package/dist/ol/gs-ol-adapters.d.ts.map +1 -0
- package/dist/{gs-lib.d.ts → ol/gs-ol-lib.d.ts} +4 -4
- package/dist/ol/gs-ol-lib.d.ts.map +1 -0
- package/dist/{gs-ol2gs.d.ts → ol/gs-ol2gs.d.ts} +1 -1
- package/dist/ol/gs-ol2gs.d.ts.map +1 -0
- package/dist/ol/gs-olns.d.ts.map +1 -0
- package/dist/ol/index.d.ts +9 -0
- package/dist/ol/index.d.ts.map +1 -0
- package/dist/ol/openlayers-map-renderer.d.ts +68 -0
- package/dist/ol/openlayers-map-renderer.d.ts.map +1 -0
- package/package.json +6 -2
- package/src/base-map-builder.ts +8 -9
- package/src/gs-model.ts +7 -1
- package/src/index.ts +12 -7
- package/src/map-renderer.ts +115 -0
- package/src/ml/gs-gs2ml.ts +717 -0
- package/src/ml/gs-ml-adapters.ts +134 -0
- package/src/ml/gs-ml-lib.ts +124 -0
- package/src/ml/gs-ml2gs.ts +66 -0
- package/src/ml/gs-mlns.ts +50 -0
- package/src/ml/index.ts +41 -0
- package/src/ml/maplibre-map-renderer.ts +428 -0
- package/src/{gs-gs2ol.ts → ol/gs-gs2ol.ts} +10 -4
- package/src/{gs-lib.ts → ol/gs-ol-lib.ts} +7 -6
- package/src/{gs-ol2gs.ts → ol/gs-ol2gs.ts} +1 -1
- package/src/ol/index.ts +21 -0
- package/src/ol/openlayers-map-renderer.ts +719 -0
- package/dist/gs-gs2ol.d.ts.map +0 -1
- package/dist/gs-lib.d.ts.map +0 -1
- package/dist/gs-ol-adapters.d.ts.map +0 -1
- package/dist/gs-ol2gs.d.ts.map +0 -1
- package/dist/gs-olns.d.ts.map +0 -1
- /package/dist/{gs-ol-adapters.d.ts → ol/gs-ol-adapters.d.ts} +0 -0
- /package/dist/{gs-olns.d.ts → ol/gs-olns.d.ts} +0 -0
- /package/src/{gs-ol-adapters.ts → ol/gs-ol-adapters.ts} +0 -0
- /package/src/{gs-olns.ts → ol/gs-olns.ts} +0 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { GsMap, GsLayer, GsControl, GsOverlay } from './gs-model';
|
|
2
|
+
/**
|
|
3
|
+
* Sync event types that describe what changed in the map
|
|
4
|
+
*/
|
|
5
|
+
export type MapSyncEvent = {
|
|
6
|
+
type: 'viewChanged';
|
|
7
|
+
view: {
|
|
8
|
+
center: [number, number];
|
|
9
|
+
zoom: number;
|
|
10
|
+
rotation?: number;
|
|
11
|
+
pitch?: number;
|
|
12
|
+
bearing?: number;
|
|
13
|
+
};
|
|
14
|
+
} | {
|
|
15
|
+
type: 'featuresChanged';
|
|
16
|
+
layerUuid: string;
|
|
17
|
+
features: any[];
|
|
18
|
+
} | {
|
|
19
|
+
type: 'featureSelected';
|
|
20
|
+
layerUuid: string;
|
|
21
|
+
feature: any;
|
|
22
|
+
metrics?: {
|
|
23
|
+
length?: number;
|
|
24
|
+
area?: number;
|
|
25
|
+
};
|
|
26
|
+
} | {
|
|
27
|
+
type: 'featureDeselected';
|
|
28
|
+
} | {
|
|
29
|
+
type: 'drawingDisabled';
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Screenshot result from captureScreenshot
|
|
33
|
+
*/
|
|
34
|
+
export type ScreenshotResult = {
|
|
35
|
+
success: true;
|
|
36
|
+
dataUrl: string;
|
|
37
|
+
width: number;
|
|
38
|
+
height: number;
|
|
39
|
+
} | {
|
|
40
|
+
success: false;
|
|
41
|
+
error: string;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Abstract interface for map rendering
|
|
45
|
+
* The host app only knows about this interface and the GsMap domain model
|
|
46
|
+
*
|
|
47
|
+
* This interface is focused purely on rendering and map state management.
|
|
48
|
+
* For operations, use MapOperations interface instead.
|
|
49
|
+
*/
|
|
50
|
+
export interface MapRenderer {
|
|
51
|
+
render(container: string | HTMLElement): Promise<void>;
|
|
52
|
+
reattached?(): Promise<void>;
|
|
53
|
+
modelToUI(updatedGsMap?: GsMap): Promise<void>;
|
|
54
|
+
getViewExtent(): Promise<number[]>;
|
|
55
|
+
getOperations(): MapOperations;
|
|
56
|
+
setOnDirty(callback: () => void): void;
|
|
57
|
+
triggerDirty(): void;
|
|
58
|
+
setOnSync(callback: (event: MapSyncEvent) => void): void;
|
|
59
|
+
triggerSync(event: MapSyncEvent): void;
|
|
60
|
+
setOnClick?(callback: () => void): void;
|
|
61
|
+
captureScreenshot(): Promise<ScreenshotResult>;
|
|
62
|
+
destroy(): void;
|
|
63
|
+
}
|
|
64
|
+
export declare function findLayerByUuid(gsMap: GsMap, uuid: string): GsLayer | undefined;
|
|
65
|
+
export declare function findLayerIndexByUuid(gsMap: GsMap, uuid: string): number;
|
|
66
|
+
export declare function findControlByUuid(gsMap: GsMap, uuid: string): GsControl | undefined;
|
|
67
|
+
export declare function findControlIndexByUuid(gsMap: GsMap, uuid: string): number;
|
|
68
|
+
export declare function findOverlayByUuid(gsMap: GsMap, uuid: string): GsOverlay | undefined;
|
|
69
|
+
export declare function findOverlayIndexByUuid(gsMap: GsMap, uuid: string): number;
|
|
70
|
+
/**
|
|
71
|
+
* Map operations interface for high-level map commands
|
|
72
|
+
* These operations work with the domain model and are framework-agnostic
|
|
73
|
+
*/
|
|
74
|
+
export interface MapOperations {
|
|
75
|
+
setZoom(zoom: number): Promise<void>;
|
|
76
|
+
setCenter(center: [number, number]): Promise<void>;
|
|
77
|
+
switchColorMode(mode?: 'dark' | 'light'): Promise<void>;
|
|
78
|
+
addLayer(layer: any, isBasemap?: boolean): Promise<void>;
|
|
79
|
+
deleteLayer(uuid: string): Promise<void>;
|
|
80
|
+
renameLayer(uuid: string, newName: string): Promise<void>;
|
|
81
|
+
moveLayer(uuid: string, targetUuid?: string): Promise<void>;
|
|
82
|
+
setLayerVisible(uuid: string, visible: boolean): Promise<void>;
|
|
83
|
+
addControlFromModule(src: string): Promise<void>;
|
|
84
|
+
removeControl(uuid: string): Promise<void>;
|
|
85
|
+
addOverlayFromModule(src: string, position?: string): Promise<void>;
|
|
86
|
+
removeOverlay(uuid: string): Promise<void>;
|
|
87
|
+
enableDrawing(geometryType: 'Point' | 'LineString' | 'Polygon', layerUuid: string): Promise<void>;
|
|
88
|
+
disableDrawing(): Promise<void>;
|
|
89
|
+
enableFeatureSelection(): Promise<void>;
|
|
90
|
+
disableSelection(): Promise<void>;
|
|
91
|
+
deleteSelectedFeatures(): Promise<void>;
|
|
92
|
+
}
|
|
93
|
+
export declare const createProxy: (operations: MapOperations[]) => MapOperations;
|
|
94
|
+
//# sourceMappingURL=map-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map-renderer.d.ts","sourceRoot":"","sources":["../src/map-renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { Map, StyleSpecification, LayerSpecification, SourceSpecification } from 'maplibre-gl';
|
|
2
|
+
import { GsMlControl, GsMlOverlayAdapter } from './gs-ml-adapters';
|
|
3
|
+
import { GsMap, GsLayer, GsSource, GsFeature, GsStyle } from '../gs-model';
|
|
4
|
+
export declare const ML_KEY_GS_LAYER_UUID = "gs-layer-uuid";
|
|
5
|
+
export declare const ML_KEY_GS_SOURCE_UUID = "gs-source-uuid";
|
|
6
|
+
export declare const EPSG_3857 = "EPSG:3857";
|
|
7
|
+
export declare const EPSG_4326 = "EPSG:4326";
|
|
8
|
+
/**
|
|
9
|
+
* Convert coordinates to EPSG:4326 (WGS84)
|
|
10
|
+
* MapLibre uses WGS84 (lon/lat in degrees)
|
|
11
|
+
* Uses proj4js for accurate coordinate transformation
|
|
12
|
+
*
|
|
13
|
+
* @param coords - Source coordinates
|
|
14
|
+
* @param sourceProjection - Source projection (default: EPSG:3857)
|
|
15
|
+
*/
|
|
16
|
+
export declare function toWgs84(coords: [number, number], sourceProjection?: string): [number, number];
|
|
17
|
+
/**
|
|
18
|
+
* Convert coordinates to EPSG:3857 (Web Mercator)
|
|
19
|
+
* GsMap stores coordinates in Web Mercator (meters)
|
|
20
|
+
* Uses proj4js for accurate coordinate transformation
|
|
21
|
+
*
|
|
22
|
+
* @param coords - Source coordinates
|
|
23
|
+
* @param sourceProjection - Source projection (default: EPSG:4326)
|
|
24
|
+
*/
|
|
25
|
+
export declare function toWebMercator(coords: [number, number], sourceProjection?: string): [number, number];
|
|
26
|
+
/**
|
|
27
|
+
* Generic coordinate transformation between any two projections
|
|
28
|
+
* Uses proj4js for accurate coordinate transformation
|
|
29
|
+
*
|
|
30
|
+
* @param coords - Source coordinates
|
|
31
|
+
* @param fromProjection - Source projection
|
|
32
|
+
* @param toProjection - Target projection
|
|
33
|
+
*/
|
|
34
|
+
export declare function transformCoords(coords: [number, number], fromProjection: string, toProjection: string): [number, number];
|
|
35
|
+
/**
|
|
36
|
+
* Convert GsFeature to GeoJSON Feature (with coordinate conversion to WGS84)
|
|
37
|
+
*/
|
|
38
|
+
/**
|
|
39
|
+
* Convert GsFeature to GeoJSON Feature (with coordinate conversion to WGS84)
|
|
40
|
+
*
|
|
41
|
+
* @param feature - GsFeature to convert
|
|
42
|
+
* @param sourceProjection - Source projection of coordinates (default: EPSG:3857)
|
|
43
|
+
*/
|
|
44
|
+
export declare function toGeoJsonFeature(feature: GsFeature, sourceProjection?: string): GeoJSON.Feature;
|
|
45
|
+
/**
|
|
46
|
+
* Convert array of GsFeatures to GeoJSON FeatureCollection
|
|
47
|
+
*/
|
|
48
|
+
/**
|
|
49
|
+
* Convert array of GsFeatures to GeoJSON FeatureCollection
|
|
50
|
+
*
|
|
51
|
+
* @param features - Array of GsFeatures
|
|
52
|
+
* @param sourceProjection - Source projection of coordinates (default: EPSG:3857)
|
|
53
|
+
*/
|
|
54
|
+
export declare function toGeoJsonFeatureCollection(features: GsFeature[], sourceProjection?: string): GeoJSON.FeatureCollection;
|
|
55
|
+
/**
|
|
56
|
+
* Convert GsSource to MapLibre SourceSpecification
|
|
57
|
+
*/
|
|
58
|
+
export declare function toMlSource(source: GsSource, _layer?: GsLayer): SourceSpecification | null;
|
|
59
|
+
/**
|
|
60
|
+
* Convert GsStyle to MapLibre paint properties for fill layers
|
|
61
|
+
*/
|
|
62
|
+
export declare function toMlFillPaint(style?: GsStyle): Record<string, any>;
|
|
63
|
+
/**
|
|
64
|
+
* Convert GsStyle to MapLibre paint properties for line layers
|
|
65
|
+
*/
|
|
66
|
+
export declare function toMlLinePaint(style?: GsStyle): Record<string, any>;
|
|
67
|
+
/**
|
|
68
|
+
* Convert GsStyle to MapLibre paint properties for circle layers
|
|
69
|
+
*/
|
|
70
|
+
export declare function toMlCirclePaint(style?: GsStyle): Record<string, any>;
|
|
71
|
+
/**
|
|
72
|
+
* Convert GsStyle to MapLibre paint properties for fill-extrusion layers (3D buildings)
|
|
73
|
+
* Uses data-driven styling to get height and color from feature properties
|
|
74
|
+
*/
|
|
75
|
+
export declare function toMlFillExtrusionPaint(style?: GsStyle): Record<string, any>;
|
|
76
|
+
/**
|
|
77
|
+
* Convert GsLayer to MapLibre LayerSpecification(s)
|
|
78
|
+
* Returns an array because vector layers may need multiple MapLibre layers
|
|
79
|
+
* (one for each geometry type: fill, line, circle, fill-extrusion)
|
|
80
|
+
*/
|
|
81
|
+
export declare function toMlLayers(layer: GsLayer, sourceId: string, defaultStyle?: GsStyle): LayerSpecification[];
|
|
82
|
+
/**
|
|
83
|
+
* Build initial MapLibre style from GsMap
|
|
84
|
+
*/
|
|
85
|
+
export declare function buildInitialStyle(gsMap: GsMap): StyleSpecification;
|
|
86
|
+
export type MlImporter = (src: string) => Promise<any>;
|
|
87
|
+
export declare const DefaultMlImporter: MlImporter;
|
|
88
|
+
/**
|
|
89
|
+
* Import and initialize a control module for MapLibre
|
|
90
|
+
*/
|
|
91
|
+
export declare function importMlControlSource(map: Map, control: GsMlControl, src: string, env?: any, importer?: MlImporter): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Import and initialize an overlay module for MapLibre
|
|
94
|
+
*/
|
|
95
|
+
export declare function importMlOverlaySource(map: Map, adapter: GsMlOverlayAdapter, src: string, env?: any, importer?: MlImporter): Promise<void>;
|
|
96
|
+
//# sourceMappingURL=gs-gs2ml.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gs-gs2ml.d.ts","sourceRoot":"","sources":["../../src/ml/gs-gs2ml.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Map, IControl } from 'maplibre-gl';
|
|
2
|
+
/**
|
|
3
|
+
* MapLibre Control adapter for user modules
|
|
4
|
+
*/
|
|
5
|
+
export declare class GsMlControlAdapter {
|
|
6
|
+
private map;
|
|
7
|
+
private container;
|
|
8
|
+
private templateFunction?;
|
|
9
|
+
constructor(map: Map);
|
|
10
|
+
getMap(): Map;
|
|
11
|
+
getElement(): HTMLElement;
|
|
12
|
+
render(strings?: TemplateStringsArray | Function): void;
|
|
13
|
+
style(styleJson: any): void;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* MapLibre IControl wrapper for user modules
|
|
17
|
+
*/
|
|
18
|
+
export declare class GsMlControl implements IControl {
|
|
19
|
+
private adapter;
|
|
20
|
+
constructor(_position?: string);
|
|
21
|
+
onAdd(map: Map): HTMLElement;
|
|
22
|
+
onRemove(): void;
|
|
23
|
+
getAdapter(): GsMlControlAdapter;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* MapLibre Overlay adapter using Popup
|
|
27
|
+
*/
|
|
28
|
+
export declare class GsMlOverlayAdapter {
|
|
29
|
+
private map;
|
|
30
|
+
private popup;
|
|
31
|
+
private container;
|
|
32
|
+
private templateFunction?;
|
|
33
|
+
constructor(map: Map);
|
|
34
|
+
getMap(): Map;
|
|
35
|
+
getElement(): HTMLElement;
|
|
36
|
+
render(strings?: TemplateStringsArray | Function): void;
|
|
37
|
+
style(styleJson: any): void;
|
|
38
|
+
show(coords: number[]): void;
|
|
39
|
+
hide(): void;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=gs-ml-adapters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gs-ml-adapters.d.ts","sourceRoot":"","sources":["../../src/ml/gs-ml-adapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAS,QAAQ,EAAc,MAAM,aAAa,CAAC;AAG/D;;GAEG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,gBAAgB,CAAC,CAAW;gBAExB,GAAG,EAAE,GAAG;IAOpB,MAAM,IAAI,GAAG;IAIb,UAAU,IAAI,WAAW;IAIzB,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;IAYhD,KAAK,CAAC,SAAS,EAAE,GAAG;CAOvB;AAED;;GAEG;AACH,qBAAa,WAAY,YAAW,QAAQ;IACxC,OAAO,CAAC,OAAO,CAAqB;gBAExB,SAAS,CAAC,EAAE,MAAM;IAI9B,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW;IAK5B,QAAQ,IAAI,IAAI;IAIhB,UAAU,IAAI,kBAAkB;CAGnC;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,gBAAgB,CAAC,CAAW;gBAExB,GAAG,EAAE,GAAG;IAcpB,MAAM,IAAI,GAAG;IAIb,UAAU,IAAI,WAAW;IAIzB,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;IAYhD,KAAK,CAAC,SAAS,EAAE,GAAG;IAQpB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE;IAMrB,IAAI;CAIP"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { GsMap } from '../gs-model';
|
|
2
|
+
import { Map } from 'maplibre-gl';
|
|
3
|
+
import { MlImporter } from './gs-gs2ml';
|
|
4
|
+
export * from '../gs-model';
|
|
5
|
+
export * from './gs-gs2ml';
|
|
6
|
+
export interface MlLibOptions {
|
|
7
|
+
containerSelector: string | HTMLElement;
|
|
8
|
+
gsMap: GsMap;
|
|
9
|
+
env?: any;
|
|
10
|
+
modules?: any;
|
|
11
|
+
importer?: MlImporter;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Main entry point to create a MapLibre map from GsMap
|
|
15
|
+
*/
|
|
16
|
+
export declare function mlLib(options: MlLibOptions): Promise<Map>;
|
|
17
|
+
//# sourceMappingURL=gs-ml-lib.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gs-ml-lib.d.ts","sourceRoot":"","sources":["../../src/ml/gs-ml-lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAC;AAClC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,EACH,GAAG,EAGN,MAAM,aAAa,CAAC;AACrB,OAAO,EAMH,UAAU,EACb,MAAM,YAAY,CAAC;AAOpB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAE3B,MAAM,WAAW,YAAY;IACzB,iBAAiB,EAAE,MAAM,GAAG,WAAW,CAAC;IACxC,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,QAAQ,CAAC,EAAE,UAAU,CAAC;CACzB;AAED;;GAEG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAuF/D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { GsFeature, GsGeometry } from '../gs-model';
|
|
2
|
+
/**
|
|
3
|
+
* Convert GeoJSON geometry to GsGeometry (with coordinate conversion to EPSG:3857)
|
|
4
|
+
*/
|
|
5
|
+
export declare function toGsGeometry(geometry: GeoJSON.Geometry): GsGeometry;
|
|
6
|
+
/**
|
|
7
|
+
* Convert MapLibre/GeoJSON feature to GsFeature (with coordinate conversion to EPSG:3857)
|
|
8
|
+
*/
|
|
9
|
+
export declare function toGsFeature(feature: GeoJSON.Feature): GsFeature;
|
|
10
|
+
//# sourceMappingURL=gs-ml2gs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gs-ml2gs.d.ts","sourceRoot":"","sources":["../../src/ml/gs-ml2gs.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EACT,UAAU,EAIb,MAAM,aAAa,CAAC;AAuBrB;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,GAAG,UAAU,CAWnE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,CAgB/D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { default as maplibregl } from 'maplibre-gl';
|
|
2
|
+
/**
|
|
3
|
+
* MapLibre library re-exports
|
|
4
|
+
* Centralized re-exports for MapLibre to provide a single source of truth.
|
|
5
|
+
*/
|
|
6
|
+
export { Map, Marker, Popup, NavigationControl, GeolocateControl, ScaleControl, FullscreenControl, AttributionControl, LngLat, LngLatBounds, Point, MercatorCoordinate } from 'maplibre-gl';
|
|
7
|
+
export type { MapOptions, StyleSpecification, LayerSpecification, SourceSpecification, GeoJSONSourceSpecification, RasterSourceSpecification, VectorSourceSpecification, MapMouseEvent, MapLayerMouseEvent, IControl, MarkerOptions, PopupOptions, LngLatLike, LngLatBoundsLike, PointLike, FitBoundsOptions, CameraOptions, AnimationOptions, ExpressionSpecification, FilterSpecification } from 'maplibre-gl';
|
|
8
|
+
export { maplibregl };
|
|
9
|
+
export default maplibregl;
|
|
10
|
+
//# sourceMappingURL=gs-mlns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gs-mlns.d.ts","sourceRoot":"","sources":["../../src/ml/gs-mlns.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACH,GAAG,EACH,MAAM,EACN,KAAK,EACL,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,MAAM,EACN,YAAY,EACZ,KAAK,EACL,kBAAkB,EACrB,MAAM,aAAa,CAAC;AAGrB,YAAY,EACR,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,aAAa,EACb,kBAAkB,EAClB,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACtB,MAAM,aAAa,CAAC;AAGrB,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from '../gs-model';
|
|
2
|
+
export * from '../map-renderer';
|
|
3
|
+
export * from './gs-ml-lib';
|
|
4
|
+
export * from './gs-ml2gs';
|
|
5
|
+
export * from './gs-ml-adapters';
|
|
6
|
+
export { toGeoJsonFeature, toGeoJsonFeatureCollection, toMlSource, toMlLayers, toMlFillPaint, toMlLinePaint, toMlCirclePaint, toMlFillExtrusionPaint, buildInitialStyle, toWgs84, toWebMercator, transformCoords, EPSG_3857, EPSG_4326, importMlControlSource, importMlOverlaySource, ML_KEY_GS_LAYER_UUID, ML_KEY_GS_SOURCE_UUID, type MlImporter } from './gs-gs2ml';
|
|
7
|
+
export * as ml from './gs-mlns';
|
|
8
|
+
export { MapLibreMapRenderer } from './maplibre-map-renderer';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ml/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAA;AAG3B,cAAc,iBAAiB,CAAA;AAG/B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,OAAO,EACH,gBAAgB,EAChB,0BAA0B,EAC1B,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,OAAO,EACP,aAAa,EACb,eAAe,EACf,SAAS,EACT,SAAS,EACT,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,KAAK,UAAU,EAClB,MAAM,YAAY,CAAA;AAGnB,OAAO,KAAK,EAAE,MAAM,WAAW,CAAA;AAG/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { MapOperations, MapRenderer, MapSyncEvent, ScreenshotResult } from '../map-renderer';
|
|
2
|
+
import { GsMap } from '../gs-model';
|
|
3
|
+
import { Map } from 'maplibre-gl';
|
|
4
|
+
/**
|
|
5
|
+
* MapLibre map renderer that implements the MapRenderer interface
|
|
6
|
+
*/
|
|
7
|
+
export declare class MapLibreMapRenderer implements MapRenderer {
|
|
8
|
+
private map?;
|
|
9
|
+
private gsMap;
|
|
10
|
+
private env?;
|
|
11
|
+
private onDirtyCallback?;
|
|
12
|
+
private onSyncCallback?;
|
|
13
|
+
private isDestroyed;
|
|
14
|
+
private operations?;
|
|
15
|
+
constructor(gsMap: GsMap, env?: any);
|
|
16
|
+
reattached(): Promise<void>;
|
|
17
|
+
render(container: string | HTMLElement): Promise<void>;
|
|
18
|
+
modelToUI(updatedGsMap?: GsMap): Promise<void>;
|
|
19
|
+
getOperations(): MapOperations;
|
|
20
|
+
getViewExtent(): Promise<number[]>;
|
|
21
|
+
captureScreenshot(): Promise<ScreenshotResult>;
|
|
22
|
+
setOnDirty(callback: () => void): void;
|
|
23
|
+
setOnSync(callback: (event: MapSyncEvent) => void): void;
|
|
24
|
+
triggerDirty(): void;
|
|
25
|
+
triggerSync(event: MapSyncEvent): void;
|
|
26
|
+
private syncViewToModel;
|
|
27
|
+
syncLayerFeaturesToModel(layerUuid: string): void;
|
|
28
|
+
private setupEventListeners;
|
|
29
|
+
getMap(): Map | undefined;
|
|
30
|
+
getGsMap(): GsMap;
|
|
31
|
+
destroy(): void;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* MapLibre-specific map operations implementation
|
|
35
|
+
*/
|
|
36
|
+
export declare class MapLibreMapOperations implements MapOperations {
|
|
37
|
+
private map;
|
|
38
|
+
private renderer;
|
|
39
|
+
private selectedFeatureId?;
|
|
40
|
+
private selectedLayerId?;
|
|
41
|
+
private drawMode?;
|
|
42
|
+
private clickHandler?;
|
|
43
|
+
private keyHandler?;
|
|
44
|
+
constructor(map: Map, renderer: MapLibreMapRenderer);
|
|
45
|
+
setZoom(zoom: number): Promise<void>;
|
|
46
|
+
setCenter(center: [number, number]): Promise<void>;
|
|
47
|
+
switchColorMode(mode?: 'dark' | 'light'): Promise<void>;
|
|
48
|
+
addLayer(layer: any, isBasemap?: boolean): Promise<void>;
|
|
49
|
+
private getFirstLayerId;
|
|
50
|
+
deleteLayer(uuid: string): Promise<void>;
|
|
51
|
+
renameLayer(_uuid: string, _newName: string): Promise<void>;
|
|
52
|
+
moveLayer(uuid: string, targetUuid?: string): Promise<void>;
|
|
53
|
+
setLayerVisible(uuid: string, visible: boolean): Promise<void>;
|
|
54
|
+
addControlFromModule(_src: string): Promise<void>;
|
|
55
|
+
removeControl(_uuid: string): Promise<void>;
|
|
56
|
+
addOverlayFromModule(_src: string, _position?: string): Promise<void>;
|
|
57
|
+
removeOverlay(_uuid: string): Promise<void>;
|
|
58
|
+
enableDrawing(geometryType: 'Point' | 'LineString' | 'Polygon', layerUuid: string): Promise<void>;
|
|
59
|
+
private addFeatureToLayer;
|
|
60
|
+
disableDrawing(): Promise<void>;
|
|
61
|
+
enableFeatureSelection(): Promise<void>;
|
|
62
|
+
disableSelection(): Promise<void>;
|
|
63
|
+
deleteSelectedFeatures(): Promise<void>;
|
|
64
|
+
cleanup(): void;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=maplibre-map-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maplibre-map-renderer.d.ts","sourceRoot":"","sources":["../../src/ml/maplibre-map-renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GsControl, GsFeature, GsFillStyle, GsGeometry, GsIcon, GsImageStyle, GsLayer, GsMap, GsOverlay, GsSource, GsStrokeStyle, GsStyle, GsTextStyle } from '
|
|
1
|
+
import { GsControl, GsFeature, GsFillStyle, GsGeometry, GsIcon, GsImageStyle, GsLayer, GsMap, GsOverlay, GsSource, GsStrokeStyle, GsStyle, GsTextStyle } from '../gs-model';
|
|
2
2
|
import { Feature, Map, Overlay } from 'ol';
|
|
3
3
|
import { MapOptions } from 'ol/Map';
|
|
4
4
|
import { Circle as CircleStyle, Fill, Icon, RegularShape, Stroke, Style, Text } from 'ol/style';
|
|
@@ -37,5 +37,5 @@ export declare const importControlSource: (olControl: GsOlControl, src: string,
|
|
|
37
37
|
export type Importer = (src: string) => Promise<any>;
|
|
38
38
|
export declare const DefaultImporter: Importer;
|
|
39
39
|
export declare const cleanupEventSubscriptions: (olMap: Map) => void;
|
|
40
|
-
export declare const toOlMap: (gsMap: GsMap, options?: MapOptions, env?: any, importer?: Importer) => Promise<Map>;
|
|
40
|
+
export declare const toOlMap: (gsMap: GsMap, options?: MapOptions, env?: any, importer?: Importer, target?: HTMLElement) => Promise<Map>;
|
|
41
41
|
//# sourceMappingURL=gs-gs2ol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gs-gs2ol.d.ts","sourceRoot":"","sources":["../../src/ol/gs-gs2ol.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,SAAS,EACT,SAAS,EACT,WAAW,EACX,UAAU,EACV,MAAM,EACN,YAAY,EACZ,OAAO,EAEP,KAAK,EACL,SAAS,EACT,QAAQ,EAGR,aAAa,EACb,OAAO,EACP,WAAW,EAYd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAO,MAAM,IAAI,CAAC;AAC/C,OAAO,EAAC,UAAU,EAAC,MAAM,QAAQ,CAAC;AAElC,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AAClC,OAAO,EAAC,MAAM,IAAI,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAC,MAAM,UAAU,CAAC;AAO9F,OAAO,SAAS,MAAM,eAAe,CAAC;AACtC,OAAO,UAAU,MAAM,gBAAgB,CAAC;AAExC,OAAO,SAAS,MAAM,eAAe,CAAC;AAGtC,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;AAwBnC,eAAO,MAAM,YAAY,GAAI,UAAU,UAAU,6JAEhD,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,UAAU,MAAM,SAI5C,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,UAAU,aAAa,KAAG,MASpD,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,QAAQ,WAAW,KAAG,IAI9C,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,SAAS,YAAY,KAAG,WAWvD,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,SAAS,YAAY,KAAG,IAsBrD,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,SAAS,YAAY,KAAG,YAc7D,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,SAAS,YAAY,KAAG,WAAW,GAAG,IAAI,GAAG,YAWtE,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,QAAQ,WAAW,KAAG,IAuB9C,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,SAAS,OAAO,KAAG,KAwB5C,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,SAAS,SAAS,KAAG,OAIhD,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,GAAQ,CAAA;AAoHjC,eAAO,MAAM,UAAU,GAAI,QAAQ,QAAQ,EAAE,UAAU,SAAS,CAAC,UAAU,CAAC,QAE3E,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,GAAQ,CAAA;AAmBhC,eAAO,MAAM,SAAS,GAAI,OAAO,OAAO,cAOvC,CAAA;AAED,qBAAa,WAAY,SAAQ,OAAO;gBACxB,OAAO,CAAC,EAAE,GAAG;IAUlB,UAAU;CAGpB;AAED,qBAAa,WAAY,SAAQ,OAAO;gBACxB,OAAO,CAAC,EAAE,GAAG;IASlB,UAAU;CAGpB;AAED,eAAO,MAAM,WAAW,GAAI,SAAS,SAAS,gBAO7C,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,SAAS,SAAS,gBAI7C,CAAA;AAqKD,eAAO,MAAM,mBAAmB,GAAU,WAAW,WAAW,EAAE,KAAK,MAAM,EAAE,WAAW,QAAQ,kBAGjG,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAU,WAAW,WAAW,EAAE,KAAK,MAAM,EAAE,WAAW,QAAQ,kBAGjG,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;AACpD,eAAO,MAAM,eAAe,EAAE,QAAuC,CAAA;AAErE,eAAO,MAAM,yBAAyB,GAAI,OAAO,GAAG,KAAG,IAMtD,CAAA;AAED,eAAO,MAAM,OAAO,GAAU,OAAO,KAAK,EAAE,UAAU,UAAU,EAAE,MAAM,GAAG,EAAE,WAAW,QAAQ,EAAE,SAAS,WAAW,iBAgCrH,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gs-ol-adapters.d.ts","sourceRoot":"","sources":["../../src/ol/gs-ol-adapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,IAAI,CAAC;AACvB,OAAO,EAAC,WAAW,EAAE,WAAW,EAAC,MAAM,YAAY,CAAC;AAGpD,qBAAa,WAAW,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW;IACxD,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IACnB,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEtB,OAAO,CAAC,gBAAgB,CAAC,CAAW;IACpC,SAAS,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;gBAExB,QAAQ,EAAE,CAAC;IAKhB,MAAM,IAAI,GAAG;IAIb,UAAU;IAIV,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,QAAQ;IAYvD,SAAS,CAAC,UAAU;IAGb,KAAK,CAAC,SAAS,EAAE,GAAG;CAO9B;AAED,qBAAa,gBAAiB,SAAQ,WAAW,CAAC,WAAW,CAAC;IACnD,KAAK,CAAC,SAAS,EAAE,GAAG;IAQpB,QAAQ;CAoBlB;AAED,qBAAa,gBAAiB,SAAQ,WAAW,CAAC,WAAW,CAAC;IACnD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE;IAKrB,IAAI;CAGd"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Importer } from './gs-gs2ol';
|
|
2
|
-
import { GsMap } from '
|
|
3
|
-
export * from '
|
|
2
|
+
import { GsMap } from '../gs-model';
|
|
3
|
+
export * from '../gs-model';
|
|
4
4
|
export * from './gs-gs2ol';
|
|
5
5
|
export interface GsAppOptions {
|
|
6
6
|
containerSelector: string | HTMLElement;
|
|
@@ -12,5 +12,5 @@ export interface GsAppOptions {
|
|
|
12
12
|
controls: any;
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
|
-
export declare const
|
|
16
|
-
//# sourceMappingURL=gs-lib.d.ts.map
|
|
15
|
+
export declare const olLib: (options: GsAppOptions) => Promise<import('ol').Map>;
|
|
16
|
+
//# sourceMappingURL=gs-ol-lib.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gs-ol-lib.d.ts","sourceRoot":"","sources":["../../src/ol/gs-ol-lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,QAAQ,EAAC,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAC;AAClC,OAAO,WAAW,CAAC;AAInB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAE3B,MAAM,WAAW,YAAY;IACzB,iBAAiB,EAAE,MAAM,GAAG,WAAW,CAAC;IACxC,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE;QACT,QAAQ,EAAE,GAAG,CAAA;KAChB,CAAA;CACJ;AAED,eAAO,MAAM,KAAK,GAAU,SAAS,YAAY,8BAiChD,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Feature } from 'ol';
|
|
2
|
-
import { GsFeature, GsGeometry, GsLayerType, GsSourceType } from '
|
|
2
|
+
import { GsFeature, GsGeometry, GsLayerType, GsSourceType } from '../gs-model';
|
|
3
3
|
import * as olGeom from "ol/geom";
|
|
4
4
|
export declare const toGsLayerType: (tag: string) => GsLayerType;
|
|
5
5
|
export declare const toGsSourceType: (tag: string) => GsSourceType;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gs-ol2gs.d.ts","sourceRoot":"","sources":["../../src/ol/gs-ol2gs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,IAAI,CAAC;AAC3B,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AAClC,OAAO,EACH,SAAS,EACT,UAAU,EACV,WAAW,EACX,YAAY,EAIf,MAAM,aAAa,CAAC;AAGrB,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,gBAgBxC,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,iBAUzC,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,YAAY,YAAY,oGAMnD,CAAA;AAuBD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,cAAc,GAAG,UAAU,CAKxE;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,aAI3C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gs-olns.d.ts","sourceRoot":"","sources":["../../src/ol/gs-olns.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAa,IAAI,CAAC;AAClB,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,UAAU,CAAC;AAClC,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,UAAU,CAAC;AAClC,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,eAAe,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,eAAe,CAAC;AAGrD,OAAO,EAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAG5D,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,QAAQ,IAAI,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from '../gs-model';
|
|
2
|
+
export * from '../map-renderer';
|
|
3
|
+
export * from './gs-gs2ol';
|
|
4
|
+
export * from './gs-ol2gs';
|
|
5
|
+
export * from './gs-ol-adapters';
|
|
6
|
+
export * from './gs-ol-lib';
|
|
7
|
+
export * from './gs-olns';
|
|
8
|
+
export { OpenLayersMapRenderer } from './openlayers-map-renderer';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ol/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAA;AAG3B,cAAc,iBAAiB,CAAA;AAG/B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAG3B,cAAc,WAAW,CAAA;AAGzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { MapOperations, MapRenderer, MapSyncEvent, ScreenshotResult } from '../map-renderer';
|
|
2
|
+
import { GsMap } from '../gs-model';
|
|
3
|
+
import { Map as OlMap } from './gs-olns';
|
|
4
|
+
/**
|
|
5
|
+
* OpenLayers map renderer that manages OpenLayers maps
|
|
6
|
+
* Provides complete isolation between the host app and the rendering engine
|
|
7
|
+
* User modules are handled by the toOlMap() function
|
|
8
|
+
*/
|
|
9
|
+
export declare class OpenLayersMapRenderer implements MapRenderer {
|
|
10
|
+
olMap?: OlMap;
|
|
11
|
+
gsMap: GsMap;
|
|
12
|
+
private env?;
|
|
13
|
+
private onDirtyCallback?;
|
|
14
|
+
private onSyncCallback?;
|
|
15
|
+
private isDestroyed;
|
|
16
|
+
private operations?;
|
|
17
|
+
private styleCache;
|
|
18
|
+
constructor(gsMap: GsMap, env?: any);
|
|
19
|
+
reattached(): Promise<void>;
|
|
20
|
+
render(container: string | HTMLElement): Promise<void>;
|
|
21
|
+
private applyStylesToLayers;
|
|
22
|
+
private applyStyleToVectorLayer;
|
|
23
|
+
private clearStyleCache;
|
|
24
|
+
modelToUI(updatedGsMap?: GsMap): Promise<void>;
|
|
25
|
+
getOperations(): MapOperations;
|
|
26
|
+
getViewExtent(): Promise<number[]>;
|
|
27
|
+
captureScreenshot(): Promise<ScreenshotResult>;
|
|
28
|
+
setOnDirty(callback: () => void): void;
|
|
29
|
+
setOnSync(callback: (event: MapSyncEvent) => void): void;
|
|
30
|
+
triggerDirty(): void;
|
|
31
|
+
triggerSync(event: MapSyncEvent): void;
|
|
32
|
+
private syncViewToModel;
|
|
33
|
+
syncLayerFeaturesToModel(layerUuid: string): void;
|
|
34
|
+
private setupEventListeners;
|
|
35
|
+
destroy(): void;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* OpenLayers-specific map operations implementation
|
|
39
|
+
*/
|
|
40
|
+
export declare class OpenLayersMapOperations implements MapOperations {
|
|
41
|
+
private olMap;
|
|
42
|
+
private renderer?;
|
|
43
|
+
private drawInteraction?;
|
|
44
|
+
private selectInteraction?;
|
|
45
|
+
private activeDrawingLayerUuid?;
|
|
46
|
+
private keyDownListener?;
|
|
47
|
+
constructor(olMap: OlMap, renderer?: OpenLayersMapRenderer | undefined);
|
|
48
|
+
setZoom(zoom: number): Promise<void>;
|
|
49
|
+
setCenter(center: [number, number]): Promise<void>;
|
|
50
|
+
switchColorMode(mode?: 'dark' | 'light'): Promise<void>;
|
|
51
|
+
addLayer(layer: any, isBasemap?: boolean): Promise<void>;
|
|
52
|
+
deleteLayer(uuid: string): Promise<void>;
|
|
53
|
+
renameLayer(uuid: string, newName: string): Promise<void>;
|
|
54
|
+
moveLayer(uuid: string, targetUuid?: string): Promise<void>;
|
|
55
|
+
setLayerVisible(uuid: string, visible: boolean): Promise<void>;
|
|
56
|
+
addControlFromModule(_src: string): Promise<void>;
|
|
57
|
+
removeControl(_uuid: string): Promise<void>;
|
|
58
|
+
addOverlayFromModule(_src: string, _position?: string): Promise<void>;
|
|
59
|
+
removeOverlay(_uuid: string): Promise<void>;
|
|
60
|
+
private setCursor;
|
|
61
|
+
enableDrawing(geometryType: 'Point' | 'LineString' | 'Polygon', layerUuid: string): Promise<void>;
|
|
62
|
+
disableDrawing(): Promise<void>;
|
|
63
|
+
cleanup(): void;
|
|
64
|
+
enableFeatureSelection(): Promise<void>;
|
|
65
|
+
deleteSelectedFeatures(): Promise<void>;
|
|
66
|
+
disableSelection(): Promise<void>;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=openlayers-map-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openlayers-map-renderer.d.ts","sourceRoot":"","sources":["../../src/ol/openlayers-map-renderer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kispace-io/gs-lib",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "EPL-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -33,7 +33,10 @@
|
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"ol": "10.7.0",
|
|
36
|
-
"ol-mapbox-style": "13.1.1"
|
|
36
|
+
"ol-mapbox-style": "13.1.1",
|
|
37
|
+
"maplibre-gl": "^4.7.1",
|
|
38
|
+
"proj4": "^2.15.0",
|
|
39
|
+
"uuid": "^11.1.0"
|
|
37
40
|
},
|
|
38
41
|
"peerDependencies": {
|
|
39
42
|
"@kispace-io/appspace": "^1.0.0",
|
|
@@ -44,6 +47,7 @@
|
|
|
44
47
|
},
|
|
45
48
|
"devDependencies": {
|
|
46
49
|
"@types/node": "^24.9.2",
|
|
50
|
+
"@types/proj4": "^2.5.6",
|
|
47
51
|
"@types/uuid": "^10.0.0",
|
|
48
52
|
"typescript": "~5.9.3",
|
|
49
53
|
"vite": "^7.1.12",
|
package/src/base-map-builder.ts
CHANGED
|
@@ -221,8 +221,13 @@ export async function bundleApp(
|
|
|
221
221
|
}
|
|
222
222
|
}
|
|
223
223
|
|
|
224
|
+
// Extract filename from path (works in both browser and Node.js)
|
|
225
|
+
const extractFilename = (filePath: string): string => {
|
|
226
|
+
const lastSlash = Math.max(filePath.lastIndexOf('/'), filePath.lastIndexOf('\\'))
|
|
227
|
+
return lastSlash >= 0 ? filePath.substring(lastSlash + 1) : filePath
|
|
228
|
+
}
|
|
229
|
+
|
|
224
230
|
// Write output files and find the main entry file and CSS (fallback if metafile didn't work)
|
|
225
|
-
const path = await import('path')
|
|
226
231
|
for (const file of result.outputFiles) {
|
|
227
232
|
let filePath = file.path || ''
|
|
228
233
|
|
|
@@ -233,11 +238,11 @@ export async function bundleApp(
|
|
|
233
238
|
|
|
234
239
|
if (filePath.startsWith('/') || (filePath.length > 2 && filePath[1] === ':')) {
|
|
235
240
|
// Absolute path - extract filename and build relative path
|
|
236
|
-
filename =
|
|
241
|
+
filename = extractFilename(filePath)
|
|
237
242
|
relativePath = `${outputDir}/${filename}`
|
|
238
243
|
} else {
|
|
239
244
|
// Relative path - ensure it's under outputDir
|
|
240
|
-
filename =
|
|
245
|
+
filename = extractFilename(filePath)
|
|
241
246
|
relativePath = filePath.startsWith(outputDir) ? filePath : `${outputDir}/${filePath}`
|
|
242
247
|
}
|
|
243
248
|
|
|
@@ -257,12 +262,6 @@ export async function bundleApp(
|
|
|
257
262
|
throw new Error('Could not find main output file')
|
|
258
263
|
}
|
|
259
264
|
|
|
260
|
-
// Extract filename from path (handle both / and \ separators)
|
|
261
|
-
const extractFilename = (filePath: string): string => {
|
|
262
|
-
const lastSlash = Math.max(filePath.lastIndexOf('/'), filePath.lastIndexOf('\\'))
|
|
263
|
-
return lastSlash >= 0 ? filePath.substring(lastSlash + 1) : filePath
|
|
264
|
-
}
|
|
265
|
-
|
|
266
265
|
return {
|
|
267
266
|
js: extractFilename(mainOutputFile),
|
|
268
267
|
css: cssOutputFile ? extractFilename(cssOutputFile) : null
|
package/src/gs-model.ts
CHANGED
|
@@ -136,7 +136,13 @@ export interface GsInteraction extends GsState {
|
|
|
136
136
|
export interface GsView extends GsState {
|
|
137
137
|
center: number[],
|
|
138
138
|
zoom: number,
|
|
139
|
-
projection: string
|
|
139
|
+
projection: string,
|
|
140
|
+
/** Camera pitch in degrees (0 = looking straight down, 60 = tilted view) */
|
|
141
|
+
pitch?: number,
|
|
142
|
+
/** Camera bearing/rotation in degrees (0 = north up) */
|
|
143
|
+
bearing?: number,
|
|
144
|
+
/** Map rotation in radians (OpenLayers) - deprecated, use bearing instead */
|
|
145
|
+
rotation?: number
|
|
140
146
|
}
|
|
141
147
|
|
|
142
148
|
export interface GsStrokeStyle {
|