@vcmap/ui 5.0.0-rc.14 → 5.0.0-rc.15

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 (105) hide show
  1. package/README.md +33 -31
  2. package/build/build.js +9 -0
  3. package/build/buildHelpers.js +12 -10
  4. package/build/commonViteConfig.js +3 -10
  5. package/config/base.config.json +26 -24
  6. package/config/dev.config.json +8 -0
  7. package/config/www.config.json +102 -17
  8. package/dist/assets/cesium.2e288a.js +137226 -0
  9. package/dist/assets/cesium.js +1 -1
  10. package/dist/assets/core.8014d3.js +14473 -0
  11. package/dist/assets/core.js +1 -1
  12. package/dist/assets/index.3f74fa92.js +1 -0
  13. package/dist/assets/ol.31c3a5.js +44279 -0
  14. package/dist/assets/ol.js +1 -1
  15. package/dist/assets/ui.36f84f.css +1 -0
  16. package/dist/assets/ui.36f84f.js +16101 -0
  17. package/dist/assets/ui.js +1 -1
  18. package/dist/assets/vue.a39c10.js +4675 -0
  19. package/dist/assets/vue.js +5 -2
  20. package/dist/assets/{vuetify.202322.css → vuetify.378637.css} +1 -1
  21. package/dist/assets/vuetify.378637.js +21019 -0
  22. package/dist/assets/vuetify.js +5 -2
  23. package/dist/index.html +1 -1
  24. package/index.js +4 -1
  25. package/package.json +10 -10
  26. package/plugins/@vcmap/pluginExample/index.js +14 -0
  27. package/plugins/@vcmap/pluginExample/pluginExampleComponent.vue +93 -67
  28. package/plugins/@vcmap/project-selector/ContextsListComponent.vue +8 -1
  29. package/plugins/@vcmap/project-selector/ProjectSelectorComponent.vue +27 -1
  30. package/plugins/@vcmap/search-nominatim/LICENSE.md +14 -0
  31. package/plugins/@vcmap/search-nominatim/README.md +2 -0
  32. package/plugins/@vcmap/search-nominatim/config.json +4 -0
  33. package/plugins/@vcmap/search-nominatim/index.js +26 -0
  34. package/plugins/@vcmap/search-nominatim/nominatim.js +170 -0
  35. package/plugins/@vcmap/search-nominatim/package.json +43 -0
  36. package/plugins/@vcmap/theme-changer/ThemeChangerComponent.vue +24 -0
  37. package/plugins/buttonExamples/ButtonExamples.vue +28 -1
  38. package/plugins/categoryTest/Categories.vue +16 -0
  39. package/plugins/categoryTest/Category.vue +30 -4
  40. package/plugins/example/mySuperComponent.vue +12 -1
  41. package/plugins/package.json +2 -1
  42. package/plugins/simple-graph/SimpleGraphComponent.vue +5 -11
  43. package/plugins/test/allIconsComponent.vue +16 -0
  44. package/plugins/test/editor.vue +3 -0
  45. package/plugins/test/emptyComponent.vue +3 -0
  46. package/plugins/test/vcsContent.vue +3 -0
  47. package/src/actions/actionHelper.js +103 -2
  48. package/src/actions/styleSelector.vue +9 -0
  49. package/src/application/VcsApp.vue +77 -9
  50. package/src/application/VcsAttributions.vue +63 -0
  51. package/src/application/VcsAttributionsFooter.vue +87 -0
  52. package/src/application/{Navbar.vue → VcsNavbar.vue} +35 -2
  53. package/src/application/VcsSettings.vue +4 -0
  54. package/src/application/attributionsHelper.js +150 -0
  55. package/src/application/vcsAppWrapper.vue +5 -1
  56. package/src/components/buttons/VcsActionButtonList.vue +8 -1
  57. package/src/components/buttons/VcsButton.vue +7 -1
  58. package/src/components/form-inputs-controls/VcsCheckbox.vue +7 -2
  59. package/src/components/form-inputs-controls/VcsColorPicker.vue +4 -0
  60. package/src/components/form-inputs-controls/VcsFormSection.vue +48 -2
  61. package/src/components/form-inputs-controls/VcsRadio.vue +7 -1
  62. package/src/components/form-inputs-controls/VcsSelect.vue +5 -1
  63. package/src/components/form-inputs-controls/VcsTextArea.vue +2 -0
  64. package/src/components/form-inputs-controls/VcsTextField.vue +6 -2
  65. package/src/components/lists/VcsActionList.vue +12 -1
  66. package/src/components/lists/VcsTreeview.vue +6 -1
  67. package/src/components/lists/VcsTreeviewLeaf.vue +5 -1
  68. package/src/components/lists/VcsTreeviewSearchbar.vue +5 -0
  69. package/src/components/notification/VcsTooltip.vue +14 -9
  70. package/src/components/tables/VcsTable.vue +117 -38
  71. package/src/featureInfo/AddressBalloonComponent.vue +17 -1
  72. package/src/featureInfo/BalloonComponent.vue +57 -23
  73. package/src/featureInfo/balloonFeatureInfoView.js +2 -2
  74. package/src/featureInfo/featureInfo.js +10 -2
  75. package/src/i18n/de.js +15 -0
  76. package/src/i18n/en.js +15 -0
  77. package/src/legend/legendHelper.js +18 -12
  78. package/src/legend/styleLegendItem.vue +20 -1
  79. package/src/legend/vcsLegend.vue +29 -3
  80. package/src/manager/toolbox/GroupToolboxComponent.vue +13 -1
  81. package/src/manager/toolbox/SelectToolboxComponent.vue +13 -1
  82. package/src/manager/toolbox/ToolboxManager.vue +3 -0
  83. package/src/manager/window/WindowComponent.vue +6 -0
  84. package/src/manager/window/WindowComponentHeader.vue +6 -1
  85. package/src/navigation/mapNavigation.vue +15 -36
  86. package/src/navigation/orientationToolsButton.vue +6 -1
  87. package/src/navigation/overviewMap.js +10 -39
  88. package/src/navigation/tiltSlider.vue +3 -0
  89. package/src/navigation/vcsCompass.vue +2 -0
  90. package/src/search/resultItem.vue +89 -0
  91. package/src/search/resultsComponent.vue +98 -0
  92. package/src/search/search.js +326 -0
  93. package/src/search/searchComponent.vue +90 -0
  94. package/src/styles/_typography.scss +3 -0
  95. package/src/styles/utils/_cursor.scss +4 -0
  96. package/src/styles/variables.scss +4 -1
  97. package/src/vcsUiApp.js +16 -0
  98. package/dist/assets/cesium.9489f8.js +0 -8699
  99. package/dist/assets/core.aa346a.js +0 -4
  100. package/dist/assets/index.3cd4fffa.js +0 -1
  101. package/dist/assets/ol.39651b.js +0 -439
  102. package/dist/assets/ui.15ef6a.css +0 -1
  103. package/dist/assets/ui.15ef6a.js +0 -71
  104. package/dist/assets/vue.cbe9d8.js +0 -9
  105. package/dist/assets/vuetify.202322.js +0 -148
