@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.
Files changed (82) hide show
  1. package/README.md +24 -23
  2. package/build/postinstall.js +16 -2
  3. package/dist/index.d.ts +2 -1
  4. package/dist/index.js +2 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/ol.d.ts +10 -1
  7. package/dist/src/featureProvider/abstractFeatureProvider.d.ts +8 -0
  8. package/dist/src/featureProvider/abstractFeatureProvider.js +10 -0
  9. package/dist/src/featureProvider/abstractFeatureProvider.js.map +1 -1
  10. package/dist/src/featureProvider/jsonAttributeProvider.d.ts +2 -1
  11. package/dist/src/featureProvider/jsonAttributeProvider.js +5 -2
  12. package/dist/src/featureProvider/jsonAttributeProvider.js.map +1 -1
  13. package/dist/src/featureProvider/mapboxFeatureProvider.d.ts +18 -0
  14. package/dist/src/featureProvider/mapboxFeatureProvider.js +49 -0
  15. package/dist/src/featureProvider/mapboxFeatureProvider.js.map +1 -0
  16. package/dist/src/featureProvider/wmsFeatureProvider.d.ts +11 -0
  17. package/dist/src/featureProvider/wmsFeatureProvider.js +19 -8
  18. package/dist/src/featureProvider/wmsFeatureProvider.js.map +1 -1
  19. package/dist/src/interaction/eventHandler.js +3 -1
  20. package/dist/src/interaction/eventHandler.js.map +1 -1
  21. package/dist/src/interaction/featureAtPixelInteraction.js +5 -0
  22. package/dist/src/interaction/featureAtPixelInteraction.js.map +1 -1
  23. package/dist/src/interaction/featureProviderInteraction.d.ts +10 -1
  24. package/dist/src/interaction/featureProviderInteraction.js +19 -3
  25. package/dist/src/interaction/featureProviderInteraction.js.map +1 -1
  26. package/dist/src/layer/cesium/mapboxStyleCesiumImpl.d.ts +25 -0
  27. package/dist/src/layer/cesium/mapboxStyleCesiumImpl.js +58 -0
  28. package/dist/src/layer/cesium/mapboxStyleCesiumImpl.js.map +1 -0
  29. package/dist/src/layer/cesium/mapboxStyleImageryProvider.d.ts +26 -0
  30. package/dist/src/layer/cesium/mapboxStyleImageryProvider.js +147 -0
  31. package/dist/src/layer/cesium/mapboxStyleImageryProvider.js.map +1 -0
  32. package/dist/src/layer/cesium/vectorTileImageryProvider.d.ts +1 -1
  33. package/dist/src/layer/cesium/vectorTileImageryProvider.js.map +1 -1
  34. package/dist/src/layer/i3sLayer.d.ts +2 -10
  35. package/dist/src/layer/i3sLayer.js +9 -8
  36. package/dist/src/layer/i3sLayer.js.map +1 -1
  37. package/dist/src/layer/mapboxStyleLayer.d.ts +55 -0
  38. package/dist/src/layer/mapboxStyleLayer.js +176 -0
  39. package/dist/src/layer/mapboxStyleLayer.js.map +1 -0
  40. package/dist/src/layer/openlayers/layerOpenlayersImpl.d.ts +3 -4
  41. package/dist/src/layer/openlayers/layerOpenlayersImpl.js +11 -3
  42. package/dist/src/layer/openlayers/layerOpenlayersImpl.js.map +1 -1
  43. package/dist/src/layer/openlayers/mapboxStyleOpenlayersImpl.d.ts +15 -0
  44. package/dist/src/layer/openlayers/mapboxStyleOpenlayersImpl.js +49 -0
  45. package/dist/src/layer/openlayers/mapboxStyleOpenlayersImpl.js.map +1 -0
  46. package/dist/src/map/baseCesiumMap.d.ts +17 -0
  47. package/dist/src/map/baseCesiumMap.js +36 -0
  48. package/dist/src/map/baseCesiumMap.js.map +1 -1
  49. package/dist/src/map/baseOLMap.d.ts +6 -4
  50. package/dist/src/map/baseOLMap.js +3 -2
  51. package/dist/src/map/baseOLMap.js.map +1 -1
  52. package/dist/src/map/cesiumMap.d.ts +3 -3
  53. package/dist/src/map/cesiumMap.js +2 -3
  54. package/dist/src/map/cesiumMap.js.map +1 -1
  55. package/dist/src/map/panoramaMap.d.ts +2 -2
  56. package/dist/src/map/panoramaMap.js +1 -2
  57. package/dist/src/map/panoramaMap.js.map +1 -1
  58. package/dist/src/map/vcsMap.d.ts +3 -3
  59. package/dist/src/map/vcsMap.js +11 -3
  60. package/dist/src/map/vcsMap.js.map +1 -1
  61. package/index.ts +2 -0
  62. package/package.json +4 -3
  63. package/src/featureProvider/abstractFeatureProvider.ts +12 -0
  64. package/src/featureProvider/jsonAttributeProvider.ts +10 -2
  65. package/src/featureProvider/mapboxFeatureProvider.ts +74 -0
  66. package/src/featureProvider/wmsFeatureProvider.ts +29 -8
  67. package/src/interaction/eventHandler.ts +3 -1
  68. package/src/interaction/featureAtPixelInteraction.ts +5 -0
  69. package/src/interaction/featureProviderInteraction.ts +37 -8
  70. package/src/layer/cesium/mapboxStyleCesiumImpl.ts +95 -0
  71. package/src/layer/cesium/mapboxStyleImageryProvider.ts +214 -0
  72. package/src/layer/cesium/vectorTileImageryProvider.ts +2 -1
  73. package/src/layer/i3sLayer.ts +12 -14
  74. package/src/layer/mapboxStyleLayer.ts +244 -0
  75. package/src/layer/openlayers/layerOpenlayersImpl.ts +21 -10
  76. package/src/layer/openlayers/mapboxStyleOpenlayersImpl.ts +68 -0
  77. package/src/map/baseCesiumMap.ts +57 -0
  78. package/src/map/baseOLMap.ts +16 -14
  79. package/src/map/cesiumMap.ts +7 -6
  80. package/src/map/panoramaMap.ts +3 -3
  81. package/src/map/vcsMap.ts +16 -10
  82. 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
