@vcmap/core 6.3.0-rc.2 → 6.3.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/README.md +24 -23
- package/build/postinstall.js +16 -2
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/ol.d.ts +10 -1
- package/dist/src/featureProvider/abstractFeatureProvider.d.ts +8 -0
- package/dist/src/featureProvider/abstractFeatureProvider.js +10 -0
- package/dist/src/featureProvider/abstractFeatureProvider.js.map +1 -1
- package/dist/src/featureProvider/jsonAttributeProvider.d.ts +2 -1
- package/dist/src/featureProvider/jsonAttributeProvider.js +5 -2
- package/dist/src/featureProvider/jsonAttributeProvider.js.map +1 -1
- package/dist/src/featureProvider/mapboxFeatureProvider.d.ts +18 -0
- package/dist/src/featureProvider/mapboxFeatureProvider.js +49 -0
- package/dist/src/featureProvider/mapboxFeatureProvider.js.map +1 -0
- package/dist/src/featureProvider/wmsFeatureProvider.d.ts +11 -0
- package/dist/src/featureProvider/wmsFeatureProvider.js +19 -8
- package/dist/src/featureProvider/wmsFeatureProvider.js.map +1 -1
- package/dist/src/interaction/eventHandler.js +3 -1
- package/dist/src/interaction/eventHandler.js.map +1 -1
- package/dist/src/interaction/featureAtPixelInteraction.js +5 -0
- package/dist/src/interaction/featureAtPixelInteraction.js.map +1 -1
- package/dist/src/interaction/featureProviderInteraction.d.ts +10 -1
- package/dist/src/interaction/featureProviderInteraction.js +19 -3
- package/dist/src/interaction/featureProviderInteraction.js.map +1 -1
- package/dist/src/layer/cesium/mapboxStyleCesiumImpl.d.ts +25 -0
- package/dist/src/layer/cesium/mapboxStyleCesiumImpl.js +58 -0
- package/dist/src/layer/cesium/mapboxStyleCesiumImpl.js.map +1 -0
- package/dist/src/layer/cesium/mapboxStyleImageryProvider.d.ts +26 -0
- package/dist/src/layer/cesium/mapboxStyleImageryProvider.js +147 -0
- package/dist/src/layer/cesium/mapboxStyleImageryProvider.js.map +1 -0
- package/dist/src/layer/cesium/vectorTileImageryProvider.d.ts +1 -1
- package/dist/src/layer/cesium/vectorTileImageryProvider.js.map +1 -1
- package/dist/src/layer/i3sLayer.d.ts +2 -10
- package/dist/src/layer/i3sLayer.js +9 -8
- package/dist/src/layer/i3sLayer.js.map +1 -1
- package/dist/src/layer/mapboxStyleLayer.d.ts +55 -0
- package/dist/src/layer/mapboxStyleLayer.js +176 -0
- package/dist/src/layer/mapboxStyleLayer.js.map +1 -0
- package/dist/src/layer/openlayers/layerOpenlayersImpl.d.ts +3 -4
- package/dist/src/layer/openlayers/layerOpenlayersImpl.js +11 -3
- package/dist/src/layer/openlayers/layerOpenlayersImpl.js.map +1 -1
- package/dist/src/layer/openlayers/mapboxStyleOpenlayersImpl.d.ts +15 -0
- package/dist/src/layer/openlayers/mapboxStyleOpenlayersImpl.js +49 -0
- package/dist/src/layer/openlayers/mapboxStyleOpenlayersImpl.js.map +1 -0
- package/dist/src/map/baseCesiumMap.d.ts +17 -0
- package/dist/src/map/baseCesiumMap.js +36 -0
- package/dist/src/map/baseCesiumMap.js.map +1 -1
- package/dist/src/map/baseOLMap.d.ts +6 -4
- package/dist/src/map/baseOLMap.js +3 -2
- package/dist/src/map/baseOLMap.js.map +1 -1
- package/dist/src/map/cesiumMap.d.ts +3 -3
- package/dist/src/map/cesiumMap.js +2 -3
- package/dist/src/map/cesiumMap.js.map +1 -1
- package/dist/src/map/panoramaMap.d.ts +2 -2
- package/dist/src/map/panoramaMap.js +1 -2
- package/dist/src/map/panoramaMap.js.map +1 -1
- package/dist/src/map/vcsMap.d.ts +3 -3
- package/dist/src/map/vcsMap.js +11 -3
- package/dist/src/map/vcsMap.js.map +1 -1
- package/index.ts +2 -0
- package/package.json +4 -3
- package/src/featureProvider/abstractFeatureProvider.ts +12 -0
- package/src/featureProvider/jsonAttributeProvider.ts +10 -2
- package/src/featureProvider/mapboxFeatureProvider.ts +74 -0
- package/src/featureProvider/wmsFeatureProvider.ts +29 -8
- package/src/interaction/eventHandler.ts +3 -1
- package/src/interaction/featureAtPixelInteraction.ts +5 -0
- package/src/interaction/featureProviderInteraction.ts +37 -8
- package/src/layer/cesium/mapboxStyleCesiumImpl.ts +95 -0
- package/src/layer/cesium/mapboxStyleImageryProvider.ts +214 -0
- package/src/layer/cesium/vectorTileImageryProvider.ts +2 -1
- package/src/layer/i3sLayer.ts +12 -14
- package/src/layer/mapboxStyleLayer.ts +244 -0
- package/src/layer/openlayers/layerOpenlayersImpl.ts +21 -10
- package/src/layer/openlayers/mapboxStyleOpenlayersImpl.ts +68 -0
- package/src/map/baseCesiumMap.ts +57 -0
- package/src/map/baseOLMap.ts +16 -14
- package/src/map/cesiumMap.ts +7 -6
- package/src/map/panoramaMap.ts +3 -3
- package/src/map/vcsMap.ts +16 -10
- package/src/ol/ol.d.ts +10 -1
|
@@ -68,14 +68,17 @@ class I3SLayer extends FeatureLayer {
|
|
|
68
68
|
: new VectorStyleItem(options.highlightStyle);
|
|
69
69
|
}
|
|
70
70
|
const cesium3dTilesetOptions = options.cesium3dTilesetOptions || defaultOptions.cesium3dTilesetOptions;
|
|
71
|
+
let lightColor;
|
|
72
|
+
if (options.lightColor) {
|
|
73
|
+
const color = Color.fromCssColorString(options.lightColor);
|
|
74
|
+
lightColor = new Cartesian3(...color.toBytes());
|
|
75
|
+
}
|
|
71
76
|
this.cesium3dTilesetOptions = {
|
|
72
77
|
maximumScreenSpaceError: isMobile()
|
|
73
78
|
? this.screenSpaceErrorMobile
|
|
74
79
|
: this.screenSpaceError,
|
|
75
80
|
...cesium3dTilesetOptions,
|
|
76
|
-
|
|
77
|
-
lightColor: new Cartesian3(options.lightColor.x, options.lightColor.y, options.lightColor.z),
|
|
78
|
-
}),
|
|
81
|
+
lightColor,
|
|
79
82
|
...(options.outlineColor && {
|
|
80
83
|
outlineColor: Color.fromCssColorString(options.outlineColor),
|
|
81
84
|
}),
|
|
@@ -196,11 +199,9 @@ class I3SLayer extends FeatureLayer {
|
|
|
196
199
|
}
|
|
197
200
|
delete tilesetOptions.outlineColor;
|
|
198
201
|
if (tilesetOptions.lightColor) {
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
z: tilesetOptions.lightColor.z,
|
|
203
|
-
};
|
|
202
|
+
const { x, y, z } = tilesetOptions.lightColor;
|
|
203
|
+
const color = Color.fromBytes(x, y, z);
|
|
204
|
+
config.lightColor = color.toCssHexString();
|
|
204
205
|
}
|
|
205
206
|
delete tilesetOptions.lightColor;
|
|
206
207
|
const usedScreenSpaceError = isMobile()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i3sLayer.js","sourceRoot":"","sources":["../../../src/layer/i3sLayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,uBAAuB,MAAM,+CAA+C,CAAC;AACpF,OAAO,aAAa,MAAM,2BAA2B,CAAC;AACtD,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAI7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAC5C,OAAO,aAAa,MAAM,yBAAyB,CAAC;AACpD,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAEhD,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE9E,OAAO,eAAe,MAAM,6BAA6B,CAAC;AAC1D,OAAO,oBAAoB,MAAM,4CAA4C,CAAC;AAE9E,OAAO,yBAAyB,MAAM,iDAAiD,CAAC;AACxF,OAAO,wBAAwB,MAAM,gDAAgD,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AA+BpF,MAAM,QAAS,SAAQ,YAA2B;IAChD,MAAM,KAAK,SAAS;QAClB,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,iBAAiB;QACtB,OAAO;YACL,GAAG,YAAY,CAAC,iBAAiB,EAAE;YACnC,uBAAuB,EAAE,KAAK;YAC9B,cAAc,EAAE,KAAK;YACrB,gBAAgB,EAAE,KAAK;YACvB,YAAY,EAAE,KAAK;YACnB,sBAAsB,EAAE,SAAS;YACjC,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,SAAS;YACvB,gBAAgB,EAAE,EAAE;YACpB,sBAAsB,EAAE,EAAE;YAC1B,cAAc,EAAE,SAAS;YACzB,aAAa,EAAE,IAAI;SACpB,CAAC;IACJ,CAAC;IAED,uBAAuB,CAAU;IACjC,cAAc,CAAU;IACxB,gBAAgB,CAAU;IAC1B,YAAY,CAAU;IACtB,sBAAsB,CAER;IACd,UAAU,
|
|
1
|
+
{"version":3,"file":"i3sLayer.js","sourceRoot":"","sources":["../../../src/layer/i3sLayer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { SplitDirection } from '@vcmap-cesium/engine';
|
|
2
|
+
import type VcsMap from '../map/vcsMap.js';
|
|
3
|
+
import VcsEvent from '../vcsEvent.js';
|
|
4
|
+
import { type MapboxStyleLayerImplementationOptions } from './cesium/mapboxStyleCesiumImpl.js';
|
|
5
|
+
import Layer from './layer.js';
|
|
6
|
+
import type { LayerOptions, SplitLayer } from './layer.js';
|
|
7
|
+
import type LayerImplementation from './layerImplementation.js';
|
|
8
|
+
export type MapboxStyleOptions = LayerOptions & {
|
|
9
|
+
/** The sources from the Mapbox Style to use. If not provided, all sources from the style will be used. */
|
|
10
|
+
sources?: string[];
|
|
11
|
+
/** The Mapbox layers to exclude from picking. */
|
|
12
|
+
excludeLayerFromPicking?: string[];
|
|
13
|
+
/** either 'left' or 'right', none if omitted */
|
|
14
|
+
splitDirection?: string;
|
|
15
|
+
/** configures the visible level in the rendered map. Maps to Openlayers `minZoom` and Cesium `minimiumTerrainLevel` */
|
|
16
|
+
minRenderingLevel?: number;
|
|
17
|
+
/** configures the visible level in the rendered map. Maps to Openlayers `maxZoom` and Cesium `maximumTerrainLevel` */
|
|
18
|
+
maxRenderingLevel?: number;
|
|
19
|
+
};
|
|
20
|
+
export interface MaboxStyleImplementation extends LayerImplementation<VcsMap> {
|
|
21
|
+
updateSplitDirection(direction: SplitDirection): void;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Layer class for Mapbox Style layers.
|
|
25
|
+
* @group Layer
|
|
26
|
+
*/
|
|
27
|
+
declare class MapboxStyleLayer extends Layer<MaboxStyleImplementation> implements SplitLayer {
|
|
28
|
+
static get className(): string;
|
|
29
|
+
static getDefaultOptions(): MapboxStyleOptions;
|
|
30
|
+
protected _supportedMaps: string[];
|
|
31
|
+
private _mapboxLayerGroup;
|
|
32
|
+
private _sources?;
|
|
33
|
+
private _excludeLayerFromPicking?;
|
|
34
|
+
private _splitDirection;
|
|
35
|
+
splitDirectionChanged: VcsEvent<SplitDirection>;
|
|
36
|
+
/**
|
|
37
|
+
* defines the visible level in the rendered map, maps to Openlayers `minZoom` and Cesium `minimiumTerrainLevel`.
|
|
38
|
+
* Changes requires calling layer.redraw() to take effect.
|
|
39
|
+
*/
|
|
40
|
+
minRenderingLevel: number | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* defines the visible level in the rendered map, maps to Openlayers `minZoom` and Cesium `minimiumTerrainLevel`.
|
|
43
|
+
* Changes requires calling layer.redraw() to take effect.
|
|
44
|
+
*/
|
|
45
|
+
maxRenderingLevel: number | undefined;
|
|
46
|
+
constructor(options: MapboxStyleOptions);
|
|
47
|
+
initialize(): Promise<void>;
|
|
48
|
+
get splitDirection(): SplitDirection;
|
|
49
|
+
set splitDirection(direction: SplitDirection);
|
|
50
|
+
getImplementationOptions(): MapboxStyleLayerImplementationOptions;
|
|
51
|
+
createImplementationsForMap(map: VcsMap): MaboxStyleImplementation[];
|
|
52
|
+
toJSON(defaultOptions?: MapboxStyleOptions): MapboxStyleOptions;
|
|
53
|
+
destroy(): void;
|
|
54
|
+
}
|
|
55
|
+
export default MapboxStyleLayer;
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { SplitDirection } from '@vcmap-cesium/engine';
|
|
2
|
+
import { parseInteger } from '@vcsuite/parsers';
|
|
3
|
+
import { is } from '@vcsuite/check';
|
|
4
|
+
import Collection from 'ol/Collection.js';
|
|
5
|
+
import LayerGroup from 'ol/layer/Group.js';
|
|
6
|
+
import { apply } from 'ol-mapbox-style';
|
|
7
|
+
import { layerClassRegistry } from '../classRegistry.js';
|
|
8
|
+
import AbstractAttributeProvider from '../featureProvider/abstractAttributeProvider.js';
|
|
9
|
+
import CompositeFeatureProvider from '../featureProvider/compositeFeatureProvider.js';
|
|
10
|
+
import MapboxFeatureProvider from '../featureProvider/mapboxFeatureProvider.js';
|
|
11
|
+
import BaseCesiumMap from '../map/baseCesiumMap.js';
|
|
12
|
+
import CesiumMap from '../map/cesiumMap.js';
|
|
13
|
+
import ObliqueMap from '../map/obliqueMap.js';
|
|
14
|
+
import OpenlayersMap from '../map/openlayersMap.js';
|
|
15
|
+
import PanoramaMap from '../map/panoramaMap.js';
|
|
16
|
+
import VcsEvent from '../vcsEvent.js';
|
|
17
|
+
import MapboxVectorRasterTileCesiumImpl from './cesium/mapboxStyleCesiumImpl.js';
|
|
18
|
+
import Layer from './layer.js';
|
|
19
|
+
import MapboxVectorTileOpenlayersImpl from './openlayers/mapboxStyleOpenlayersImpl.js';
|
|
20
|
+
import { allowPicking, vcsLayerName } from './layerSymbols.js';
|
|
21
|
+
/**
|
|
22
|
+
* Layer class for Mapbox Style layers.
|
|
23
|
+
* @group Layer
|
|
24
|
+
*/
|
|
25
|
+
class MapboxStyleLayer extends Layer {
|
|
26
|
+
static get className() {
|
|
27
|
+
return 'MapboxStyleLayer';
|
|
28
|
+
}
|
|
29
|
+
static getDefaultOptions() {
|
|
30
|
+
return {
|
|
31
|
+
...Layer.getDefaultOptions(),
|
|
32
|
+
minRenderingLevel: undefined,
|
|
33
|
+
maxRenderingLevel: undefined,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
_supportedMaps = [
|
|
37
|
+
CesiumMap.className,
|
|
38
|
+
ObliqueMap.className,
|
|
39
|
+
OpenlayersMap.className,
|
|
40
|
+
PanoramaMap.className,
|
|
41
|
+
];
|
|
42
|
+
_mapboxLayerGroup;
|
|
43
|
+
_sources;
|
|
44
|
+
_excludeLayerFromPicking;
|
|
45
|
+
_splitDirection = SplitDirection.NONE;
|
|
46
|
+
splitDirectionChanged = new VcsEvent();
|
|
47
|
+
/**
|
|
48
|
+
* defines the visible level in the rendered map, maps to Openlayers `minZoom` and Cesium `minimiumTerrainLevel`.
|
|
49
|
+
* Changes requires calling layer.redraw() to take effect.
|
|
50
|
+
*/
|
|
51
|
+
minRenderingLevel;
|
|
52
|
+
/**
|
|
53
|
+
* defines the visible level in the rendered map, maps to Openlayers `minZoom` and Cesium `minimiumTerrainLevel`.
|
|
54
|
+
* Changes requires calling layer.redraw() to take effect.
|
|
55
|
+
*/
|
|
56
|
+
maxRenderingLevel;
|
|
57
|
+
constructor(options) {
|
|
58
|
+
const defaultOptions = MapboxStyleLayer.getDefaultOptions();
|
|
59
|
+
super({ ...defaultOptions, ...options });
|
|
60
|
+
this._sources = options.sources;
|
|
61
|
+
this._excludeLayerFromPicking = options.excludeLayerFromPicking;
|
|
62
|
+
if (options.splitDirection) {
|
|
63
|
+
this._splitDirection =
|
|
64
|
+
options.splitDirection === 'left'
|
|
65
|
+
? SplitDirection.LEFT
|
|
66
|
+
: SplitDirection.RIGHT;
|
|
67
|
+
}
|
|
68
|
+
this.minRenderingLevel = parseInteger(options.minRenderingLevel, defaultOptions.minRenderingLevel);
|
|
69
|
+
this.maxRenderingLevel = parseInteger(options.maxRenderingLevel, defaultOptions.maxRenderingLevel);
|
|
70
|
+
this._mapboxLayerGroup = new LayerGroup({
|
|
71
|
+
minZoom: this.minRenderingLevel,
|
|
72
|
+
maxZoom: this.maxRenderingLevel,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
async initialize() {
|
|
76
|
+
if (!this.initialized) {
|
|
77
|
+
await apply(this._mapboxLayerGroup, this.url);
|
|
78
|
+
const layers = this._mapboxLayerGroup.getLayersArray();
|
|
79
|
+
layers.forEach((layer) => {
|
|
80
|
+
layer[vcsLayerName] = this.name;
|
|
81
|
+
layer[allowPicking] = super.allowPicking;
|
|
82
|
+
});
|
|
83
|
+
if (this._sources && this._sources.length > 0) {
|
|
84
|
+
const filteredCollection = new Collection();
|
|
85
|
+
layers
|
|
86
|
+
.filter((layer) => this._sources.includes(layer.get('mapbox-source')))
|
|
87
|
+
.forEach((layer) => {
|
|
88
|
+
filteredCollection.push(layer);
|
|
89
|
+
});
|
|
90
|
+
this._mapboxLayerGroup.setLayers(filteredCollection);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (!this.featureProvider) {
|
|
94
|
+
this.featureProvider = new MapboxFeatureProvider({
|
|
95
|
+
styledMapboxLayerGroup: this._mapboxLayerGroup,
|
|
96
|
+
excludeLayerFromPicking: this._excludeLayerFromPicking,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
else if (is(this.featureProvider, AbstractAttributeProvider)) {
|
|
100
|
+
this.featureProvider = new CompositeFeatureProvider({
|
|
101
|
+
attributeProviders: [this.featureProvider],
|
|
102
|
+
featureProviders: [
|
|
103
|
+
new MapboxFeatureProvider({
|
|
104
|
+
styledMapboxLayerGroup: this._mapboxLayerGroup,
|
|
105
|
+
excludeLayerFromPicking: this._excludeLayerFromPicking,
|
|
106
|
+
}),
|
|
107
|
+
],
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
await super.initialize();
|
|
111
|
+
}
|
|
112
|
+
get splitDirection() {
|
|
113
|
+
return this._splitDirection;
|
|
114
|
+
}
|
|
115
|
+
set splitDirection(direction) {
|
|
116
|
+
if (direction !== this._splitDirection) {
|
|
117
|
+
this._splitDirection = direction;
|
|
118
|
+
this.getImplementations().forEach((impl) => {
|
|
119
|
+
impl.updateSplitDirection(direction);
|
|
120
|
+
});
|
|
121
|
+
this.splitDirectionChanged.raiseEvent(this._splitDirection);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
getImplementationOptions() {
|
|
125
|
+
return {
|
|
126
|
+
...super.getImplementationOptions(),
|
|
127
|
+
styledMapboxLayerGroup: this._mapboxLayerGroup,
|
|
128
|
+
splitDirection: this._splitDirection,
|
|
129
|
+
minRenderingLevel: this.minRenderingLevel,
|
|
130
|
+
maxRenderingLevel: this.maxRenderingLevel,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
createImplementationsForMap(map) {
|
|
134
|
+
if (map instanceof BaseCesiumMap) {
|
|
135
|
+
return [
|
|
136
|
+
new MapboxVectorRasterTileCesiumImpl(map, this.getImplementationOptions()),
|
|
137
|
+
];
|
|
138
|
+
}
|
|
139
|
+
if (map instanceof OpenlayersMap) {
|
|
140
|
+
return [
|
|
141
|
+
new MapboxVectorTileOpenlayersImpl(map, this.getImplementationOptions()),
|
|
142
|
+
];
|
|
143
|
+
}
|
|
144
|
+
return super.createImplementationsForMap(map);
|
|
145
|
+
}
|
|
146
|
+
toJSON(defaultOptions = MapboxStyleLayer.getDefaultOptions()) {
|
|
147
|
+
const config = { ...super.toJSON() };
|
|
148
|
+
if (this._sources && this._sources.length > 0) {
|
|
149
|
+
config.sources = this._sources.slice();
|
|
150
|
+
}
|
|
151
|
+
if (this._excludeLayerFromPicking &&
|
|
152
|
+
this._excludeLayerFromPicking.length > 0) {
|
|
153
|
+
config.excludeLayerFromPicking = this._excludeLayerFromPicking.slice();
|
|
154
|
+
}
|
|
155
|
+
if (this._splitDirection !== SplitDirection.NONE) {
|
|
156
|
+
config.splitDirection =
|
|
157
|
+
this._splitDirection === SplitDirection.LEFT ? 'left' : 'right';
|
|
158
|
+
}
|
|
159
|
+
if (this.minRenderingLevel !== defaultOptions.minRenderingLevel) {
|
|
160
|
+
config.minRenderingLevel = this.minRenderingLevel;
|
|
161
|
+
}
|
|
162
|
+
if (this.maxRenderingLevel !== defaultOptions.maxRenderingLevel) {
|
|
163
|
+
config.maxRenderingLevel = this.maxRenderingLevel;
|
|
164
|
+
}
|
|
165
|
+
return config;
|
|
166
|
+
}
|
|
167
|
+
destroy() {
|
|
168
|
+
this.splitDirectionChanged.destroy();
|
|
169
|
+
this._mapboxLayerGroup.dispose();
|
|
170
|
+
this.featureProvider?.destroy();
|
|
171
|
+
super.destroy();
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
layerClassRegistry.registerClass(MapboxStyleLayer.className, MapboxStyleLayer);
|
|
175
|
+
export default MapboxStyleLayer;
|
|
176
|
+
//# sourceMappingURL=mapboxStyleLayer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapboxStyleLayer.js","sourceRoot":"","sources":["../../../src/layer/mapboxStyleLayer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SplitDirection } from '@vcmap-cesium/engine';
|
|
2
|
-
import type OLLayer from 'ol/layer/Layer.js';
|
|
3
2
|
import type RenderEvent from 'ol/render/Event.js';
|
|
4
3
|
import LayerImplementation from '../layerImplementation.js';
|
|
4
|
+
import type { OLLayerLike } from '../../map/baseOLMap.js';
|
|
5
5
|
import type OpenlayersMap from '../../map/openlayersMap.js';
|
|
6
6
|
import type { LayerImplementationOptions } from '../layer.js';
|
|
7
7
|
export type LayerOpenlayersImplementationOptions = LayerImplementationOptions & {
|
|
@@ -13,7 +13,7 @@ export type LayerOpenlayersImplementationOptions = LayerImplementationOptions &
|
|
|
13
13
|
*/
|
|
14
14
|
declare class LayerOpenlayersImpl extends LayerImplementation<OpenlayersMap> {
|
|
15
15
|
static get className(): string;
|
|
16
|
-
olLayer:
|
|
16
|
+
olLayer: OLLayerLike | null;
|
|
17
17
|
splitDirection: SplitDirection;
|
|
18
18
|
private _splitDirectionRenderListeners;
|
|
19
19
|
constructor(map: OpenlayersMap, options: LayerOpenlayersImplementationOptions);
|
|
@@ -22,9 +22,8 @@ declare class LayerOpenlayersImpl extends LayerImplementation<OpenlayersMap> {
|
|
|
22
22
|
deactivate(): void;
|
|
23
23
|
/**
|
|
24
24
|
* returns the ol Layer
|
|
25
|
-
* @returns {import("ol/layer").Layer<import("ol/source/Source").default>}
|
|
26
25
|
*/
|
|
27
|
-
getOLLayer():
|
|
26
|
+
getOLLayer(): OLLayerLike;
|
|
28
27
|
updateSplitDirection(splitDirection: SplitDirection): void;
|
|
29
28
|
protected _splitPreRender(event: RenderEvent): void;
|
|
30
29
|
protected _splitPostReder(event: RenderEvent): void;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SplitDirection } from '@vcmap-cesium/engine';
|
|
2
2
|
import { unByKey } from 'ol/Observable.js';
|
|
3
|
+
import OLLayer from 'ol/layer/Layer.js';
|
|
3
4
|
import { vcsLayerName } from '../layerSymbols.js';
|
|
4
5
|
import LayerImplementation from '../layerImplementation.js';
|
|
5
6
|
/**
|
|
@@ -40,7 +41,6 @@ class LayerOpenlayersImpl extends LayerImplementation {
|
|
|
40
41
|
}
|
|
41
42
|
/**
|
|
42
43
|
* returns the ol Layer
|
|
43
|
-
* @returns {import("ol/layer").Layer<import("ol/source/Source").default>}
|
|
44
44
|
*/
|
|
45
45
|
// eslint-disable-next-line class-methods-use-this
|
|
46
46
|
getOLLayer() {
|
|
@@ -58,8 +58,16 @@ class LayerOpenlayersImpl extends LayerImplementation {
|
|
|
58
58
|
else if (splitDirection !== SplitDirection.NONE &&
|
|
59
59
|
!this._splitDirectionRenderListeners) {
|
|
60
60
|
this._splitDirectionRenderListeners = [];
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
if (this.olLayer instanceof OLLayer) {
|
|
62
|
+
this._splitDirectionRenderListeners.push(this.olLayer.on('prerender', this._splitPreRender.bind(this)));
|
|
63
|
+
this._splitDirectionRenderListeners.push(this.olLayer.on('postrender', this._splitPostReder.bind(this)));
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
this.olLayer.getLayersArray().forEach((layer) => {
|
|
67
|
+
this._splitDirectionRenderListeners.push(layer.on('prerender', this._splitPreRender.bind(this)));
|
|
68
|
+
this._splitDirectionRenderListeners.push(layer.on('postrender', this._splitPostReder.bind(this)));
|
|
69
|
+
});
|
|
70
|
+
}
|
|
63
71
|
this.olLayer.changed();
|
|
64
72
|
}
|
|
65
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layerOpenlayersImpl.js","sourceRoot":"","sources":["../../../../src/layer/openlayers/layerOpenlayersImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"layerOpenlayersImpl.js","sourceRoot":"","sources":["../../../../src/layer/openlayers/layerOpenlayersImpl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SplitDirection } from '@vcmap-cesium/engine';
|
|
2
|
+
import type OpenlayersMap from '../../map/openlayersMap.js';
|
|
3
|
+
import type { MapboxStyleLayerImplementationOptions } from '../cesium/mapboxStyleCesiumImpl.js';
|
|
4
|
+
import type { OLLayerLike } from '../../map/baseOLMap.js';
|
|
5
|
+
import LayerOpenlayersImpl from './layerOpenlayersImpl.js';
|
|
6
|
+
declare class MapboxVectorTileOpenlayersImpl extends LayerOpenlayersImpl {
|
|
7
|
+
static get className(): string;
|
|
8
|
+
private _styledMapboxLayerGroup;
|
|
9
|
+
private _removeChildLayerListeners;
|
|
10
|
+
constructor(map: OpenlayersMap, options: MapboxStyleLayerImplementationOptions);
|
|
11
|
+
getOLLayer(): OLLayerLike;
|
|
12
|
+
updateSplitDirection(splitDirection: SplitDirection): void;
|
|
13
|
+
destroy(): void;
|
|
14
|
+
}
|
|
15
|
+
export default MapboxVectorTileOpenlayersImpl;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { SplitDirection } from '@vcmap-cesium/engine';
|
|
2
|
+
import { unByKey } from 'ol/Observable.js';
|
|
3
|
+
import LayerOpenlayersImpl from './layerOpenlayersImpl.js';
|
|
4
|
+
class MapboxVectorTileOpenlayersImpl extends LayerOpenlayersImpl {
|
|
5
|
+
static get className() {
|
|
6
|
+
return 'MapboxVectorTileOpenlayersImpl';
|
|
7
|
+
}
|
|
8
|
+
_styledMapboxLayerGroup;
|
|
9
|
+
_removeChildLayerListeners = null;
|
|
10
|
+
constructor(map, options) {
|
|
11
|
+
super(map, options);
|
|
12
|
+
this._styledMapboxLayerGroup = options.styledMapboxLayerGroup;
|
|
13
|
+
}
|
|
14
|
+
getOLLayer() {
|
|
15
|
+
return this._styledMapboxLayerGroup;
|
|
16
|
+
}
|
|
17
|
+
updateSplitDirection(splitDirection) {
|
|
18
|
+
this.splitDirection = splitDirection;
|
|
19
|
+
if (this.initialized) {
|
|
20
|
+
this._removeChildLayerListeners?.();
|
|
21
|
+
this._removeChildLayerListeners = null;
|
|
22
|
+
if (splitDirection !== SplitDirection.NONE) {
|
|
23
|
+
const childLayers = this._styledMapboxLayerGroup.getLayersArray();
|
|
24
|
+
const listenerKeys = [];
|
|
25
|
+
childLayers.forEach((layer) => {
|
|
26
|
+
listenerKeys.push(layer.on('prerender', this._splitPreRender.bind(this)));
|
|
27
|
+
listenerKeys.push(layer.on('postrender', this._splitPostReder.bind(this)));
|
|
28
|
+
layer.changed();
|
|
29
|
+
});
|
|
30
|
+
this._removeChildLayerListeners = () => {
|
|
31
|
+
unByKey(listenerKeys);
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
const childLayers = this._styledMapboxLayerGroup.getLayersArray();
|
|
36
|
+
childLayers.forEach((layer) => {
|
|
37
|
+
layer.changed();
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
destroy() {
|
|
43
|
+
this._removeChildLayerListeners?.();
|
|
44
|
+
this._removeChildLayerListeners = null;
|
|
45
|
+
super.destroy();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export default MapboxVectorTileOpenlayersImpl;
|
|
49
|
+
//# sourceMappingURL=mapboxStyleOpenlayersImpl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapboxStyleOpenlayersImpl.js","sourceRoot":"","sources":["../../../../src/layer/openlayers/mapboxStyleOpenlayersImpl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAK3C,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAE3D,MAAM,8BAA+B,SAAQ,mBAAmB;IAC9D,MAAM,KAAK,SAAS;QAClB,OAAO,gCAAgC,CAAC;IAC1C,CAAC;IAEO,uBAAuB,CAAa;IAEpC,0BAA0B,GAAwB,IAAI,CAAC;IAE/D,YACE,GAAkB,EAClB,OAA8C;QAE9C,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACpB,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAChE,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,uBAAsC,CAAC;IACrD,CAAC;IAED,oBAAoB,CAAC,cAA8B;QACjD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,0BAA0B,EAAE,EAAE,CAAC;YACpC,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;YAEvC,IAAI,cAAc,KAAK,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,cAAc,EAAE,CAAC;gBAClE,MAAM,YAAY,GAAgB,EAAE,CAAC;gBACrC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC5B,YAAY,CAAC,IAAI,CACf,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CACvD,CAAC;oBACF,YAAY,CAAC,IAAI,CACf,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CACxD,CAAC;oBACF,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,0BAA0B,GAAG,GAAS,EAAE;oBAC3C,OAAO,CAAC,YAAY,CAAC,CAAC;gBACxB,CAAC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,cAAc,EAAE,CAAC;gBAClE,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC5B,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,CAAC,0BAA0B,EAAE,EAAE,CAAC;QACpC,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;QACvC,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;CACF;AAED,eAAe,8BAA8B,CAAC"}
|
|
@@ -1,18 +1,30 @@
|
|
|
1
1
|
import { type Camera, Cartesian3, type Cesium3DTileset, type CesiumWidget, type CustomDataSource, type CzmlDataSource, type I3SDataProvider, ImageryLayer, PrimitiveCollection, type Scene, ScreenSpaceEventHandler, type TerrainProvider } from '@vcmap-cesium/engine';
|
|
2
2
|
import type { Coordinate } from 'ol/coordinate.js';
|
|
3
|
+
import type { VcsMapOptions } from './vcsMap.js';
|
|
3
4
|
import VcsMap from './vcsMap.js';
|
|
4
5
|
import type Layer from '../layer/layer.js';
|
|
5
6
|
import Viewpoint from '../util/viewpoint.js';
|
|
7
|
+
export type BaseCesiumMapOptions = VcsMapOptions & {
|
|
8
|
+
/**
|
|
9
|
+
* If true, ancestors will be preloaded
|
|
10
|
+
*/
|
|
11
|
+
preloadAncestors?: boolean;
|
|
12
|
+
};
|
|
6
13
|
export declare function getResolution(cartesian: Cartesian3, camera: Camera, mapElement: HTMLElement, latitude?: number): number;
|
|
7
14
|
export type CesiumVisualisationType = CustomDataSource | CzmlDataSource | PrimitiveCollection | Cesium3DTileset | ImageryLayer | I3SDataProvider;
|
|
8
15
|
export default class BaseCesiumMap extends VcsMap<CesiumVisualisationType> {
|
|
9
16
|
static get className(): string;
|
|
17
|
+
static getDefaultOptions(): BaseCesiumMapOptions;
|
|
10
18
|
protected _cesiumWidget: CesiumWidget | null;
|
|
11
19
|
protected _terrainProvider: TerrainProvider | null | undefined;
|
|
12
20
|
private _screenSpaceListener;
|
|
21
|
+
private _preloadAncestors;
|
|
13
22
|
screenSpaceEventHandler: ScreenSpaceEventHandler | null;
|
|
14
23
|
defaultTerrainProvider: TerrainProvider | null;
|
|
15
24
|
protected _listeners: (() => void)[];
|
|
25
|
+
constructor(options: BaseCesiumMapOptions);
|
|
26
|
+
get preloadAncestors(): boolean;
|
|
27
|
+
set preloadAncestors(value: boolean);
|
|
16
28
|
get terrainProvider(): TerrainProvider | null | undefined;
|
|
17
29
|
protected _initializeCesiumWidget(widget: CesiumWidget): void;
|
|
18
30
|
activate(): Promise<void>;
|
|
@@ -31,6 +43,10 @@ export default class BaseCesiumMap extends VcsMap<CesiumVisualisationType> {
|
|
|
31
43
|
* returns the cesium Scene Object, returns null on non initialized or destroyed maps
|
|
32
44
|
*/
|
|
33
45
|
getScene(): Scene | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* defines whether ancestors are preloaded or not
|
|
48
|
+
*/
|
|
49
|
+
setPreloadAncestors(value: boolean): void;
|
|
34
50
|
protected _indexChangedOnVisualization(vis: CesiumVisualisationType): void;
|
|
35
51
|
indexChanged(layer: Layer): void;
|
|
36
52
|
/**
|
|
@@ -65,5 +81,6 @@ export default class BaseCesiumMap extends VcsMap<CesiumVisualisationType> {
|
|
|
65
81
|
* active TerrainLayer layer if necessary
|
|
66
82
|
*/
|
|
67
83
|
private _terrainProviderChanged;
|
|
84
|
+
toJSON(defaultOptions?: BaseCesiumMapOptions): BaseCesiumMapOptions;
|
|
68
85
|
destroy(): void;
|
|
69
86
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Cartesian3, Cartographic, Ellipsoid, ImageryLayer, JulianDate, KeyboardEventModifier, Math as CesiumMath, PrimitiveCollection, Ray, RequestScheduler, ScreenSpaceEventHandler, ScreenSpaceEventType, } from '@vcmap-cesium/engine';
|
|
2
|
+
import { parseBoolean } from '@vcsuite/parsers';
|
|
2
3
|
import VcsMap from './vcsMap.js';
|
|
3
4
|
import { vcsLayerName } from '../layer/layerSymbols.js';
|
|
4
5
|
import Viewpoint from '../util/viewpoint.js';
|
|
@@ -74,12 +75,33 @@ export default class BaseCesiumMap extends VcsMap {
|
|
|
74
75
|
static get className() {
|
|
75
76
|
return 'BaseCesiumMap';
|
|
76
77
|
}
|
|
78
|
+
static getDefaultOptions() {
|
|
79
|
+
return {
|
|
80
|
+
...VcsMap.getDefaultOptions(),
|
|
81
|
+
preloadAncestors: false,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
77
84
|
_cesiumWidget = null;
|
|
78
85
|
_terrainProvider = null;
|
|
79
86
|
_screenSpaceListener;
|
|
87
|
+
_preloadAncestors = false;
|
|
80
88
|
screenSpaceEventHandler = null;
|
|
81
89
|
defaultTerrainProvider = null;
|
|
82
90
|
_listeners = [];
|
|
91
|
+
constructor(options) {
|
|
92
|
+
const defaultOptions = BaseCesiumMap.getDefaultOptions();
|
|
93
|
+
super({ ...defaultOptions, ...options });
|
|
94
|
+
this._preloadAncestors = parseBoolean(options.preloadAncestors, defaultOptions.preloadAncestors);
|
|
95
|
+
}
|
|
96
|
+
get preloadAncestors() {
|
|
97
|
+
return this._preloadAncestors;
|
|
98
|
+
}
|
|
99
|
+
set preloadAncestors(value) {
|
|
100
|
+
this._preloadAncestors = value;
|
|
101
|
+
if (this._cesiumWidget) {
|
|
102
|
+
this._cesiumWidget.scene.globe.preloadAncestors = value;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
83
105
|
get terrainProvider() {
|
|
84
106
|
return this._terrainProvider;
|
|
85
107
|
}
|
|
@@ -94,6 +116,7 @@ export default class BaseCesiumMap extends VcsMap {
|
|
|
94
116
|
this.defaultTerrainProvider = this._cesiumWidget.scene.terrainProvider;
|
|
95
117
|
this._terrainProvider = this.defaultTerrainProvider;
|
|
96
118
|
this._listeners.push(this._cesiumWidget.scene.terrainProviderChanged.addEventListener(this._terrainProviderChanged.bind(this)));
|
|
119
|
+
this._cesiumWidget.scene.globe.preloadAncestors = this.preloadAncestors;
|
|
97
120
|
this._cesiumWidget.scene.frameState.creditDisplay.update = () => { };
|
|
98
121
|
this._cesiumWidget.scene.frameState.creditDisplay.beginFrame =
|
|
99
122
|
() => { };
|
|
@@ -285,6 +308,12 @@ export default class BaseCesiumMap extends VcsMap {
|
|
|
285
308
|
getScene() {
|
|
286
309
|
return this._cesiumWidget?.scene;
|
|
287
310
|
}
|
|
311
|
+
/**
|
|
312
|
+
* defines whether ancestors are preloaded or not
|
|
313
|
+
*/
|
|
314
|
+
setPreloadAncestors(value) {
|
|
315
|
+
this.preloadAncestors = value;
|
|
316
|
+
}
|
|
288
317
|
_indexChangedOnVisualization(vis) {
|
|
289
318
|
if (vis instanceof PrimitiveCollection) {
|
|
290
319
|
indexChangedOnPrimitive(this.getScene().primitives, vis, this.layerCollection);
|
|
@@ -375,6 +404,13 @@ export default class BaseCesiumMap extends VcsMap {
|
|
|
375
404
|
}
|
|
376
405
|
}
|
|
377
406
|
}
|
|
407
|
+
toJSON(defaultOptions = BaseCesiumMap.getDefaultOptions()) {
|
|
408
|
+
const config = super.toJSON(defaultOptions);
|
|
409
|
+
if (this.preloadAncestors !== defaultOptions.preloadAncestors) {
|
|
410
|
+
config.preloadAncestors = this.preloadAncestors;
|
|
411
|
+
}
|
|
412
|
+
return config;
|
|
413
|
+
}
|
|
378
414
|
destroy() {
|
|
379
415
|
this._listeners.forEach((cb) => {
|
|
380
416
|
cb();
|