package/README.md CHANGED
@@ -83,7 +83,7 @@ how safe it is to start developing with these components.
83
83
  - oblique RC
84
84
  - FeatureProvider BETA
85
85
  - ClassRegistry BETA
86
- - Editor TODO
86
+ - Editor BETA
87
87
 
88
88
  ### @vcmap/ui
89
89
  - contentTree API BETA [CONTENT_TREE](documentation/CONTENT_TREE.md) // TODO doc
@@ -92,12 +92,14 @@ how safe it is to start developing with these components.
92
92
  - OrientationTools BETA
93
93
  - ActionConcept BETA [ACTIONS](documentation/ACTIONS.md)
94
94
  - PluginConcept RC [Plugin API](https://github.com/virtualcitySYSTEMS/map-plugin-cli)
95
- - SEARCH API TODO
95
+ - SEARCH API BETA [SEARCH](documentation/SEARCH.md)
96
96
  - I18n API RC [INTERNATIONALIZATION](documentation/INTERNATIONALIZATION.md).
97
97
  - Components API RC [CATEGORIES](documentation/CATEGORIES.md).
98
98
  - Context Menu API RC [CONTEXT_MENU](documentation/CONTEXT_MENU.md)
99
99
  - FeatureInfo RC [FEATURE_INFO](documentation/FEATURE_INFO.md)
100
100
  - [State & Application Link](documentation/STATE.md) RC
101
+ - [Help Concept](documentation/HELP.md) RC
102
+ - Copyright RC [ATTRIBUTIONS](documentation/ATTRIBUTIONS.md)
101
103
 
102
104
  ##### components
103
105
  - VcsTextField BETA
@@ -133,46 +135,46 @@ how safe it is to start developing with these components.
133
135
  ### Ui
134
136
  - Responsive View / mobile view DONE
135
137
  - Toolbar DONE
136
- - Search API + UI Prio 2
138
+ - Search API + UI DONE
137
139
  - Overlay API Support Prio 3
138
140
  - i18n DONE.
139
141
  - FeatureInfo Concept/API (Balloon) DONE
140
142
  - Context API DONE
141
143
  - Hierachy B3dm
142
144
  - Legend Concept/API DONE
143
- - Copyright/Attributions Concept / API Prio 2
145
+ - Copyright/Attributions Concept / API DONE
144
146
  - Ui Configuration (title/themes, usw, projectInfo/Impressum/usw. ) / API DONE
145
- - Help Concept / Beispielhaft implementieren Prio 2
147
+ - Help Concept / Beispielhaft implementieren DONE
146
148
  - Components Concept/Categories / API DONE.
147
149
  - Notification Concept Prio 2
148
150
 
149
151
  ### Plugins
150
- | Plugin | Dev Prio | Proj Prio
151
- | :----: | :----:| :----: |
152
- |Drawing (WIP)| 1 | 1|
153
- |Measurement| 1| 1|
154
- |PDF Export (WIP)| 1| 1|
155
- |Search Nominatim| 2| 1|
156
- |SwipeTool| 2| 1|
157
- |Shadow | 4| 1|
158
- |Planning| 4| 1|
159
- |MultiView | 4| 1|
160
- |Create Link DONE| 1|1|
161
- |HeightProfile | 4| 2|
162
- |Flight | 4| 2|
163
- |Export | 4| 2|
164
- |ViewShed | 4| 2|
165
- |TransparentTerrain | 4| 3|
166
- |Walkmode| 4| 3|
167
- |Publisher Integration Plugin| 3| 3|
168
- |ClippingTool | 4| 3|
169
- |AttributeEditor | 4| 3|
170
- |Query | 4| 3|
171
- |Positiondisplay| 2| 4|
172
- |Locator ? | 4| 4|
173
- |DisplayQuality | 4| 4|
174
- |Search esri | 4| 4|
175
- |Search WFS | 4| 4|
152
+ | Plugin | Dev Prio | Proj Prio |
153
+ |:----------------------------:|:--------:|:---------:|
154
+ | Drawing (WIP) | 1 | 1 |
155
+ | Measurement | 1 | 1 |
156
+ | PDF Export (DONE) | 1 | 1 |
157
+ | Search Nominatim (DONE) | 2 | 1 |
158
+ | SwipeTool | 2 | 1 |
159
+ | Shadow | 4 | 1 |
160
+ | Planning | 4 | 1 |
161
+ | MultiView | 4 | 1 |
162
+ | Create Link (DONE) | 1 | 1 |
163
+ | HeightProfile | 4 | 2 |
164
+ | Flight | 4 | 2 |
165
+ | Export | 4 | 2 |
166
+ | ViewShed | 4 | 2 |
167
+ | TransparentTerrain | 4 | 3 |
168
+ | Walkmode | 4 | 3 |
169
+ | Publisher Integration Plugin | 3 | 3 |
170
+ | ClippingTool | 4 | 3 |
171
+ | AttributeEditor | 4 | 3 |
172
+ | Query | 4 | 3 |
173
+ | Positiondisplay | 2 | 4 |
174
+ | Locator ? | 4 | 4 |
175
+ | DisplayQuality | 4 | 4 |
176
+ | Search esri | 4 | 4 |
177
+ | Search WFS | 4 | 4 |
176
178
 
177
179
 
178
180
  # Getting started
package/build/build.js CHANGED
@@ -92,6 +92,9 @@ console.log('Building app');
92
92
  await build({
93
93
  configFile: './build/commonViteConfig.js',
94
94
  base: './',
95
+ define: {
96
+ 'process.env.NODE_ENV': '"production"',
97
+ },
95
98
  build: {
96
99
  minify: true,
97
100
  emptyOutDir: true,
@@ -117,6 +120,9 @@ await Promise.all(Object.entries(libraryBuildOptions).map(async ([key, value]) =
117
120
  esbuild: {
118
121
  minify: true,
119
122
  },
123
+ define: {
124
+ 'process.env.NODE_ENV': '"production"',
125
+ },
120
126
  build: {
121
127
  write: false,
122
128
  emptyOutDir: false,
@@ -137,6 +143,9 @@ await Promise.all(Object.entries(libraryBuildOptions).map(async ([key, value]) =
137
143
 
138
144
  const libraryEntryConfig = {
139
145
  configFile: false,
146
+ define: {
147
+ 'process.env.NODE_ENV': '"production"',
148
+ },
140
149
  build: {
141
150
  emptyOutDir: false,
142
151
  lib: {
@@ -189,32 +189,34 @@ export async function buildPluginsForPreview(baseConfig = {}, minify = true) {
189
189
  },
190
190
  },
191
191
  };
192
- await fs.promises.mkdir(path.join(process.cwd(), 'dist', 'plugins', plugin), { recursive: true });
192
+ const distPath = path.join(process.cwd(), 'dist', 'plugins', plugin);
193
+ if (!fs.existsSync(distPath)) {
194
+ await fs.promises.mkdir(distPath, { recursive: true });
195
+ }
193
196
  await buildLibrary(pluginConfig, `plugins/${plugin}`, 'index', '', true);
194
197
  });
195
198
 
196
- promises.push(...dependentPlugins.flatMap((pluginName) => {
199
+ promises.push(...dependentPlugins.map(async (pluginName) => {
197
200
  let scope = '';
198
201
  let name = pluginName;
199
202
  if (pluginName.startsWith('@')) {
200
203
  [scope, name] = pluginName.split('/');
201
204
  }
202
205
 
203
- const copyPromises = [fs.promises.cp(
206
+ await fs.promises.cp(
204
207
  path.join(pluginsDirectory, 'node_modules', scope, name, 'dist'),
205
208
  path.join(process.cwd(), 'dist', 'plugins', scope, name),
206
- { recursive: true },
207
- )];
209
+ { recursive: true, force: true },
210
+ );
208
211
 
212
+ // must be copied one after the other to avoid race conditions
209
213
  if (fs.existsSync(path.join(pluginsDirectory, 'node_modules', scope, name, 'plugin-assets'))) {
210
- copyPromises.push(fs.promises.cp(
214
+ await fs.promises.cp(
211
215
  path.join(pluginsDirectory, 'node_modules', scope, name, 'plugin-assets'),
212
216
  path.join(process.cwd(), 'dist', 'plugins', scope, name, 'plugin-assets'),
213
- { recursive: true },
214
- ));
217
+ { recursive: true, force: true },
218
+ );
215
219
  }
216
- return copyPromises;
217
220
  }));
218
-
219
221
  await Promise.all(promises);
220
222
  }
@@ -2,8 +2,6 @@
2
2
  import path from 'path';
3
3
  import { defineConfig } from 'vite';
4
4
  import { createVuePlugin } from 'vite-plugin-vue2';
5
- import Components from 'unplugin-vue-components/vite';
6
- import { VuetifyResolver } from 'unplugin-vue-components/resolvers';
7
5
  import { libraries } from './buildHelpers.js';
8
6
 
9
7
  const configMain = defineConfig({
@@ -15,16 +13,11 @@ const configMain = defineConfig({
15
13
  },
16
14
  dedupe: Object.keys(libraries),
17
15
  },
16
+ define: {
17
+ 'process.env.NODE_ENV': '"development"',
18
+ },
18
19
  plugins: [
19
20
  createVuePlugin(),
20
- Components({
21
- resolvers: [
22
- VuetifyResolver(),
23
- ],
24
- dirs: ['src'],
25
- include: [],
26
- exclude: [],
27
- }),
28
21
  ],
29
22
  css: {
30
23
  preprocessorOptions: {
@@ -683,16 +683,16 @@
683
683
  "tilesetOptions": {
684
684
  "skipLevelOfDetail": true
685
685
  },
686
- "copyright": {
687
- "provider": "Berlin Partner für Wirtschaft und Technologie",
688
- "url": "https://www.berlin-partner.de",
689
- "year": "2020"
690
- },
691
686
  "exclusiveGroups": [
692
687
  "bldg"
693
688
  ],
694
689
  "properties": {
695
- "title": "3D-Mesh 2020"
690
+ "title": "3D-Mesh 2020",
691
+ "attributions": {
692
+ "provider": "Berlin Partner für Wirtschaft und Technologie",
693
+ "url": "https://www.berlin-partner.de",
694
+ "year": "2020"
695
+ }
696
696
  }
697
697
  },
698
698
  {
@@ -779,11 +779,6 @@
779
779
  "tilingSchema": "mercator",
780
780
  "opacity": "1",
781
781
  "hiddenObjectIds": [],
782
- "copyright": {
783
- "provider": "Geoportal Berlin / Luftbild 2015, OpenStreetMap contributors",
784
- "url": "http://www.stadtentwicklung.berlin.de/geoinformation/fis-broker/",
785
- "year": "2018"
786
- },
787
782
  "exclusiveGroups": [
788
783
  "base"
789
784
  ],
@@ -792,7 +787,12 @@
792
787
  "256"
793
788
  ],
794
789
  "properties": {
795
- "title": "Aerial Image (2015)"
790
+ "title": "Aerial Image (2015)",
791
+ "attributions": {
792
+ "provider": "Geoportal Berlin / Luftbild 2015, OpenStreetMap contributors",
793
+ "url": "http://www.stadtentwicklung.berlin.de/geoinformation/fis-broker/",
794
+ "year": "2018"
795
+ }
796
796
  }
797
797
  },
798
798
  {
@@ -821,11 +821,6 @@
821
821
  },
822
822
  "opacity": "1",
823
823
  "hiddenObjectIds": [],
824
- "copyright": {
825
- "provider": "OpenStreetMap contributors",
826
- "url": "http://www.openstreetmap.org/",
827
- "year": "2019"
828
- },
829
824
  "numberOfLevelZeroTilesX": 1,
830
825
  "numberOfLevelZeroTilesY": 1,
831
826
  "exclusiveGroups": [
@@ -833,7 +828,12 @@
833
828
  ],
834
829
  "properties": {
835
830
  "title": "OpenStreetMap",
836
- "showInOverviewMap": true
831
+ "showInOverviewMap": true,
832
+ "attributions": {
833
+ "provider": "OpenStreetMap contributors",
834
+ "url": "http://www.openstreetmap.org/",
835
+ "year": "2019"
836
+ }
837
837
  }
838
838
  },
839
839
  {
@@ -1146,17 +1146,19 @@
1146
1146
  "projection": {
1147
1147
  "epsg": "25833",
1148
1148
  "proj4": "+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs"
1149
- },
1150
- "copyright": {
1151
- "provider": "Berlin Partner / Senat von Berlin",
1152
- "url": "https://www.berlin-partner.de",
1153
- "year": "2020"
1154
1149
  }
1155
1150
  }
1156
1151
  ],
1157
1152
  "maxZoom": 7,
1158
1153
  "minZoom": 3,
1159
- "hideLevels": null
1154
+ "hideLevels": null,
1155
+ "properties:": {
1156
+ "attributions": {
1157
+ "provider": "Berlin Partner / Senat von Berlin",
1158
+ "url": "https://www.berlin-partner.de",
1159
+ "year": "2020"
1160
+ }
1161
+ }
1160
1162
  }
1161
1163
  ],
1162
1164
  "plugins": [
@@ -399,6 +399,14 @@
399
399
  {
400
400
  "name": "@vcmap/hello-world",
401
401
  "entry": "plugins/@vcmap/hello-world/index.js"
402
+ },
403
+ {
404
+ "name": "@vcmap/print",
405
+ "entry": "plugins/@vcmap/print/index.js"
406
+ },
407
+ {
408
+ "name": "@vcmap/search-nominatim",
409
+ "entry": "plugins/@vcmap/search-nominatim/index.js"
402
410
  }
403
411
  ],
404
412
  "uiConfig": [
@@ -338,7 +338,13 @@
338
338
  "maps": [
339
339
  {
340
340
  "type": "OpenlayersMap",
341
- "name": "ol3"
341
+ "name": "ol3",
342
+ "properties": {
343
+ "attributions": {
344
+ "provider": "Open Layers",
345
+ "url": "https://openlayers.org/"
346
+ }
347
+ }
342
348
  },
343
349
  {
344
350
  "type": "CesiumMap",
@@ -353,12 +359,30 @@
353
359
  "fogDensity": 0.0002,
354
360
  "fogDensityMobile": 0.0004,
355
361
  "fogScreenSpaceError": 2,
356
- "fogScreenSpaceErrorMobile": 4
362
+ "fogScreenSpaceErrorMobile": 4,
363
+ "properties": {
364
+ "attributions": {
365
+ "provider": "Cesium",
366
+ "url": "https://www.cesium.com/"
367
+ }
368
+ }
357
369
  },
358
370
  {
359
371
  "type": "ObliqueMap",
360
372
  "name": "Oblique Map",
361
- "defaultCollectionName": "Schrägluftbilder 2020"
373
+ "defaultCollectionName": "Schrägluftbilder 2020",
374
+ "properties": {
375
+ "attributions": [
376
+ {
377
+ "provider": "Open Layers",
378
+ "url": "https://openlayers.org/"
379
+ },
380
+ {
381
+ "provider": "VCS",
382
+ "url": "https://vc.systems/en/"
383
+ }
384
+ ]
385
+ }
362
386
  }
363
387
  ],
364
388
  "layers": [
@@ -378,7 +402,7 @@
378
402
  {
379
403
  "type": "CesiumTilesetLayer",
380
404
  "name": "Summer Trees",
381
- "url": "https://www.virtualcitymap.de/datasource-data/f764ffb4-723d-429f-b797-5ca4c1061201/tileset.json",
405
+ "url": "https://www.virtualcitymap.de/datasource-data/c8e48290-c1f3-491a-98a6-24ee1e0116d1/tileset.json",
382
406
  "activeOnStartup": false,
383
407
  "screenSpaceError": 16,
384
408
  "screenSpaceErrorMobile": 32,
@@ -391,7 +415,7 @@
391
415
  "type": "TerrainLayer",
392
416
  "name": "GermanyBaseTerrain",
393
417
  "url": "https://www.virtualcitymap.de/datasource-data/globalterrain_5_9",
394
- "activeOnStartup": false,
418
+ "activeOnStartup": true,
395
419
  "requestVertexNormals": true,
396
420
  "exclusiveGroups": [
397
421
  "terrain"
@@ -403,8 +427,8 @@
403
427
  {
404
428
  "type": "CesiumTilesetLayer",
405
429
  "name": "Berlin - LOD2",
406
- "url": "https://www.virtualcitymap.de/datasource-data/72fa3c14-03bc-4c26-a4ac-8c6dec37e65a/tileset.json",
407
- "activeOnStartup": false,
430
+ "url": "https://www.virtualcitymap.de/datasource-data/1da2e8e4-4e3b-4b15-a91b-7bfa967a8c11/tileset.json",
431
+ "activeOnStartup": true,
408
432
  "screenSpaceError": 16,
409
433
  "screenSpaceErrorMobile": 32,
410
434
  "exclusiveGroups": [
@@ -455,7 +479,7 @@
455
479
  {
456
480
  "type": "CesiumTilesetLayer",
457
481
  "name": "Berlin LOD2 - Textured",
458
- "url": "https://www.virtualcitymap.de/datasource-data/698513e2-a34c-4f38-bb93-629ff4c9e0c0",
482
+ "url": "https://www.virtualcitymap.de/datasource-data/2c9e783d-3e17-40f4-b4d5-6cf9591dcb1f/tileset.json",
459
483
  "activeOnStartup": false,
460
484
  "screenSpaceError": 16,
461
485
  "screenSpaceErrorMobile": 32,
@@ -486,7 +510,12 @@
486
510
  },
487
511
  "properties": {
488
512
  "title": "Planwerk Innere Stadt",
489
- "featureInfo": "tableBuildings"
513
+ "featureInfo": "tableBuildings",
514
+ "attributions": {
515
+ "provider": "Senatsverwaltung für Stadtentwicklung, Bauen und Wohnen",
516
+ "url": "https://www.stadtentwicklung.berlin.de/planen/stadtmodelle/de/digitale_innenstadt/3d/index.shtml",
517
+ "year": "2021"
518
+ }
490
519
  }
491
520
  },
492
521
  {
@@ -554,7 +583,7 @@
554
583
  "type": "CesiumTilesetLayer",
555
584
  "name": "Mesh Classification Layer",
556
585
  "url": "https://www.virtualcitymap.de/datasource-data/DEMO-Lindau/berlin_2D/tileset.json",
557
- "activeOnStartup": true,
586
+ "activeOnStartup": false,
558
587
  "screenSpaceError": 16,
559
588
  "screenSpaceErrorMobile": 32,
560
589
  "style": "dummyClassificationStyle",
@@ -617,7 +646,12 @@
617
646
  "numberOfLevelZeroTilesY": 1,
618
647
  "properties": {
619
648
  "title": "Openstreetmap",
620
- "showInOverviewMap": true
649
+ "showInOverviewMap": true,
650
+ "attributions": {
651
+ "provider": "OpenStreetMap contributors",
652
+ "url": "https://www.openstreetmap.org/",
653
+ "year": "2018"
654
+ }
621
655
  }
622
656
  },
623
657
  {
@@ -646,14 +680,19 @@
646
680
  "tilingSchema": "mercator",
647
681
  "opacity": 0.9,
648
682
  "properties": {
649
- "title": "True Orthophoto 2020"
683
+ "title": "True Orthophoto 2020",
684
+ "attributions": {
685
+ "provider": "Berlin Partner für Wirtschaft und Technologie",
686
+ "url": "https://www.berlin-partner.de",
687
+ "year": "2020"
688
+ }
650
689
  }
651
690
  },
652
691
  {
653
692
  "type": "CesiumTilesetLayer",
654
693
  "name": "mesh_surface",
655
694
  "url": "https://a.3d.blc.shc.eu/WAB/base_layer/cesium_mesh_2020/",
656
- "activeOnStartup": true,
695
+ "activeOnStartup": false,
657
696
  "allowPicking": false,
658
697
  "screenSpaceError": 16,
659
698
  "screenSpaceErrorMobile": 32,
@@ -665,7 +704,12 @@
665
704
  "terrain"
666
705
  ],
667
706
  "properties": {
668
- "title": "3D-Mesh 2020"
707
+ "title": "3D-Mesh 2020",
708
+ "attributions": {
709
+ "provider": "Berlin Partner für Wirtschaft und Technologie",
710
+ "url": "https://www.berlin-partner.de",
711
+ "year": "2020"
712
+ }
669
713
  }
670
714
  },
671
715
  {
@@ -724,7 +768,13 @@
724
768
  "properties": {
725
769
  "title": "Fließgeschwindigkeit, seltenes Ereignis (HQ100)",
726
770
  "defaultViewpoint": "soest",
727
- "featureInfo": "waterspeed"
771
+ "featureInfo": "waterspeed",
772
+ "legend": [{
773
+ "type": "ImageLegendItem",
774
+ "tooltip": "Fließgeschwindigkeit",
775
+ "src": "https://sgx.geodatenzentrum.de/wms_starkregen__sess-1426bd3e-179d-49b1-b0dd-2994524ac2a8?format=image%2Fpng&layer=fliessgeschwindigkeiten_selten&sld_version=1.1.0&request=GetLegendGraphic&service=WMS&version=1.1.1&styles=",
776
+ "popoutBtn": true
777
+ }]
728
778
  }
729
779
  },
730
780
  {
@@ -756,7 +806,13 @@
756
806
  "properties": {
757
807
  "title": "Wasserhöhen, seltenes Ereignis (HQ100)",
758
808
  "defaultViewpoint": "soest",
759
- "featureInfo": "waterheight"
809
+ "featureInfo": "waterheight",
810
+ "legend": [{
811
+ "type": "ImageLegendItem",
812
+ "tooltip": "Fließgeschwindigkeit",
813
+ "src": "https://sgx.geodatenzentrum.de/wms_starkregen__sess-1426bd3e-179d-49b1-b0dd-2994524ac2a8?format=image%2Fpng&layer=wasserhoehen_selten&sld_version=1.1.0&request=GetLegendGraphic&service=WMS&version=1.1.1&styles=",
814
+ "popoutBtn": true
815
+ }]
760
816
  }
761
817
  },
762
818
  {
@@ -853,7 +909,14 @@
853
909
  }
854
910
  ],
855
911
  "maxZoom": 7,
856
- "minZoom": 0
912
+ "minZoom": 0,
913
+ "properties": {
914
+ "attributions": {
915
+ "provider": "Berlin Partner für Wirtschaft und Technologie",
916
+ "url": "https://www.berlin-partner.de",
917
+ "year": "2020"
918
+ }
919
+ }
857
920
  }
858
921
  ],
859
922
  "styles": [
@@ -1228,5 +1291,27 @@
1228
1291
  "name": "thematic.waterareas2",
1229
1292
  "layerName": "festgesetzte Überschwemmungsgebiete"
1230
1293
  }
1294
+ ],
1295
+ "plugins": [
1296
+ {
1297
+ "name": "@vcmap/print",
1298
+ "entry": "plugins/@vcmap/print/index.js",
1299
+ "contactDetails": {
1300
+ "department": "Entwicklung",
1301
+ "name": "Virtual City Systems",
1302
+ "streetAddress": "Tauentzienstr. 7 b/c",
1303
+ "zipAndCity": "10789 Berlin",
1304
+ "country": "Germany",
1305
+ "mail": "info@vc.systems",
1306
+ "phone": "+49 (0) 30 . 8904 . 871 . 0",
1307
+ "fax": "+49 (0) 30 . 8904 . 871 . 0"
1308
+ }
1309
+ }
1310
+ ],
1311
+ "plugins": [
1312
+ {
1313
+ "name": "@vcmap/search-nominatim",
1314
+ "entry": "plugins/@vcmap/search-nominatim/index.js"
1315
+ }
1231
1316
  ]
1232
1317
  }