- ...(options.lightColor && {
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
- config.lightColor = {
200
- x: tilesetOptions.lightColor.x,
201
- y: tilesetOptions.lightColor.y,
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,CAAkD;IAC5D,YAAY,CAAqB;IACjC,gBAAgB,CAAS;IACzB,sBAAsB,CAAS;IAC/B,cAAc,GAA2B,IAAI,CAAC;IAC9C,aAAa,CAAU;IACb,cAAc,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAChE,kBAAkB,CAAqB;IAE/C,YAAY,OAAmB;QAC7B,MAAM,cAAc,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QACpD,KAAK,CAAC,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QAEzC,IAAI,CAAC,uBAAuB,GAAG,YAAY,CACzC,OAAO,CAAC,uBAAuB,IAAI,cAAc,CAAC,uBAAuB,CAC1E,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,YAAY,CAChC,OAAO,CAAC,cAAc,IAAI,cAAc,CAAC,cAAc,CACxD,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAClC,OAAO,CAAC,gBAAgB,IAAI,cAAc,CAAC,gBAAgB,CAC5D,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,YAAY,CAC9B,OAAO,CAAC,YAAY,IAAI,cAAc,CAAC,YAAY,CACpD,CAAC;QAEF,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAClC,OAAO,CAAC,gBAAgB,EACxB,cAAc,CAAC,gBAAgB,CAChC,CAAC;QAEF,IAAI,CAAC,sBAAsB,GAAG,YAAY,CACxC,OAAO,CAAC,sBAAsB,EAC9B,cAAc,CAAC,sBAAsB,CACtC,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG,YAAY,CAC/B,OAAO,CAAC,aAAa,IAAI,cAAc,CAAC,aAAa,CACtD,CAAC;QAEF,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,IAAI,CAAC,cAAc;gBACjB,OAAO,CAAC,cAAc,YAAY,eAAe;oBAC/C,CAAC,CAAC,OAAO,CAAC,cAAc;oBACxB,CAAC,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,sBAAsB,GAC1B,OAAO,CAAC,sBAAsB,IAAI,cAAc,CAAC,sBAAsB,CAAC;QAE1E,IAAI,CAAC,sBAAsB,GAAG;YAC5B,uBAAuB,EAAE,QAAQ,EAAE;gBACjC,CAAC,CAAC,IAAI,CAAC,sBAAsB;gBAC7B,CAAC,CAAC,IAAI,CAAC,gBAAgB;YACzB,GAAG,sBAAsB;YACzB,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI;gBACxB,UAAU,EAAE,IAAI,UAAU,CACxB,OAAO,CAAC,UAAU,CAAC,CAAC,EACpB,OAAO,CAAC,UAAU,CAAC,CAAC,EACpB,OAAO,CAAC,UAAU,CAAC,CAAC,CACrB;aACF,CAAC;YACF,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI;gBAC1B,YAAY,EAAE,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC;aAC7D,CAAC;SACH,CAAC;QAEF,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC1E,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IACE,EAAE,CACA,iBAAiB,EACjB,KAAK,CAAC,wBAAwB,EAAE,yBAAyB,CAAC,CAC3D,EACD,CAAC;gBACD,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,kBAAkB,GAAG,IAAI,oBAAoB,CAAC,EAAE,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7B,IAAI,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,uBAAuB,CAAC,EAAE,CAAC;gBACtD,IAAI,CAAC,iBAAiB,GAAG,IAAI,wBAAwB,CAAC;oBACpD,gBAAgB,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC;oBACxC,kBAAkB,EAAE,CAAC,IAAI,oBAAoB,CAAC,EAAE,CAAC,CAAC;iBACnD,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,eAAe,GAAG,IAAI,oBAAoB,CAAC,EAAE,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,IAAI,iBAAiB,CAAC,QAAuC;QAC3D,KAAK,CACH,QAAQ,EACR,KAAK,CAAC,KAAK,CAAC,yBAAyB,EAAE,wBAAwB,CAAC,CAAC,CAClE,CAAC;QAEF,IAAI,IAAI,CAAC,kBAAkB,KAAK,QAAQ,EAAE,CAAC;YACzC,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;YACnC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;gBACtC,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CACpB,0DAA0D,MAAM,CAAC,CAAC,CAAC,EAAE,CACtE,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,wBAAwB;QACtB,OAAO;YACL,GAAG,KAAK,CAAC,wBAAwB,EAAE;YACnC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;YACrD,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,iBAAiB,EAAE,IAAI,CAAC,kBAAkB;SAC3C,CAAC;IACJ,CAAC;IAED,2BAA2B,CAAC,GAAW;QACrC,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,eAAe;QACb,MAAM,UAAU,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;QAC3C,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;gBACxB,UAAU,EAAE,kBAAkB,CAAC,MAAM,EAAE;gBACvC,WAAW;aACZ,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;gBACrB,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,0BAA0B,CAAC,KAAa;QACtC,IAAI,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;oBACvC,IAAI,OAAO,EAAE,CAAC;wBACZ,OAAO,CAAC,uBAAuB,GAAG,KAAK,CAAC;oBAC1C,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,cAAc,GAAG,QAAQ,CAAC,iBAAiB,EAAE;QAClD,MAAM,MAAM,GAAe,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACxD,IACE,IAAI,CAAC,uBAAuB,KAAK,cAAc,CAAC,uBAAuB,EACvE,CAAC;YACD,MAAM,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC;QAChE,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,KAAK,cAAc,CAAC,cAAc,EAAE,CAAC;YAC1D,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC9C,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,KAAK,cAAc,CAAC,gBAAgB,EAAE,CAAC;YAC9D,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAClD,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,KAAK,cAAc,CAAC,YAAY,EAAE,CAAC;YACtD,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC1C,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,KAAK,cAAc,CAAC,gBAAgB,EAAE,CAAC;YAC9D,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAClD,CAAC;QACD,IAAI,IAAI,CAAC,sBAAsB,KAAK,cAAc,CAAC,sBAAsB,EAAE,CAAC;YAC1E,MAAM,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAC9D,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,KAAK,cAAc,CAAC,aAAa,EAAE,CAAC;YACxD,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QAC5C,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QACvD,CAAC;QAED,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC1D,IAAI,cAAc,CAAC,YAAY,EAAE,CAAC;YAChC,MAAM,CAAC,YAAY,GAAG,cAAc,CAClC,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAChD,CAAC;QACJ,CAAC;QACD,OAAO,cAAc,CAAC,YAAY,CAAC;QAEnC,IAAI,cAAc,CAAC,UAAU,EAAE,CAAC;YAC9B,MAAM,CAAC,UAAU,GAAG;gBAClB,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;gBAC9B,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;gBAC9B,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;aAC/B,CAAC;QACJ,CAAC;QACD,OAAO,cAAc,CAAC,UAAU,CAAC;QAEjC,MAAM,oBAAoB,GAAG,QAAQ,EAAE;YACrC,CAAC,CAAC,IAAI,CAAC,sBAAsB;YAC7B,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAC1B,IAAI,cAAc,CAAC,uBAAuB,KAAK,oBAAoB,EAAE,CAAC;YACpE,OAAO,cAAc,CAAC,uBAAuB,CAAC;QAChD,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,CAAC,sBAAsB,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;QAClE,CAAC;QAED,IACE,IAAI,CAAC,kBAAkB;YACvB,CAAC,CAAC,IAAI,CAAC,kBAAkB,YAAY,oBAAoB,CAAC;YAC1D,CAAC,CAAC,IAAI,CAAC,kBAAkB,YAAY,uBAAuB,CAAC,EAC7D,CAAC;YACD,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;YAC5D,IAAI,IAAI,CAAC,kBAAkB,YAAY,wBAAwB,EAAE,CAAC;gBAChE,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,GAC5C,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;gBACnC,MAAM,CAAC,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,YAAY,oBAAoB,CAAC,EAAE,CAAC;oBAC7D,MAAM,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;YAC9D,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,CAAC;QAClC,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;CACF;AAED,kBAAkB,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC/D,eAAe,QAAQ,CAAC"}
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":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,yBAAyB,MAAM,iDAAiD,CAAC;AACxF,OAAO,wBAAwB,MAAM,gDAAgD,CAAC;AACtF,OAAO,qBAAqB,MAAM,6CAA6C,CAAC;AAEhF,OAAO,aAAa,MAAM,yBAAyB,CAAC;AACpD,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAC5C,OAAO,UAAU,MAAM,sBAAsB,CAAC;AAC9C,OAAO,aAAa,MAAM,yBAAyB,CAAC;AACpD,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,gCAEN,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B,OAAO,8BAA8B,MAAM,2CAA2C,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAmB/D;;;GAGG;AACH,MAAM,gBACJ,SAAQ,KAA+B;IAGvC,MAAM,KAAK,SAAS;QAClB,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,iBAAiB;QACtB,OAAO;YACL,GAAG,KAAK,CAAC,iBAAiB,EAAE;YAC5B,iBAAiB,EAAE,SAAS;YAC5B,iBAAiB,EAAE,SAAS;SAC7B,CAAC;IACJ,CAAC;IAES,cAAc,GAAG;QACzB,SAAS,CAAC,SAAS;QACnB,UAAU,CAAC,SAAS;QACpB,aAAa,CAAC,SAAS;QACvB,WAAW,CAAC,SAAS;KACtB,CAAC;IACM,iBAAiB,CAAa;IAC9B,QAAQ,CAAY;IACpB,wBAAwB,CAAY;IACpC,eAAe,GAAmB,cAAc,CAAC,IAAI,CAAC;IAC9D,qBAAqB,GAAG,IAAI,QAAQ,EAAkB,CAAC;IACvD;;;OAGG;IACH,iBAAiB,CAAqB;IACtC;;;OAGG;IACH,iBAAiB,CAAqB;IAEtC,YAAY,OAA2B;QACrC,MAAM,cAAc,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QAC5D,KAAK,CAAC,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QAEzC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC;QAChE,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,IAAI,CAAC,eAAe;gBAClB,OAAO,CAAC,cAAc,KAAK,MAAM;oBAC/B,CAAC,CAAC,cAAc,CAAC,IAAI;oBACrB,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,iBAAiB,GAAG,YAAY,CACnC,OAAO,CAAC,iBAAiB,EACzB,cAAc,CAAC,iBAAiB,CACjC,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,YAAY,CACnC,OAAO,CAAC,iBAAiB,EACzB,cAAc,CAAC,iBAAiB,CACjC,CAAC;QAEF,IAAI,CAAC,iBAAiB,GAAG,IAAI,UAAU,CAAC;YACtC,OAAO,EAAE,IAAI,CAAC,iBAAiB;YAC/B,OAAO,EAAE,IAAI,CAAC,iBAAiB;SAChC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAE9C,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;YACvD,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACvB,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAChC,KAAK,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC;YAC3C,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,MAAM,kBAAkB,GAAG,IAAI,UAAU,EAAa,CAAC;gBACvD,MAAM;qBACH,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAChB,IAAI,CAAC,QAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAW,CAAC,CAC9D;qBACA,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBACjB,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjC,CAAC,CAAC,CAAC;gBAEL,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,qBAAqB,CAAC;gBAC/C,sBAAsB,EAAE,IAAI,CAAC,iBAAiB;gBAC9C,uBAAuB,EAAE,IAAI,CAAC,wBAAwB;aACvD,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,yBAAyB,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC,eAAe,GAAG,IAAI,wBAAwB,CAAC;gBAClD,kBAAkB,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC;gBAC1C,gBAAgB,EAAE;oBAChB,IAAI,qBAAqB,CAAC;wBACxB,sBAAsB,EAAE,IAAI,CAAC,iBAAiB;wBAC9C,uBAAuB,EAAE,IAAI,CAAC,wBAAwB;qBACvD,CAAC;iBACH;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,IAAI,cAAc,CAAC,SAAyB;QAC1C,IAAI,SAAS,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;YACjC,IAAI,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACzC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,wBAAwB;QACtB,OAAO;YACL,GAAG,KAAK,CAAC,wBAAwB,EAAE;YACnC,sBAAsB,EAAE,IAAI,CAAC,iBAAiB;YAC9C,cAAc,EAAE,IAAI,CAAC,eAAe;YACpC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC1C,CAAC;IACJ,CAAC;IAED,2BAA2B,CAAC,GAAW;QACrC,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;YACjC,OAAO;gBACL,IAAI,gCAAgC,CAClC,GAAG,EACH,IAAI,CAAC,wBAAwB,EAAE,CAChC;aACF,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;YACjC,OAAO;gBACL,IAAI,8BAA8B,CAChC,GAAG,EACH,IAAI,CAAC,wBAAwB,EAAE,CAChC;aACF,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CACJ,cAAc,GAAG,gBAAgB,CAAC,iBAAiB,EAAE;QAErD,MAAM,MAAM,GAAuB,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QAEzD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACzC,CAAC;QAED,IACE,IAAI,CAAC,wBAAwB;YAC7B,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC,EACxC,CAAC;YACD,MAAM,CAAC,uBAAuB,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;QACzE,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,KAAK,cAAc,CAAC,IAAI,EAAE,CAAC;YACjD,MAAM,CAAC,cAAc;gBACnB,IAAI,CAAC,eAAe,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QACpE,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB,KAAK,cAAc,CAAC,iBAAiB,EAAE,CAAC;YAChE,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACpD,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB,KAAK,cAAc,CAAC,iBAAiB,EAAE,CAAC;YAChE,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACpD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,CAAC;QACrC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;QAChC,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;CACF;AAED,kBAAkB,CAAC,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;AAC/E,eAAe,gBAAgB,CAAC"}
@@ -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: OLLayer | null;
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(): OLLayer;
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
- this._splitDirectionRenderListeners.push(this.olLayer.on('prerender', this._splitPreRender.bind(this)));
62
- this._splitDirectionRenderListeners.push(this.olLayer.on('postrender', this._splitPostReder.bind(this)));
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":"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"}
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();