@vcmap/core 6.3.0-rc.1 → 6.3.0-rc.2
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/cesium.d.ts +12 -0
- package/dist/index.d.ts +10 -2
- package/dist/index.js +9 -2
- package/dist/index.js.map +1 -1
- package/dist/ol.d.ts +13 -2
- package/dist/src/cesium/cesium3DTileFeature.d.ts +1 -0
- package/dist/src/cesium/cesium3DTileFeature.js +16 -3
- package/dist/src/cesium/cesium3DTileFeature.js.map +1 -1
- package/dist/src/cesium/cesium3DTilePointFeature.js +2 -1
- package/dist/src/cesium/cesium3DTilePointFeature.js.map +1 -1
- package/dist/src/classRegistry.d.ts +7 -1
- package/dist/src/classRegistry.js.map +1 -1
- package/dist/src/featureProvider/abstractAttributeProvider.d.ts +62 -0
- package/dist/src/featureProvider/abstractAttributeProvider.js +129 -0
- package/dist/src/featureProvider/abstractAttributeProvider.js.map +1 -0
- package/dist/src/featureProvider/abstractFeatureProvider.d.ts +9 -18
- package/dist/src/featureProvider/abstractFeatureProvider.js +7 -38
- package/dist/src/featureProvider/abstractFeatureProvider.js.map +1 -1
- package/dist/src/featureProvider/compositeFeatureProvider.d.ts +27 -0
- package/dist/src/featureProvider/compositeFeatureProvider.js +53 -0
- package/dist/src/featureProvider/compositeFeatureProvider.js.map +1 -0
- package/dist/src/featureProvider/csvAttributeProvider.d.ts +41 -0
- package/dist/src/featureProvider/csvAttributeProvider.js +126 -0
- package/dist/src/featureProvider/csvAttributeProvider.js.map +1 -0
- package/dist/src/featureProvider/featureProviderFactory.d.ts +3 -0
- package/dist/src/featureProvider/featureProviderFactory.js +17 -0
- package/dist/src/featureProvider/featureProviderFactory.js.map +1 -0
- package/dist/src/featureProvider/i3sAttributeProvider.d.ts +7 -0
- package/dist/src/featureProvider/i3sAttributeProvider.js +43 -0
- package/dist/src/featureProvider/i3sAttributeProvider.js.map +1 -0
- package/dist/src/featureProvider/jsonAttributeProvider.d.ts +26 -0
- package/dist/src/featureProvider/jsonAttributeProvider.js +73 -0
- package/dist/src/featureProvider/jsonAttributeProvider.js.map +1 -0
- package/dist/src/featureProvider/tileProviderFeatureProvider.d.ts +4 -6
- package/dist/src/featureProvider/tileProviderFeatureProvider.js +9 -11
- package/dist/src/featureProvider/tileProviderFeatureProvider.js.map +1 -1
- package/dist/src/featureProvider/urlIdAttributeProvider.d.ts +28 -0
- package/dist/src/featureProvider/urlIdAttributeProvider.js +50 -0
- package/dist/src/featureProvider/urlIdAttributeProvider.js.map +1 -0
- package/dist/src/featureProvider/wmsFeatureProvider.d.ts +12 -3
- package/dist/src/featureProvider/wmsFeatureProvider.js +17 -6
- package/dist/src/featureProvider/wmsFeatureProvider.js.map +1 -1
- package/dist/src/interaction/featureAtPixelInteraction.d.ts +15 -3
- package/dist/src/interaction/featureAtPixelInteraction.js +41 -1
- package/dist/src/interaction/featureAtPixelInteraction.js.map +1 -1
- package/dist/src/interaction/featureProviderInteraction.js +42 -26
- package/dist/src/interaction/featureProviderInteraction.js.map +1 -1
- package/dist/src/layer/cesium/cesiumTilesetCesiumImpl.d.ts +14 -5
- package/dist/src/layer/cesium/cesiumTilesetCesiumImpl.js +243 -128
- package/dist/src/layer/cesium/cesiumTilesetCesiumImpl.js.map +1 -1
- package/dist/src/layer/cesium/i3sCesiumImpl.d.ts +33 -0
- package/dist/src/layer/cesium/i3sCesiumImpl.js +107 -0
- package/dist/src/layer/cesium/i3sCesiumImpl.js.map +1 -0
- package/dist/src/layer/cesium/vcsTile/vcsQuadtreeTileProvider.js +2 -1
- package/dist/src/layer/cesium/vcsTile/vcsQuadtreeTileProvider.js.map +1 -1
- package/dist/src/layer/cesium/vectorRasterTileCesiumImpl.js +7 -6
- package/dist/src/layer/cesium/vectorRasterTileCesiumImpl.js.map +1 -1
- package/dist/src/layer/cesium/vectorTileImageryProvider.js +2 -2
- package/dist/src/layer/cesium/vectorTileImageryProvider.js.map +1 -1
- package/dist/src/layer/cesiumTilesetLayer.d.ts +9 -0
- package/dist/src/layer/cesiumTilesetLayer.js +26 -1
- package/dist/src/layer/cesiumTilesetLayer.js.map +1 -1
- package/dist/src/layer/i3sLayer.d.ts +80 -0
- package/dist/src/layer/i3sLayer.js +242 -0
- package/dist/src/layer/i3sLayer.js.map +1 -0
- package/dist/src/layer/layer.d.ts +8 -3
- package/dist/src/layer/layer.js +7 -1
- package/dist/src/layer/layer.js.map +1 -1
- package/dist/src/layer/layerSymbols.d.ts +4 -0
- package/dist/src/layer/layerSymbols.js +4 -0
- package/dist/src/layer/layerSymbols.js.map +1 -1
- package/dist/src/layer/panoramaDatasetLayer.d.ts +2 -0
- package/dist/src/layer/panoramaDatasetLayer.js +33 -13
- package/dist/src/layer/panoramaDatasetLayer.js.map +1 -1
- package/dist/src/layer/tileProvider/flatGeobufTileProvider.js +3 -2
- package/dist/src/layer/tileProvider/flatGeobufTileProvider.js.map +1 -1
- package/dist/src/layer/tileProvider/mvtTileProvider.js +3 -2
- package/dist/src/layer/tileProvider/mvtTileProvider.js.map +1 -1
- package/dist/src/layer/tileProvider/tileProvider.d.ts +6 -0
- package/dist/src/layer/tileProvider/tileProvider.js +12 -1
- package/dist/src/layer/tileProvider/tileProvider.js.map +1 -1
- package/dist/src/layer/vectorLayer.js +2 -2
- package/dist/src/layer/vectorLayer.js.map +1 -1
- package/dist/src/layer/vectorProperties.js +10 -1
- package/dist/src/layer/vectorProperties.js.map +1 -1
- package/dist/src/layer/vectorTileLayer.d.ts +14 -5
- package/dist/src/layer/vectorTileLayer.js +78 -26
- package/dist/src/layer/vectorTileLayer.js.map +1 -1
- package/dist/src/layer/wmsLayer.d.ts +3 -0
- package/dist/src/layer/wmsLayer.js +62 -32
- package/dist/src/layer/wmsLayer.js.map +1 -1
- package/dist/src/map/baseCesiumMap.d.ts +4 -4
- package/dist/src/map/baseCesiumMap.js +12 -0
- package/dist/src/map/baseCesiumMap.js.map +1 -1
- package/dist/src/map/cesiumMap.js +0 -11
- package/dist/src/map/cesiumMap.js.map +1 -1
- package/dist/src/map/obliqueMap.js +11 -4
- package/dist/src/map/obliqueMap.js.map +1 -1
- package/dist/src/map/panoramaMap.js +1 -1
- package/dist/src/panorama/panoramaImage.js +6 -5
- package/dist/src/panorama/panoramaImage.js.map +1 -1
- package/dist/src/style/declarativeStyleItem.js +7 -8
- package/dist/src/style/declarativeStyleItem.js.map +1 -1
- package/dist/src/util/fetch.d.ts +7 -0
- package/dist/src/util/fetch.js +7 -0
- package/dist/src/util/fetch.js.map +1 -1
- package/dist/src/vcsApp.d.ts +2 -3
- package/dist/src/vcsApp.js.map +1 -1
- package/dist/src/vcsModuleHelpers.d.ts +5 -2
- package/dist/src/vcsModuleHelpers.js +27 -1
- package/dist/src/vcsModuleHelpers.js.map +1 -1
- package/dist/tests/unit/helpers/cesiumHelpers.js +7 -1
- package/dist/tests/unit/helpers/cesiumHelpers.js.map +1 -1
- package/index.ts +27 -0
- package/package.json +2 -2
- package/src/cesium/cesium.d.ts +12 -0
- package/src/cesium/cesium3DTileFeature.ts +25 -3
- package/src/cesium/cesium3DTilePointFeature.ts +3 -1
- package/src/classRegistry.ts +8 -3
- package/src/featureProvider/abstractAttributeProvider.ts +201 -0
- package/src/featureProvider/abstractFeatureProvider.ts +27 -47
- package/src/featureProvider/compositeFeatureProvider.ts +103 -0
- package/src/featureProvider/csvAttributeProvider.ts +186 -0
- package/src/featureProvider/featureProviderFactory.ts +31 -0
- package/src/featureProvider/i3sAttributeProvider.ts +60 -0
- package/src/featureProvider/jsonAttributeProvider.ts +109 -0
- package/src/featureProvider/tileProviderFeatureProvider.ts +13 -14
- package/src/featureProvider/urlIdAttributeProvider.ts +82 -0
- package/src/featureProvider/wmsFeatureProvider.ts +24 -7
- package/src/global.d.ts +2 -0
- package/src/interaction/featureAtPixelInteraction.ts +53 -3
- package/src/interaction/featureProviderInteraction.ts +59 -38
- package/src/layer/cesium/cesiumTilesetCesiumImpl.ts +296 -157
- package/src/layer/cesium/i3sCesiumImpl.ts +141 -0
- package/src/layer/cesium/vcsTile/vcsQuadtreeTileProvider.ts +4 -3
- package/src/layer/cesium/vectorRasterTileCesiumImpl.ts +7 -6
- package/src/layer/cesium/vectorTileImageryProvider.ts +2 -2
- package/src/layer/cesiumTilesetLayer.ts +51 -1
- package/src/layer/i3sLayer.ts +343 -0
- package/src/layer/layer.ts +30 -3
- package/src/layer/layerSymbols.ts +5 -0
- package/src/layer/panoramaDatasetLayer.ts +44 -13
- package/src/layer/tileProvider/flatGeobufTileProvider.ts +3 -2
- package/src/layer/tileProvider/mvtTileProvider.ts +3 -2
- package/src/layer/tileProvider/tileProvider.ts +13 -1
- package/src/layer/vectorLayer.ts +4 -2
- package/src/layer/vectorProperties.ts +10 -1
- package/src/layer/vectorTileLayer.ts +135 -47
- package/src/layer/wmsLayer.ts +77 -44
- package/src/map/baseCesiumMap.ts +29 -5
- package/src/map/cesiumMap.ts +0 -15
- package/src/map/obliqueMap.ts +13 -6
- package/src/map/panoramaMap.ts +1 -1
- package/src/ol/ol.d.ts +13 -2
- package/src/panorama/panoramaImage.ts +8 -5
- package/src/style/declarativeStyleItem.ts +7 -9
- package/src/util/fetch.ts +7 -0
- package/src/vcsApp.ts +7 -8
- package/src/vcsModuleHelpers.ts +62 -4
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getLogger as getLoggerByName } from '@vcsuite/logger';
|
|
2
2
|
import Viewpoint from './util/viewpoint.js';
|
|
3
3
|
import { getObjectFromClassRegistry } from './classRegistry.js';
|
|
4
|
+
import CompositeFeatureProvider from './featureProvider/compositeFeatureProvider.js';
|
|
4
5
|
function getLogger() {
|
|
5
6
|
return getLoggerByName('init');
|
|
6
7
|
}
|
|
@@ -19,6 +20,26 @@ export function deserializeViewpoint(viewpointObject) {
|
|
|
19
20
|
getLogger().warning(`Viewpoint ${String(viewpointObject.name)} is not valid`);
|
|
20
21
|
return null;
|
|
21
22
|
}
|
|
23
|
+
export function deserializeFeatureProvider(vcsApp, options) {
|
|
24
|
+
if (options.type === CompositeFeatureProvider.className) {
|
|
25
|
+
const { featureProviders: featureProviderOptions, attributeProviders: attributeProviderOptions, } = options;
|
|
26
|
+
const featureProviders = featureProviderOptions
|
|
27
|
+
.map((fpConfig) => deserializeFeatureProvider(vcsApp, fpConfig))
|
|
28
|
+
.filter((fp) => !!fp);
|
|
29
|
+
const attributeProviders = attributeProviderOptions
|
|
30
|
+
.map((apConfig) => deserializeFeatureProvider(vcsApp, apConfig))
|
|
31
|
+
.filter((ap) => !!ap);
|
|
32
|
+
return new CompositeFeatureProvider({
|
|
33
|
+
...options,
|
|
34
|
+
featureProviders,
|
|
35
|
+
attributeProviders,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
if (options.type) {
|
|
39
|
+
return getObjectFromClassRegistry(vcsApp.featureProviderClassRegistry, options);
|
|
40
|
+
}
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
22
43
|
export function deserializeLayer(vcsApp, layerConfig) {
|
|
23
44
|
let style;
|
|
24
45
|
if (layerConfig.style) {
|
|
@@ -42,9 +63,13 @@ export function deserializeLayer(vcsApp, layerConfig) {
|
|
|
42
63
|
if (layerConfig.tileProvider) {
|
|
43
64
|
tileProvider = getObjectFromClassRegistry(vcsApp.tileProviderClassRegistry, layerConfig.tileProvider);
|
|
44
65
|
}
|
|
66
|
+
let attributeProvider;
|
|
67
|
+
if (layerConfig.attributeProvider) {
|
|
68
|
+
attributeProvider = deserializeFeatureProvider(vcsApp, layerConfig.attributeProvider);
|
|
69
|
+
}
|
|
45
70
|
let featureProvider;
|
|
46
71
|
if (layerConfig.featureProvider) {
|
|
47
|
-
featureProvider =
|
|
72
|
+
featureProvider = deserializeFeatureProvider(vcsApp, layerConfig.featureProvider);
|
|
48
73
|
}
|
|
49
74
|
return getObjectFromClassRegistry(vcsApp.layerClassRegistry, {
|
|
50
75
|
...layerConfig,
|
|
@@ -52,6 +77,7 @@ export function deserializeLayer(vcsApp, layerConfig) {
|
|
|
52
77
|
highlightStyle,
|
|
53
78
|
tileProvider,
|
|
54
79
|
featureProvider,
|
|
80
|
+
attributeProvider,
|
|
55
81
|
});
|
|
56
82
|
}
|
|
57
83
|
export function serializeLayer(vcsApp, layer) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vcsModuleHelpers.js","sourceRoot":"","sources":["../../src/vcsModuleHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,eAAe,EAAe,MAAM,iBAAiB,CAAC;AAC5E,OAAO,SAAoC,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"vcsModuleHelpers.js","sourceRoot":"","sources":["../../src/vcsModuleHelpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -264,7 +264,7 @@ export function setupCesiumContextLimits() {
|
|
|
264
264
|
}
|
|
265
265
|
class BatchTable {
|
|
266
266
|
constructor(properties) {
|
|
267
|
-
this.properties = properties;
|
|
267
|
+
this.properties = properties ?? {};
|
|
268
268
|
this.color = new Color();
|
|
269
269
|
this.show = true;
|
|
270
270
|
this.destroyed = false;
|
|
@@ -275,6 +275,12 @@ class BatchTable {
|
|
|
275
275
|
getProperty(id, prop) {
|
|
276
276
|
return this.properties[prop];
|
|
277
277
|
}
|
|
278
|
+
setProperty(id, prop, value) {
|
|
279
|
+
this.properties[prop] = value;
|
|
280
|
+
}
|
|
281
|
+
hasProperty(id, prop) {
|
|
282
|
+
return this.properties[prop] !== undefined;
|
|
283
|
+
}
|
|
278
284
|
getColor() {
|
|
279
285
|
return this.color;
|
|
280
286
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cesiumHelpers.js","sourceRoot":"","sources":["../../../../tests/unit/helpers/cesiumHelpers.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cesiumHelpers.js","sourceRoot":"","sources":["../../../../tests/unit/helpers/cesiumHelpers.js"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EACL,cAAc,EACd,MAAM,EACN,MAAM,EACN,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,EACL,KAAK,IAAI,WAAW,EACpB,SAAS,EACT,sBAAsB,EACtB,KAAK,EACL,oBAAoB,EACpB,uBAAuB,EACvB,KAAK,EACL,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,GAAG,GACJ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,kBAAkB,MAAM,0CAA0C,CAAC;AAC1E,OAAO,eAAe,MAAM,uCAAuC,CAAC;AACpE,OAAO,SAAS,MAAM,+BAA+B,CAAC;AACtD,OAAO,SAAS,MAAM,gCAAgC,CAAC;AACvD,OAAO,aAAa,MAAM,mCAAmC,CAAC;AAE9D,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,KAAK,EAAE;QACL,OAAO,EAAE,KAAK;QACd,cAAc,EAAE,aAAa;KAC9B;IACD,cAAc,EAAE,SAAS;IACzB,IAAI,EAAE;QACJ,cAAc,EAAE;YACd,MAAM,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC;SACxE;QACD,cAAc,EAAE,UAAU;QAC1B,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,EAAE;KACb;IACD,UAAU,EAAE,EAAE;IACd,MAAM,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;CAClC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAO,EAAE,GAAG;IAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IACvC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACjC,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,8BAA8B,EAAE;QACxD,GAAG;QACH,EAAE,cAAc,EAAE,kBAAkB,EAAE;QACtC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;KAC5B,CAAC,CAAC;IACH,MAAM,CAAC,OAAO,EAAE,CAAC;IACjB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI;IAC1E,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,MAAM,YAAY,GAAG,IAAI,kBAAkB,CAAC;QAC1C,GAAG,EAAE,8BAA8B;QACnC,IAAI;KACL,CAAC,CAAC;IAEH,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC;IAChC,IAAI,SAAS,EAAE,CAAC;QACd,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,YAAY,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;QAC/D,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACvB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,gBAAgB,EAAE;gBAC5D,GAAG;oBACD,OAAO,IAAI,cAAc,EAAE,CAAC;gBAC9B,CAAC;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,gBAAgB,GAAG,CAAC;IACjD,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;IAEtC,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;YACvB,KAAK,EAAE,EAAE;SACV,CAAC,CAAC;QACH,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO;QACL,KAAK;QACL,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,KAAK,EAAE,OAAO;IAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,gBAAgB,CAAC,SAAS,QAAQ;QACvD,QAAQ,EAAE,CAAC;QACX,8CAA8C;QAC9C,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,KAAK,GAAG;QACZ,2BAA2B,EAAE;YAC3B,YAAY,EAAE,IAAI;SACnB;QACD,qBAAqB,EAAE,IAAI;QAC3B,KAAK,EAAE,IAAI,KAAK,EAAE;QAClB,IAAI,EAAE,SAAS,CAAC,OAAO;QACvB,MAAM,EAAE,IAAI,eAAe,EAAE;QAC7B,UAAU,EAAE,IAAI,mBAAmB,EAAE;QACrC,gBAAgB,EAAE,IAAI,mBAAmB,EAAE;QAC3C,aAAa,EAAE,IAAI,sBAAsB,EAAE;QAC3C,mBAAmB,EAAE,GAAG;QACxB,kBAAkB,EAAE,GAAG;QACvB,UAAU,EAAE,IAAI,WAAW,EAAE;QAC7B,SAAS,EAAE,IAAI,WAAW,EAAE;QAC5B,aAAa,EAAE,IAAI,qBAAqB,EAAE;QAC1C,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC7B,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;QACxC,eAAe,EAAE;YACf,YAAY,EAAE,OAAO,CAAC,OAAO,EAAE;SAChC;QACD,GAAG,EAAE,IAAI,GAAG,EAAE;QACd,UAAU,EAAE;YACV,IAAI,EAAE,SAAS;YACf,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI;gBAClB,aAAa,EAAE,IAAI;aACpB;YACD,SAAS,EAAE,CAAC;SACb;QACD,OAAO,EAAE;YACP,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,IAAI;SACpB;QACD,MAAM,CAAC,IAAI;YACT,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,KAAI,CAAC;QACT,YAAY,KAAI,CAAC;QACjB,SAAS;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO;YACL,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,YAAY;YACV,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;QAClB,CAAC;QACD,SAAS,KAAI,CAAC;KACf,CAAC;IACF,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;IAEnC,MAAM,CAAC,KAAK,GAAG,SAAS,KAAK,CAAC,OAAO;QACnC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;IAC7B,OAAO;QACL,KAAK;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,eAAe,EAAE,CAAC;QAClB,KAAK,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO;YACL,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,MAAM,KAAI,CAAC;KACZ,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,GAAG;IAClB,MAAM,YAAY,GAAG,mBAAmB,EAAE,CAAC;IAC3C,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC;IAC/B,GAAG,CAAC,aAAa,GAAG,YAAY,CAAC;IACjC,GAAG,CAAC,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAAC;IACxC,GAAG,CAAC,uBAAuB,GAAG,IAAI,uBAAuB,CACvD,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAC/B,CAAC;IAEF,GAAG,CAAC,iBAAiB,GAAG;QACtB,WAAW,EAAE,IAAI,oBAAoB,EAAE;QACvC,WAAW;YACT,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO;YACL,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;KACF,CAAC;IACF,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;IACvB,MAAM,wBAAwB,GAAG,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChE,GAAG,CAAC,gBAAgB,GAAG,SAAS,gBAAgB;QAC9C,MAAM,EAAE,GAAG,wBAAwB,EAAE,CAAC;QACtC,IAAI,EAAE,EAAE,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,UAAU;IACrC,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,CAAC;IACb,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAU,GAAG,EAAE;IAC9C,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,CAAC;IACb,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAG;IACpC,MAAM,GAAG,GAAG,YAAY,CAAC;QACvB,eAAe,EAAE,GAAG,CAAC,MAAM;QAC3B,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM;KACxB,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClB,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB;IACtC,aAAa,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAC1C,aAAa,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACxC,aAAa,CAAC,wBAAwB,GAAG,CAAC,CAAC;IAC3C,aAAa,CAAC,wBAAwB,GAAG,IAAI,CAAC;IAC9C,aAAa,CAAC,wBAAwB,GAAG,CAAC,CAAC;IAC3C,aAAa,CAAC,iCAAiC,GAAG,EAAE,CAAC;IACrD,aAAa,CAAC,mBAAmB,GAAG,KAAK,CAAC;IAC1C,aAAa,CAAC,mBAAmB,GAAG,CAAC,CAAC;IACtC,aAAa,CAAC,8BAA8B,GAAG,IAAI,CAAC;IACpD,aAAa,CAAC,wBAAwB,GAAG,KAAK,CAAC;IAC/C,aAAa,CAAC,+BAA+B,GAAG,EAAE,CAAC;IACnD,aAAa,CAAC,yBAAyB,GAAG,EAAE,CAAC;IAC7C,aAAa,CAAC,mBAAmB,GAAG,KAAK,CAAC;IAC1C,aAAa,CAAC,sBAAsB,GAAG,EAAE,CAAC;IAC1C,aAAa,CAAC,wBAAwB,GAAG,EAAE,CAAC;IAC5C,aAAa,CAAC,+BAA+B,GAAG,EAAE,CAAC;IACnD,aAAa,CAAC,4BAA4B,GAAG,IAAI,CAAC;IAClD,aAAa,CAAC,sBAAsB,GAAG,KAAK,CAAC;IAC7C,aAAa,CAAC,qBAAqB,GAAG,KAAK,CAAC;IAC5C,aAAa,CAAC,wBAAwB,GAAG,CAAC,CAAC;IAC3C,aAAa,CAAC,wBAAwB,GAAG,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU;IACd,YAAY,UAAU;QACpB,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,cAAc;QACZ,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,WAAW,CAAC,EAAE,EAAE,IAAI;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK;QACzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAChC,CAAC;IAED,WAAW,CAAC,EAAE,EAAE,IAAI;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;IAC7C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,QAAQ,CAAC,EAAE,EAAE,KAAK;QAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,EAAE,EAAE,IAAI;QACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAC5C,UAAU,GAAG,EAAE,EACf,OAAO,GAAG,SAAS;IAEnB,MAAM,KAAK,GAAG,IAAI,mBAAmB,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG;QACd,UAAU,EAAE,IAAI,UAAU,CAAC,UAAU,CAAC;QACtC,WAAW;YACT,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;IACF,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;IAC5B,CAAC;IACD,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;IACzB,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/index.ts
CHANGED
|
@@ -30,12 +30,34 @@ export {
|
|
|
30
30
|
} from './src/classRegistry.js';
|
|
31
31
|
export type { AbstractFeatureProviderOptions } from './src/featureProvider/abstractFeatureProvider.js';
|
|
32
32
|
export { default as AbstractFeatureProvider } from './src/featureProvider/abstractFeatureProvider.js';
|
|
33
|
+
export {
|
|
34
|
+
default as AbstractAttributeProvider,
|
|
35
|
+
type AttributeProvider,
|
|
36
|
+
type AbstractAttributeProviderOptions,
|
|
37
|
+
} from './src/featureProvider/abstractAttributeProvider.js';
|
|
38
|
+
export {
|
|
39
|
+
default as CompositeFeatureProvider,
|
|
40
|
+
type CompositeFeatureProviderOptions,
|
|
41
|
+
} from './src/featureProvider/compositeFeatureProvider.js';
|
|
42
|
+
export {
|
|
43
|
+
default as CsvAttributeProvider,
|
|
44
|
+
type CsvAttributeProviderOptions,
|
|
45
|
+
} from './src/featureProvider/csvAttributeProvider.js';
|
|
33
46
|
export {
|
|
34
47
|
isProvidedFeature,
|
|
35
48
|
isProvidedClusterFeature,
|
|
36
49
|
} from './src/featureProvider/featureProviderSymbols.js';
|
|
50
|
+
export {
|
|
51
|
+
default as JSONAttributeProvider,
|
|
52
|
+
type JsonAttributeProviderOptions,
|
|
53
|
+
type JsonAttributeData,
|
|
54
|
+
} from './src/featureProvider/jsonAttributeProvider.js';
|
|
37
55
|
export type { TileProviderFeatureProviderOptions } from './src/featureProvider/tileProviderFeatureProvider.js';
|
|
38
56
|
export { default as TileProviderFeatureProvider } from './src/featureProvider/tileProviderFeatureProvider.js';
|
|
57
|
+
export {
|
|
58
|
+
default as UrlIdAttributeProvider,
|
|
59
|
+
type UrlIdAttributeProviderOptions,
|
|
60
|
+
} from './src/featureProvider/urlIdAttributeProvider.js';
|
|
39
61
|
export type {
|
|
40
62
|
FormatOptions,
|
|
41
63
|
WMSFeatureProviderOptions,
|
|
@@ -70,6 +92,7 @@ export {
|
|
|
70
92
|
} from './src/layer/cesium/cesiumTilesetCesiumImpl.js';
|
|
71
93
|
export { default as COGCesiumImpl } from './src/layer/cesium/cogCesiumImpl.js';
|
|
72
94
|
export { default as DataSourceCesiumImpl } from './src/layer/cesium/dataSourceCesiumImpl.js';
|
|
95
|
+
export { default as I3SCesiumImpl } from './src/layer/cesium/i3sCesiumImpl.js';
|
|
73
96
|
export { default as OpenStreetMapCesiumImpl } from './src/layer/cesium/openStreetMapCesiumImpl.js';
|
|
74
97
|
export { default as RasterLayerCesiumImpl } from './src/layer/cesium/rasterLayerCesiumImpl.js';
|
|
75
98
|
export { default as SingleImageCesiumImpl } from './src/layer/cesium/singleImageCesiumImpl.js';
|
|
@@ -221,6 +244,8 @@ export { default as WmsOpenlayersImpl } from './src/layer/openlayers/wmsOpenlaye
|
|
|
221
244
|
export { default as WmtsOpenlayersImpl } from './src/layer/openlayers/wmtsOpenlayersImpl.js';
|
|
222
245
|
export type { PointCloudOptions } from './src/layer/pointCloudLayer.js';
|
|
223
246
|
export { default as PointCloudLayer } from './src/layer/pointCloudLayer.js';
|
|
247
|
+
export type { I3SOptions } from './src/layer/i3sLayer.js';
|
|
248
|
+
export { default as I3SLayer } from './src/layer/i3sLayer.js';
|
|
224
249
|
export type {
|
|
225
250
|
RasterLayerOptions,
|
|
226
251
|
RasterLayerImplementation,
|
|
@@ -757,6 +782,7 @@ export {
|
|
|
757
782
|
requestUrl,
|
|
758
783
|
requestJson,
|
|
759
784
|
requestArrayBuffer,
|
|
785
|
+
getInitForUrl,
|
|
760
786
|
} from './src/util/fetch.js';
|
|
761
787
|
export {
|
|
762
788
|
getFlatCoordinatesFromSimpleGeometry,
|
|
@@ -849,6 +875,7 @@ export type { ModuleLayerOptions } from './src/vcsModuleHelpers.js';
|
|
|
849
875
|
export {
|
|
850
876
|
deserializeMap,
|
|
851
877
|
deserializeViewpoint,
|
|
878
|
+
deserializeFeatureProvider,
|
|
852
879
|
deserializeLayer,
|
|
853
880
|
serializeLayer,
|
|
854
881
|
getLayerIndex,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vcmap/core",
|
|
3
|
-
"version": "6.3.0-rc.
|
|
3
|
+
"version": "6.3.0-rc.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
},
|
|
77
77
|
"prettier": "@vcsuite/eslint-config/prettier.js",
|
|
78
78
|
"dependencies": {
|
|
79
|
-
"@vcsuite/check": "^3.
|
|
79
|
+
"@vcsuite/check": "^3.2.2",
|
|
80
80
|
"@vcsuite/logger": "^1.0.1",
|
|
81
81
|
"@vcsuite/parsers": "^2.0.0",
|
|
82
82
|
"fast-deep-equal": "^3.1.3",
|
package/src/cesium/cesium.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ import type {
|
|
|
21
21
|
import type { isTiledFeature } from '../layer/featureStoreLayer.js';
|
|
22
22
|
import type { vectorClusterGroupName } from '../vectorCluster/vectorClusterSymbols.js';
|
|
23
23
|
import { scaleSymbol } from '../layer/vectorSymbols.js';
|
|
24
|
+
import { attributeProviderName } from '../featureProvider/abstractAttributeProvider.js';
|
|
24
25
|
|
|
25
26
|
declare module '@vcmap-cesium/engine' {
|
|
26
27
|
enum TextureWarp {
|
|
@@ -105,6 +106,7 @@ declare module '@vcmap-cesium/engine' {
|
|
|
105
106
|
[hidden]?: boolean;
|
|
106
107
|
[highlighted]?: VectorStyleItem;
|
|
107
108
|
[originalStyle]?: StyleLike | Color;
|
|
109
|
+
[attributeProviderName]?: string;
|
|
108
110
|
}
|
|
109
111
|
|
|
110
112
|
interface Primitive {
|
|
@@ -172,8 +174,14 @@ declare module '@vcmap-cesium/engine' {
|
|
|
172
174
|
[vcsLayerName]?: string;
|
|
173
175
|
}
|
|
174
176
|
|
|
177
|
+
interface I3SDataProvider {
|
|
178
|
+
[vcsLayerName]?: string;
|
|
179
|
+
[allowPicking]?: boolean;
|
|
180
|
+
}
|
|
181
|
+
|
|
175
182
|
interface Cesium3DTile {
|
|
176
183
|
boundingVolume: TileBoundingVolume;
|
|
184
|
+
contentBoundingVolume: TileBoundingVolume;
|
|
177
185
|
contentReady: boolean;
|
|
178
186
|
[cesiumTilesetLastUpdated]?: number;
|
|
179
187
|
}
|
|
@@ -209,6 +217,7 @@ declare module '@vcmap-cesium/engine' {
|
|
|
209
217
|
_batchId: number;
|
|
210
218
|
getId(): number | string;
|
|
211
219
|
getAttributes(): Record<string, unknown>;
|
|
220
|
+
setAttribute(key: string, value: unknown): void;
|
|
212
221
|
[vcsLayerName]?: string;
|
|
213
222
|
[globalHidden]?: boolean;
|
|
214
223
|
[hidden]?: boolean;
|
|
@@ -216,6 +225,7 @@ declare module '@vcmap-cesium/engine' {
|
|
|
216
225
|
[originalStyle]?: StyleLike | Color;
|
|
217
226
|
[isTiledFeature]?: boolean;
|
|
218
227
|
[allowPicking]?: boolean;
|
|
228
|
+
[attributeProviderName]?: string;
|
|
219
229
|
}
|
|
220
230
|
|
|
221
231
|
interface Cesium3DTilePointFeature {
|
|
@@ -223,12 +233,14 @@ declare module '@vcmap-cesium/engine' {
|
|
|
223
233
|
_batchId: number;
|
|
224
234
|
getId(): number | string;
|
|
225
235
|
getAttributes(): Record<string, unknown>;
|
|
236
|
+
setAttribute(key: string, value: unknown): void;
|
|
226
237
|
[vcsLayerName]?: string;
|
|
227
238
|
[globalHidden]?: boolean;
|
|
228
239
|
[hidden]?: boolean;
|
|
229
240
|
[highlighted]?: VectorStyleItem;
|
|
230
241
|
[originalStyle]?: StyleLike | Color;
|
|
231
242
|
[allowPicking]?: boolean;
|
|
243
|
+
[attributeProviderName]?: string;
|
|
232
244
|
}
|
|
233
245
|
|
|
234
246
|
interface Cesium3DTileStyle {
|
|
@@ -7,14 +7,16 @@ Cesium3DTileFeature.prototype.getId = function getId(
|
|
|
7
7
|
return (
|
|
8
8
|
(this.getProperty('id') as string | number) ||
|
|
9
9
|
`${this.content.url}${String(this._batchId)}`
|
|
10
|
-
);
|
|
10
|
+
);
|
|
11
11
|
};
|
|
12
12
|
|
|
13
13
|
export function getAttributes(
|
|
14
14
|
this: Cesium3DTileFeature | Cesium3DTilePointFeature,
|
|
15
15
|
): Record<string, unknown> {
|
|
16
16
|
if (
|
|
17
|
-
(this.tileset.asset as { version: string } | undefined)?.version ===
|
|
17
|
+
(this.tileset.asset as { version: string } | undefined)?.version ===
|
|
18
|
+
'1.1' ||
|
|
19
|
+
!this.hasProperty('attributes')
|
|
18
20
|
) {
|
|
19
21
|
const attributes: Record<string, unknown> = {};
|
|
20
22
|
this.getPropertyIds().forEach((id) => {
|
|
@@ -22,7 +24,27 @@ export function getAttributes(
|
|
|
22
24
|
});
|
|
23
25
|
return attributes;
|
|
24
26
|
}
|
|
25
|
-
return this.getProperty('attributes') as Record<string, unknown
|
|
27
|
+
return (this.getProperty('attributes') as Record<string, unknown>) ?? {};
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
Cesium3DTileFeature.prototype.getAttributes = getAttributes;
|
|
31
|
+
|
|
32
|
+
export function setAttribute(
|
|
33
|
+
this: Cesium3DTileFeature | Cesium3DTilePointFeature,
|
|
34
|
+
key: string,
|
|
35
|
+
value: unknown,
|
|
36
|
+
): void {
|
|
37
|
+
if (
|
|
38
|
+
(this.tileset.asset as { version: string } | undefined)?.version ===
|
|
39
|
+
'1.1' ||
|
|
40
|
+
!this.hasProperty('attributes')
|
|
41
|
+
) {
|
|
42
|
+
this.setProperty(key, value);
|
|
43
|
+
}
|
|
44
|
+
const attributes =
|
|
45
|
+
(this.getProperty('attributes') as Record<string, unknown>) ?? {};
|
|
46
|
+
attributes[key] = value;
|
|
47
|
+
this.setProperty('attributes', attributes);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
Cesium3DTileFeature.prototype.setAttribute = setAttribute;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Cesium3DTilePointFeature } from '@vcmap-cesium/engine';
|
|
2
|
-
import { getAttributes } from './cesium3DTileFeature.js';
|
|
2
|
+
import { getAttributes, setAttribute } from './cesium3DTileFeature.js';
|
|
3
3
|
|
|
4
4
|
Cesium3DTilePointFeature.prototype.getId = function getId(
|
|
5
5
|
this: Cesium3DTilePointFeature,
|
|
@@ -11,3 +11,5 @@ Cesium3DTilePointFeature.prototype.getId = function getId(
|
|
|
11
11
|
};
|
|
12
12
|
|
|
13
13
|
Cesium3DTilePointFeature.prototype.getAttributes = getAttributes;
|
|
14
|
+
|
|
15
|
+
Cesium3DTilePointFeature.prototype.setAttribute = setAttribute;
|
package/src/classRegistry.ts
CHANGED
|
@@ -7,6 +7,7 @@ import type VcsMap from './map/vcsMap.js';
|
|
|
7
7
|
import type StyleItem from './style/styleItem.js';
|
|
8
8
|
import type Category from './category/category.js';
|
|
9
9
|
import type AbstractFeatureProvider from './featureProvider/abstractFeatureProvider.js';
|
|
10
|
+
import type AbstractAttributeProvider from './featureProvider/abstractAttributeProvider.js';
|
|
10
11
|
import type TileProvider from './layer/tileProvider/tileProvider.js';
|
|
11
12
|
|
|
12
13
|
function logger(): Logger {
|
|
@@ -102,9 +103,13 @@ export const tileProviderClassRegistry = new ClassRegistry<
|
|
|
102
103
|
typeof TileProvider
|
|
103
104
|
>();
|
|
104
105
|
|
|
105
|
-
export
|
|
106
|
-
typeof AbstractFeatureProvider
|
|
107
|
-
|
|
106
|
+
export type FeatureProviderClass =
|
|
107
|
+
| ({ new (): AbstractFeatureProvider } & typeof AbstractFeatureProvider)
|
|
108
|
+
| ({
|
|
109
|
+
new (): AbstractAttributeProvider;
|
|
110
|
+
} & typeof AbstractAttributeProvider);
|
|
111
|
+
export const featureProviderClassRegistry =
|
|
112
|
+
new ClassRegistry<FeatureProviderClass>();
|
|
108
113
|
|
|
109
114
|
export const mapClassRegistry = new ClassRegistry<typeof VcsMap>();
|
|
110
115
|
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import Feature from 'ol/Feature.js';
|
|
2
|
+
import type { Extent } from 'ol/extent.js';
|
|
3
|
+
import { v4 as uuid } from 'uuid';
|
|
4
|
+
import { is, oneOf } from '@vcsuite/check';
|
|
5
|
+
import {
|
|
6
|
+
Cesium3DTileFeature,
|
|
7
|
+
Cesium3DTilePointFeature,
|
|
8
|
+
Entity,
|
|
9
|
+
} from '@vcmap-cesium/engine';
|
|
10
|
+
import VcsObject, { type VcsObjectOptions } from '../vcsObject.js';
|
|
11
|
+
import type { EventFeature } from '../interaction/abstractInteraction.js';
|
|
12
|
+
import { featureExists } from '../layer/featureVisibility.js';
|
|
13
|
+
|
|
14
|
+
export type AbstractAttributeProviderOptions = VcsObjectOptions & {
|
|
15
|
+
keyProperty?: string;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const attributeProviderName = Symbol('attributeProvider');
|
|
19
|
+
|
|
20
|
+
export interface AttributeProvider extends VcsObject {
|
|
21
|
+
/**
|
|
22
|
+
* Augments a feature with attributes from the provider
|
|
23
|
+
* @param feature
|
|
24
|
+
*/
|
|
25
|
+
augmentFeature(feature: EventFeature): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Augments multiple features with attributes from the provider
|
|
28
|
+
* @param features
|
|
29
|
+
* @param extent - optional extent in webmercator to limit attribute lookup on certain providers.
|
|
30
|
+
*/
|
|
31
|
+
augmentFeatures(features: EventFeature[], extent?: Extent): Promise<void>;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export default abstract class AbstractAttributeProvider
|
|
35
|
+
extends VcsObject
|
|
36
|
+
implements AttributeProvider
|
|
37
|
+
{
|
|
38
|
+
static get className(): string {
|
|
39
|
+
return 'AbstractAttributeProvider';
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
static getDefaultOptions(): AbstractAttributeProviderOptions {
|
|
43
|
+
return {
|
|
44
|
+
...VcsObject.getDefaultOptions(),
|
|
45
|
+
keyProperty: undefined,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
private _id = uuid();
|
|
50
|
+
|
|
51
|
+
keyProperty?: string;
|
|
52
|
+
|
|
53
|
+
constructor(options: AbstractAttributeProviderOptions) {
|
|
54
|
+
super(options);
|
|
55
|
+
|
|
56
|
+
this.keyProperty = options.keyProperty;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
private _setAttributesOnFeature(
|
|
60
|
+
feature: EventFeature,
|
|
61
|
+
attributes: Record<string, unknown>,
|
|
62
|
+
): void {
|
|
63
|
+
if (feature instanceof Feature) {
|
|
64
|
+
feature.setProperties(attributes, true);
|
|
65
|
+
feature.changed();
|
|
66
|
+
} else if (
|
|
67
|
+
feature instanceof Cesium3DTileFeature ||
|
|
68
|
+
feature instanceof Cesium3DTilePointFeature
|
|
69
|
+
) {
|
|
70
|
+
if (featureExists(feature)) {
|
|
71
|
+
for (const key of Object.keys(attributes)) {
|
|
72
|
+
feature.setAttribute(key, attributes[key]);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
feature[attributeProviderName] = this._id;
|
|
77
|
+
} else if (feature instanceof Entity) {
|
|
78
|
+
for (const key of Object.keys(attributes)) {
|
|
79
|
+
feature.properties?.addProperty(key, attributes[key]);
|
|
80
|
+
}
|
|
81
|
+
feature[attributeProviderName] = this._id;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
private _getKeyForFeature(feature: EventFeature): string | undefined {
|
|
86
|
+
let key: unknown;
|
|
87
|
+
if (this.keyProperty) {
|
|
88
|
+
key = feature.getProperty(this.keyProperty) as unknown;
|
|
89
|
+
} else {
|
|
90
|
+
key = feature.getId();
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if (is(key, oneOf(String, Number))) {
|
|
94
|
+
return String(key);
|
|
95
|
+
}
|
|
96
|
+
return undefined;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Retrieves attributes for a given key and feature.
|
|
101
|
+
* Be sure not to use the feature id for lookup, but the provided key.
|
|
102
|
+
* @param key - the key to retrieve attributes for
|
|
103
|
+
* @param feature - the feature requesting the attributes
|
|
104
|
+
* @protected
|
|
105
|
+
*/
|
|
106
|
+
protected abstract _getAttributes(
|
|
107
|
+
key: string,
|
|
108
|
+
feature: EventFeature,
|
|
109
|
+
): Promise<Record<string, unknown> | undefined>;
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Optional bulk attribute retrieval for multiple keys.
|
|
113
|
+
* Can be implemented for optimal loading of data.
|
|
114
|
+
* Provides a webmercator extent to limit the lookup if needed.
|
|
115
|
+
* You MUST return a same length array as keys, with undefined for missing attributes.
|
|
116
|
+
* @param bulk - array of key and feature pairs to retrieve attributes for
|
|
117
|
+
* @param _extent - optional extent in webmercator to limit attribute lookup on certain providers.
|
|
118
|
+
* @protected
|
|
119
|
+
*/
|
|
120
|
+
protected _getBulkAttributes(
|
|
121
|
+
bulk: { key: string; feature: EventFeature }[],
|
|
122
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
123
|
+
_extent?: Extent,
|
|
124
|
+
): Promise<(Record<string, unknown> | undefined)[]> {
|
|
125
|
+
return Promise.all(
|
|
126
|
+
bulk.map(({ key, feature }) => this._getAttributes(key, feature)),
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Augments a feature with attributes from the provider
|
|
132
|
+
* @param feature
|
|
133
|
+
*/
|
|
134
|
+
async augmentFeature(feature: EventFeature): Promise<void> {
|
|
135
|
+
if (feature[attributeProviderName] !== this._id) {
|
|
136
|
+
const key = this._getKeyForFeature(feature);
|
|
137
|
+
if (key) {
|
|
138
|
+
const attributes = await this._getAttributes(key, feature);
|
|
139
|
+
if (attributes) {
|
|
140
|
+
this._setAttributesOnFeature(feature, attributes);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
feature[attributeProviderName] = this._id;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Augments multiple features with attributes from the provider
|
|
149
|
+
* @param features
|
|
150
|
+
* @param extent - optional extent in webmercator to limit attribute lookup on certain providers.
|
|
151
|
+
*/
|
|
152
|
+
async augmentFeatures(
|
|
153
|
+
features: EventFeature[],
|
|
154
|
+
extent?: Extent,
|
|
155
|
+
): Promise<void> {
|
|
156
|
+
const bulk = features
|
|
157
|
+
.map((feature) => {
|
|
158
|
+
if (feature[attributeProviderName] !== this._id) {
|
|
159
|
+
const key = this._getKeyForFeature(feature);
|
|
160
|
+
if (key) {
|
|
161
|
+
return { key, feature };
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
feature[attributeProviderName] = this._id;
|
|
165
|
+
return undefined;
|
|
166
|
+
})
|
|
167
|
+
.filter((i) => !!i);
|
|
168
|
+
|
|
169
|
+
if (bulk.length === 0) {
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
const attributes = await this._getBulkAttributes(bulk, extent);
|
|
174
|
+
if (attributes.length !== bulk.length) {
|
|
175
|
+
this.getLogger().error(
|
|
176
|
+
`Bulk attribute retrieval returned ${attributes.length} results for ${bulk.length} features.`,
|
|
177
|
+
);
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
for (let i = 0; i < bulk.length; i++) {
|
|
182
|
+
const attr = attributes[i];
|
|
183
|
+
if (attr) {
|
|
184
|
+
this._setAttributesOnFeature(bulk[i].feature, attr);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
toJSON(
|
|
190
|
+
defaultOptions = AbstractAttributeProvider.getDefaultOptions(),
|
|
191
|
+
): AbstractAttributeProviderOptions {
|
|
192
|
+
const config = super.toJSON(
|
|
193
|
+
defaultOptions,
|
|
194
|
+
) as AbstractAttributeProviderOptions;
|
|
195
|
+
|
|
196
|
+
if (this.keyProperty !== defaultOptions.keyProperty) {
|
|
197
|
+
config.keyProperty = this.keyProperty;
|
|
198
|
+
}
|
|
199
|
+
return config;
|
|
200
|
+
}
|
|
201
|
+
}
|