@vcmap/ui 6.2.3 → 6.3.0-rc.1
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/config/geofence.config.json +19 -0
- package/config/pano.config.json +313 -7
- package/config/projects.config.json +2 -1
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core-f4ee6bea.js → core-b7d98022.js} +10114 -9823
- package/dist/assets/core-workers/panoramaImageWorker.js +1 -1
- package/dist/assets/core.js +1 -1
- package/dist/assets/ol.js +1 -1
- package/dist/assets/{ui-d3a7bd39.css → ui-94adeedc.css} +1 -1
- package/dist/assets/{ui-d3a7bd39.js → ui-94adeedc.js} +2347 -2282
- package/dist/assets/ui.js +1 -1
- package/dist/assets/vue.js +1 -1
- package/dist/assets/{vuetify-8e1623b2.js → vuetify-2f71239e.js} +1 -1
- package/dist/assets/vuetify.js +1 -1
- package/package.json +2 -2
- package/plugins/@vcmap-show-case/extent-example/src/ExtentExample.vue +28 -0
- package/plugins/@vcmap-show-case/extent-example/src/index.js +3 -14
- package/plugins/@vcmap-show-case/panorama-inspector/src/PanoramaDebugTools.vue +28 -3
- package/plugins/@vcmap-show-case/panorama-inspector/src/api.js +8 -23
- package/plugins/@vcmap-show-case/panorama-inspector/src/index.js +1 -1
- package/plugins/package.json +2 -1
- package/src/application/VcsApp.vue +3 -0
- package/src/application/VcsPanoramaFooter.vue +52 -0
- package/src/application/VcsPanoramaFooter.vue.d.ts +2 -0
- package/src/components/extent/VcsExtent.vue +12 -1
- package/src/components/extent/VcsExtent.vue.d.ts +1 -0
- package/src/components/vector-properties/VcsFeatureEditingWindow.vue +15 -5
- package/src/components/vector-properties/VcsFeatureEditingWindow.vue.d.ts +123 -1
- package/src/contentTree/contentTreeItem.js +1 -1
- package/src/contentTree/layerContentTreeItem.d.ts +4 -0
- package/src/contentTree/layerContentTreeItem.js +26 -20
- package/src/contentTree/layerGroupContentTreeItem.d.ts +1 -0
- package/src/contentTree/layerGroupContentTreeItem.js +32 -26
- package/src/contentTree/wmsGroupContentTreeItem.d.ts +1 -0
- package/src/contentTree/wmsGroupContentTreeItem.js +27 -19
- package/src/manager/collectionManager/CollectionManager.vue +14 -1
- /package/dist/assets/{cesium-dcdef786.js → cesium-4fcc8a17.js} +0 -0
- /package/dist/assets/core-workers/{panoramaImageWorker.js-a6bb36f6.js → panoramaImageWorker.js-fc0f2458.js} +0 -0
- /package/dist/assets/{ol-f7a5160f.js → ol-8c487975.js} +0 -0
- /package/dist/assets/{vue-cbd2bd60.js → vue-225a7b37.js} +0 -0
- /package/dist/assets/{vuetify-8e1623b2.css → vuetify-2f71239e.css} +0 -0
package/dist/assets/ui.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "./ui-
|
|
1
|
+
export * from "./ui-94adeedc.js";
|
package/dist/assets/vue.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "./vue-
|
|
1
|
+
export * from "./vue-225a7b37.js";
|
|
@@ -10,7 +10,7 @@ function loadCss(href) {
|
|
|
10
10
|
elem.onerror = reject;
|
|
11
11
|
document.head.appendChild(elem);
|
|
12
12
|
});
|
|
13
|
-
} await loadCss('./assets/vuetify-
|
|
13
|
+
} await loadCss('./assets/vuetify-2f71239e.css');import { watch as Q, onScopeDispose as Ze, effectScope as Zl, shallowRef as K, Fragment as ie, reactive as it, computed as b, watchEffect as Fe, toRefs as Yt, capitalize as Nn, isVNode as Rc, Comment as Nc, unref as ot, warn as ja, getCurrentInstance as Hc, ref as j, provide as De, inject as ye, defineComponent as zc, camelize as Ir, h as Gt, toRaw as Be, createVNode as r, mergeProps as O, onBeforeUnmount as Qe, readonly as Ql, onDeactivated as _r, onActivated as Wc, onMounted as Ye, nextTick as we, TransitionGroup as Jl, Transition as jt, isRef as Tn, toRef as $, onBeforeMount as ra, withDirectives as $e, resolveDirective as gt, vShow as Ct, onUpdated as jc, Text as Uc, resolveDynamicComponent as Yc, markRaw as Gc, Teleport as Kc, cloneVNode as qc, createTextVNode as Tt, onUnmounted as Tr, onBeforeUpdate as Xc, withModifiers as Tl, toDisplayString as Zc, vModelText as Qc, resolveComponent as Jc, render as Ar } from "./vue-225a7b37.js";
|
|
14
14
|
function rt(e, n) {
|
|
15
15
|
let t;
|
|
16
16
|
function a() {
|
package/dist/assets/vuetify.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "./vuetify-
|
|
1
|
+
export * from "./vuetify-2f71239e.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vcmap/ui",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.3.0-rc.1",
|
|
4
4
|
"author": "Virtual City Systems",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"scripts": {
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
},
|
|
59
59
|
"peerDependencies": {
|
|
60
60
|
"@vcmap-cesium/engine": "^11.0.3",
|
|
61
|
-
"@vcmap/core": "^6.
|
|
61
|
+
"@vcmap/core": "^6.3.0-rc.1",
|
|
62
62
|
"ol": "^10.4.0",
|
|
63
63
|
"vue": "~3.4.38",
|
|
64
64
|
"vuetify": "~3.7.14"
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<v-container class="pa-0">
|
|
3
|
+
<VcsExtentEditor heading="Default WGS84 projection" v-model="wgs84Extent" />
|
|
4
|
+
<VcsExtentEditor
|
|
5
|
+
heading="Mercator projection example"
|
|
6
|
+
v-model="mercatorExtent"
|
|
7
|
+
/>
|
|
8
|
+
</v-container>
|
|
9
|
+
</template>
|
|
10
|
+
<script>
|
|
11
|
+
import { VcsExtentEditor } from '@vcmap/ui';
|
|
12
|
+
import { VContainer } from 'vuetify/components';
|
|
13
|
+
import { Extent, mercatorProjection, wgs84Projection } from '@vcmap/core';
|
|
14
|
+
|
|
15
|
+
export default {
|
|
16
|
+
name: 'ExtentExample',
|
|
17
|
+
components: { VcsExtentEditor, VContainer },
|
|
18
|
+
setup() {
|
|
19
|
+
const wgs84Extent = new Extent({ projection: wgs84Projection }).toJSON();
|
|
20
|
+
const mercatorExtent = new Extent({
|
|
21
|
+
projection: mercatorProjection,
|
|
22
|
+
}).toJSON();
|
|
23
|
+
|
|
24
|
+
return { wgs84Extent, mercatorExtent };
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
</script>
|
|
28
|
+
<style lang="scss" scoped></style>
|
|
@@ -1,19 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ButtonLocation,
|
|
3
|
-
createToggleAction,
|
|
4
|
-
WindowSlot,
|
|
5
|
-
VcsExtentEditor,
|
|
6
|
-
} from '@vcmap/ui';
|
|
7
|
-
import { Extent } from '@vcmap/core';
|
|
8
|
-
import { reactive } from 'vue';
|
|
1
|
+
import { ButtonLocation, createToggleAction, WindowSlot } from '@vcmap/ui';
|
|
9
2
|
import packageJSON from '../package.json';
|
|
3
|
+
import ExtentExample from './ExtentExample.vue';
|
|
10
4
|
|
|
11
5
|
/**
|
|
12
6
|
* @returns {VcsPlugin}
|
|
13
7
|
*/
|
|
14
8
|
export default async function extentExample() {
|
|
15
|
-
const modelValue = reactive(new Extent().toJSON());
|
|
16
|
-
|
|
17
9
|
return {
|
|
18
10
|
get name() {
|
|
19
11
|
return packageJSON.name;
|
|
@@ -33,15 +25,12 @@ export default async function extentExample() {
|
|
|
33
25
|
},
|
|
34
26
|
{
|
|
35
27
|
id: 'extent-example',
|
|
36
|
-
component:
|
|
28
|
+
component: ExtentExample,
|
|
37
29
|
slot: WindowSlot.DYNAMIC_LEFT,
|
|
38
30
|
state: {
|
|
39
31
|
headerTitle: 'Extent Example',
|
|
40
32
|
headerIcon: '$vcsBoundingBox',
|
|
41
33
|
},
|
|
42
|
-
props: {
|
|
43
|
-
modelValue,
|
|
44
|
-
},
|
|
45
34
|
},
|
|
46
35
|
app.windowManager,
|
|
47
36
|
packageJSON.name,
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
} from '@vcmap/core';
|
|
18
18
|
import {
|
|
19
19
|
createMapMarkerAction,
|
|
20
|
-
|
|
20
|
+
createGlobeToggleAction,
|
|
21
21
|
setupClickedPrimitive,
|
|
22
22
|
} from './api.js';
|
|
23
23
|
import { name } from '../package.json';
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
}
|
|
52
52
|
});
|
|
53
53
|
|
|
54
|
-
const
|
|
54
|
+
const action = createGlobeToggleAction(app);
|
|
55
55
|
const { action: hideMarker, destroy: destroyMarker } =
|
|
56
56
|
createMapMarkerAction(app);
|
|
57
57
|
|
|
@@ -72,6 +72,16 @@
|
|
|
72
72
|
map.panoramaView.tilePrimitiveCollection.overlayOpacity = newOverlayOpacity;
|
|
73
73
|
});
|
|
74
74
|
|
|
75
|
+
const contrast = ref(map.panoramaView.tilePrimitiveCollection.contrast);
|
|
76
|
+
watch(contrast, (newContrast) => {
|
|
77
|
+
map.panoramaView.tilePrimitiveCollection.contrast = newContrast;
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
const brightness = ref(map.panoramaView.tilePrimitiveCollection.brightness);
|
|
81
|
+
watch(brightness, (newBrightness) => {
|
|
82
|
+
map.panoramaView.tilePrimitiveCollection.brightness = newBrightness;
|
|
83
|
+
});
|
|
84
|
+
|
|
75
85
|
const overlayNaNColor = shallowRef(
|
|
76
86
|
getStringColor(
|
|
77
87
|
cesiumColorToColor(
|
|
@@ -132,7 +142,6 @@
|
|
|
132
142
|
|
|
133
143
|
onUnmounted(() => {
|
|
134
144
|
clickedPrimitive.destroy();
|
|
135
|
-
destroy();
|
|
136
145
|
destroyMarker();
|
|
137
146
|
map.panoramaView.tilePrimitiveCollection.opacity = 1;
|
|
138
147
|
});
|
|
@@ -163,6 +172,22 @@
|
|
|
163
172
|
<VcsCheckbox label="Show Depth" v-model="showDepth"></VcsCheckbox>
|
|
164
173
|
</v-col>
|
|
165
174
|
</v-row>
|
|
175
|
+
<v-row no-gutters>
|
|
176
|
+
<v-col cols="4">
|
|
177
|
+
<vcs-label>Brightness</vcs-label>
|
|
178
|
+
</v-col>
|
|
179
|
+
<v-col>
|
|
180
|
+
<vcs-slider v-model="brightness" :min="-1" :max="1" :step="0.001" />
|
|
181
|
+
</v-col>
|
|
182
|
+
</v-row>
|
|
183
|
+
<v-row no-gutters>
|
|
184
|
+
<v-col cols="4">
|
|
185
|
+
<vcs-label>Contrast</vcs-label>
|
|
186
|
+
</v-col>
|
|
187
|
+
<v-col>
|
|
188
|
+
<vcs-slider v-model="contrast" :min="0" :max="20" :step="0.01" />
|
|
189
|
+
</v-col>
|
|
190
|
+
</v-row>
|
|
166
191
|
<template v-if="showDepth || showIntensity">
|
|
167
192
|
<v-row no-gutters>
|
|
168
193
|
<v-col cols="4">
|
|
@@ -7,9 +7,6 @@ import {
|
|
|
7
7
|
SphereGeometry,
|
|
8
8
|
Color,
|
|
9
9
|
Cartesian3,
|
|
10
|
-
Globe,
|
|
11
|
-
ImageryLayer as CesiumImageryLayer,
|
|
12
|
-
OpenStreetMapImageryProvider,
|
|
13
10
|
} from '@vcmap-cesium/engine';
|
|
14
11
|
import {
|
|
15
12
|
mercatorToCartesian,
|
|
@@ -80,42 +77,30 @@ export function setupClickedPrimitive(map, clickedInteraction) {
|
|
|
80
77
|
|
|
81
78
|
/**
|
|
82
79
|
* @param {import("@vcmap/core").VcsApp} app
|
|
83
|
-
* @returns {
|
|
80
|
+
* @returns {import("@vcmap/ui").Action}
|
|
84
81
|
*/
|
|
85
|
-
export function
|
|
82
|
+
export function createGlobeToggleAction(app) {
|
|
86
83
|
/** @type {import("@vcmap/core").PanoramaMap} */
|
|
87
84
|
const map = app.maps.getByType(PanoramaMap.className)[0];
|
|
85
|
+
const cachedLayerTypes = map.layerTypes.slice();
|
|
88
86
|
|
|
89
87
|
const action = reactive({
|
|
90
|
-
name: '
|
|
88
|
+
name: 'globeToggle',
|
|
91
89
|
icon: 'mdi-earth',
|
|
92
|
-
title: '
|
|
90
|
+
title: 'Toggle additional layers',
|
|
93
91
|
active: false,
|
|
94
92
|
callback() {
|
|
95
93
|
if (action.active) {
|
|
96
|
-
map.
|
|
94
|
+
map.layerTypes = cachedLayerTypes;
|
|
97
95
|
action.active = false;
|
|
98
96
|
} else {
|
|
99
|
-
|
|
100
|
-
scene.globe = new Globe();
|
|
101
|
-
scene.imageryLayers.add(
|
|
102
|
-
new CesiumImageryLayer(
|
|
103
|
-
new OpenStreetMapImageryProvider({ maximumLevel: 18 }),
|
|
104
|
-
),
|
|
105
|
-
);
|
|
97
|
+
map.layerTypes = [];
|
|
106
98
|
action.active = true;
|
|
107
99
|
}
|
|
108
100
|
},
|
|
109
101
|
});
|
|
110
102
|
|
|
111
|
-
return
|
|
112
|
-
action,
|
|
113
|
-
destroy: () => {
|
|
114
|
-
if (map.initialized) {
|
|
115
|
-
map.getCesiumWidget().scene.globe = undefined;
|
|
116
|
-
}
|
|
117
|
-
},
|
|
118
|
-
};
|
|
103
|
+
return action;
|
|
119
104
|
}
|
|
120
105
|
|
|
121
106
|
/**
|
package/plugins/package.json
CHANGED
|
@@ -30,7 +30,8 @@
|
|
|
30
30
|
"@vcmap/sensorthings": "^1.0.0",
|
|
31
31
|
"@vcmap/cesium-inspector": "^2.0.0",
|
|
32
32
|
"@vcmap/event-control": "^1.0.1",
|
|
33
|
-
"@vcmap/dynamic-layer": "^1.0.0"
|
|
33
|
+
"@vcmap/dynamic-layer": "^1.0.0",
|
|
34
|
+
"@vcmap/geofence": "^1.0.2"
|
|
34
35
|
},
|
|
35
36
|
"optionalDependencies": {
|
|
36
37
|
"@vcmap/planning": "^7.0.0"
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
>
|
|
18
18
|
<VcsPositionDisplay />
|
|
19
19
|
<VcsObliqueFooter />
|
|
20
|
+
<vcs-panorama-footer />
|
|
20
21
|
<VcsTextPageFooter
|
|
21
22
|
v-if="imprint"
|
|
22
23
|
:text-page="imprint"
|
|
@@ -89,6 +90,7 @@
|
|
|
89
90
|
import { getAttributions } from './attributionsHelper.js';
|
|
90
91
|
import VcsPositionDisplay from './VcsPositionDisplay.vue';
|
|
91
92
|
import { getDataProtection, getImprint } from './uiConfigHelper.js';
|
|
93
|
+
import VcsPanoramaFooter from './VcsPanoramaFooter.vue';
|
|
92
94
|
|
|
93
95
|
/**
|
|
94
96
|
* This helper checks the uiConfig and depending on the value will setup/teardown the providedSetupFunction
|
|
@@ -775,6 +777,7 @@
|
|
|
775
777
|
*/
|
|
776
778
|
export default {
|
|
777
779
|
components: {
|
|
780
|
+
VcsPanoramaFooter,
|
|
778
781
|
VcsContainer,
|
|
779
782
|
VcsPositionDisplay,
|
|
780
783
|
VcsAttributionsFooter,
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { ref, inject, onUnmounted } from 'vue';
|
|
3
|
+
import { PanoramaMap } from '@vcmap/core';
|
|
4
|
+
|
|
5
|
+
const app = inject('vcsApp');
|
|
6
|
+
const name = ref();
|
|
7
|
+
const time = ref();
|
|
8
|
+
|
|
9
|
+
let imageChangedListener = () => {};
|
|
10
|
+
const setImage = (image) => {
|
|
11
|
+
if (image) {
|
|
12
|
+
name.value = image.name;
|
|
13
|
+
if (image.time) {
|
|
14
|
+
time.value = new Intl.DateTimeFormat(app.locale, {
|
|
15
|
+
dateStyle: 'short',
|
|
16
|
+
timeStyle: 'short',
|
|
17
|
+
}).format(image.time);
|
|
18
|
+
} else {
|
|
19
|
+
time.value = undefined;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
const setMap = (map) => {
|
|
24
|
+
imageChangedListener();
|
|
25
|
+
if (map instanceof PanoramaMap) {
|
|
26
|
+
setImage(map.currentPanoramaImage);
|
|
27
|
+
imageChangedListener = map.currentImageChanged.addEventListener(setImage);
|
|
28
|
+
} else {
|
|
29
|
+
name.value = undefined;
|
|
30
|
+
time.value = undefined;
|
|
31
|
+
imageChangedListener = () => {};
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const mapChangedListener = app.maps.mapActivated.addEventListener(setMap);
|
|
36
|
+
setMap(app.maps.activeMap);
|
|
37
|
+
|
|
38
|
+
onUnmounted(() => {
|
|
39
|
+
imageChangedListener();
|
|
40
|
+
mapChangedListener();
|
|
41
|
+
});
|
|
42
|
+
</script>
|
|
43
|
+
|
|
44
|
+
<template>
|
|
45
|
+
<span
|
|
46
|
+
v-if="name && time"
|
|
47
|
+
class="d-flex align-center overflow-hidden vcs-panorama-footer"
|
|
48
|
+
>{{ time }} - {{ name }}
|
|
49
|
+
</span>
|
|
50
|
+
</template>
|
|
51
|
+
|
|
52
|
+
<style scoped lang="scss"></style>
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
hide-z
|
|
19
19
|
v-model="min"
|
|
20
20
|
:disabled="disabled"
|
|
21
|
+
:extent="extent"
|
|
21
22
|
:axis-rules="[
|
|
22
23
|
[(v) => checkInput(v, max[0])],
|
|
23
24
|
[(v) => checkInput(v, max[1])],
|
|
@@ -35,6 +36,7 @@
|
|
|
35
36
|
hide-z
|
|
36
37
|
v-model="max"
|
|
37
38
|
:disabled="disabled"
|
|
39
|
+
:extent="extent"
|
|
38
40
|
:axis-rules="[
|
|
39
41
|
[(v) => checkInput(min[0], v)],
|
|
40
42
|
[(v) => checkInput(min[1], v)],
|
|
@@ -54,7 +56,7 @@
|
|
|
54
56
|
<script>
|
|
55
57
|
import { computed, toRaw } from 'vue';
|
|
56
58
|
import { VCol, VContainer, VRow } from 'vuetify/components';
|
|
57
|
-
import { Extent } from '@vcmap/core';
|
|
59
|
+
import { Extent, Projection } from '@vcmap/core';
|
|
58
60
|
import VcsLabel from '../form-inputs-controls/VcsLabel.vue';
|
|
59
61
|
import VcsTextField from '../form-inputs-controls/VcsTextField.vue';
|
|
60
62
|
import VcsCoordinate from '../form-inputs-controls/VcsCoordinate.vue';
|
|
@@ -100,6 +102,14 @@
|
|
|
100
102
|
setup(props, { emit }) {
|
|
101
103
|
const localValue = useProxiedComplexModel(props, 'modelValue', emit);
|
|
102
104
|
|
|
105
|
+
const { proj } = new Projection(localValue.value.projection);
|
|
106
|
+
const extent = proj.getExtent() || [
|
|
107
|
+
-Infinity,
|
|
108
|
+
-Infinity,
|
|
109
|
+
Infinity,
|
|
110
|
+
Infinity,
|
|
111
|
+
];
|
|
112
|
+
|
|
103
113
|
const getCoordinate = (start, end = 4) =>
|
|
104
114
|
computed({
|
|
105
115
|
get() {
|
|
@@ -121,6 +131,7 @@
|
|
|
121
131
|
min: getCoordinate(0, 2),
|
|
122
132
|
max: getCoordinate(2),
|
|
123
133
|
checkInput,
|
|
134
|
+
extent,
|
|
124
135
|
cid,
|
|
125
136
|
};
|
|
126
137
|
},
|
|
@@ -15,6 +15,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
15
15
|
min: import("vue").WritableComputedRef<any>;
|
|
16
16
|
max: import("vue").WritableComputedRef<any>;
|
|
17
17
|
checkInput: typeof checkInput;
|
|
18
|
+
extent: import("ol/extent.js", { with: { "resolution-mode": "import" } }).Extent;
|
|
18
19
|
cid: string;
|
|
19
20
|
}, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
20
21
|
modelValue: {
|
|
@@ -59,6 +59,7 @@
|
|
|
59
59
|
CesiumMap,
|
|
60
60
|
GeometryType,
|
|
61
61
|
is2DLayout,
|
|
62
|
+
PanoramaMap,
|
|
62
63
|
SessionType,
|
|
63
64
|
TransformationMode,
|
|
64
65
|
VectorProperties,
|
|
@@ -280,12 +281,21 @@
|
|
|
280
281
|
}),
|
|
281
282
|
);
|
|
282
283
|
|
|
283
|
-
|
|
284
|
-
|
|
284
|
+
const defaultVectorProperties = reactive(
|
|
285
|
+
VectorProperties.getDefaultOptions(),
|
|
286
|
+
);
|
|
287
|
+
function activeMapHandler() {
|
|
288
|
+
const isPanorama = vcsApp.maps.activeMap instanceof PanoramaMap;
|
|
289
|
+
is3D.value = vcsApp.maps.activeMap instanceof CesiumMap || isPanorama;
|
|
290
|
+
|
|
291
|
+
defaultVectorProperties.altitudeMode = isPanorama
|
|
292
|
+
? 'absolute'
|
|
293
|
+
: 'clampToGround';
|
|
285
294
|
}
|
|
295
|
+
|
|
286
296
|
const mapActivatedListener =
|
|
287
|
-
vcsApp.maps.mapActivated.addEventListener(
|
|
288
|
-
|
|
297
|
+
vcsApp.maps.mapActivated.addEventListener(activeMapHandler);
|
|
298
|
+
activeMapHandler();
|
|
289
299
|
|
|
290
300
|
const isGeometryEditing = computed(
|
|
291
301
|
() => editSession.value?.type === SessionType.EDIT_GEOMETRY,
|
|
@@ -476,7 +486,7 @@
|
|
|
476
486
|
is2DFeature,
|
|
477
487
|
isGeometryEditing,
|
|
478
488
|
updateFeatureProperties,
|
|
479
|
-
defaultVectorProperties
|
|
489
|
+
defaultVectorProperties,
|
|
480
490
|
showInputs: computed(
|
|
481
491
|
() =>
|
|
482
492
|
!currentTransformationMode.value &&
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/// <reference types="@vcmap-cesium/engine" />
|
|
2
|
+
/// <reference types="@vcmap/core/dist/cesium.js" />
|
|
1
3
|
/**
|
|
2
4
|
* Returns the allowed transformation modes for the provided geometry types and number of features. Rotate is e.g. not allowed for a single point but for multiple points.
|
|
3
5
|
* @param {Set<GeometryType>} geometryTypes A set with all geometry types of the features.
|
|
@@ -59,7 +61,127 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
59
61
|
is2DFeature: import("vue").ComputedRef<boolean>;
|
|
60
62
|
isGeometryEditing: import("vue").ComputedRef<boolean>;
|
|
61
63
|
updateFeatureProperties: (update: import("@vcmap/core").VectorPropertiesOptions) => void;
|
|
62
|
-
defaultVectorProperties:
|
|
64
|
+
defaultVectorProperties: {
|
|
65
|
+
altitudeMode?: import("@vcmap/core/dist/src/layer/vectorProperties.js", { with: { "resolution-mode": "import" } }).AltitudeModeType | undefined;
|
|
66
|
+
allowPicking?: boolean | undefined;
|
|
67
|
+
classificationType?: import("@vcmap/core/dist/src/layer/vectorProperties.js", { with: { "resolution-mode": "import" } }).ClassificationTypeType | undefined;
|
|
68
|
+
scaleByDistance?: number[] | undefined;
|
|
69
|
+
eyeOffset?: number[] | undefined;
|
|
70
|
+
heightAboveGround?: number | undefined;
|
|
71
|
+
skirt?: number | undefined;
|
|
72
|
+
groundLevel?: number | undefined;
|
|
73
|
+
extrudedHeight?: number | undefined;
|
|
74
|
+
storeysAboveGround?: number | undefined;
|
|
75
|
+
storeysBelowGround?: number | undefined;
|
|
76
|
+
storeyHeightsAboveGround?: number | number[] | undefined;
|
|
77
|
+
storeyHeightsBelowGround?: number | number[] | undefined;
|
|
78
|
+
modelUrl?: string | undefined;
|
|
79
|
+
modelScaleX?: number | undefined;
|
|
80
|
+
modelScaleY?: number | undefined;
|
|
81
|
+
modelScaleZ?: number | undefined;
|
|
82
|
+
modelHeading?: number | undefined;
|
|
83
|
+
modelPitch?: number | undefined;
|
|
84
|
+
modelRoll?: number | undefined;
|
|
85
|
+
modelAutoScale?: boolean | undefined;
|
|
86
|
+
modelOptions?: Record<string, unknown> | undefined;
|
|
87
|
+
primitiveOptions?: {
|
|
88
|
+
type: import("@vcmap/core", { with: { "resolution-mode": "import" } }).PrimitiveOptionsType;
|
|
89
|
+
geometryOptions: {
|
|
90
|
+
length: number;
|
|
91
|
+
topRadius: number;
|
|
92
|
+
bottomRadius: number;
|
|
93
|
+
slices?: number | undefined;
|
|
94
|
+
vertexFormat?: {
|
|
95
|
+
position: boolean;
|
|
96
|
+
normal: boolean;
|
|
97
|
+
st: boolean;
|
|
98
|
+
bitangent: boolean;
|
|
99
|
+
tangent: boolean;
|
|
100
|
+
color: boolean;
|
|
101
|
+
} | undefined;
|
|
102
|
+
} | {
|
|
103
|
+
radius?: number | undefined;
|
|
104
|
+
stackPartitions?: number | undefined;
|
|
105
|
+
slicePartitions?: number | undefined;
|
|
106
|
+
vertexFormat?: {
|
|
107
|
+
position: boolean;
|
|
108
|
+
normal: boolean;
|
|
109
|
+
st: boolean;
|
|
110
|
+
bitangent: boolean;
|
|
111
|
+
tangent: boolean;
|
|
112
|
+
color: boolean;
|
|
113
|
+
} | undefined;
|
|
114
|
+
} | {
|
|
115
|
+
radii?: {
|
|
116
|
+
x: number;
|
|
117
|
+
y: number;
|
|
118
|
+
z: number;
|
|
119
|
+
clone: (result?: import("@vcmap-cesium/engine", { with: { "resolution-mode": "import" } }).Cartesian3 | undefined) => import("@vcmap-cesium/engine", { with: { "resolution-mode": "import" } }).Cartesian3;
|
|
120
|
+
equals: (right?: import("@vcmap-cesium/engine", { with: { "resolution-mode": "import" } }).Cartesian3 | undefined) => boolean;
|
|
121
|
+
equalsEpsilon: (right?: import("@vcmap-cesium/engine", { with: { "resolution-mode": "import" } }).Cartesian3 | undefined, relativeEpsilon?: number | undefined, absoluteEpsilon?: number | undefined) => boolean;
|
|
122
|
+
toString: () => string;
|
|
123
|
+
} | undefined;
|
|
124
|
+
innerRadii?: {
|
|
125
|
+
x: number;
|
|
126
|
+
y: number;
|
|
127
|
+
z: number;
|
|
128
|
+
clone: (result?: import("@vcmap-cesium/engine", { with: { "resolution-mode": "import" } }).Cartesian3 | undefined) => import("@vcmap-cesium/engine", { with: { "resolution-mode": "import" } }).Cartesian3;
|
|
129
|
+
equals: (right?: import("@vcmap-cesium/engine", { with: { "resolution-mode": "import" } }).Cartesian3 | undefined) => boolean;
|
|
130
|
+
equalsEpsilon: (right?: import("@vcmap-cesium/engine", { with: { "resolution-mode": "import" } }).Cartesian3 | undefined, relativeEpsilon?: number | undefined, absoluteEpsilon?: number | undefined) => boolean;
|
|
131
|
+
toString: () => string;
|
|
132
|
+
} | undefined;
|
|
133
|
+
minimumClock?: number | undefined;
|
|
134
|
+
maximumClock?: number | undefined;
|
|
135
|
+
minimumCone?: number | undefined;
|
|
136
|
+
maximumCone?: number | undefined;
|
|
137
|
+
stackPartitions?: number | undefined;
|
|
138
|
+
slicePartitions?: number | undefined;
|
|
139
|
+
vertexFormat?: {
|
|
140
|
+
position: boolean;
|
|
141
|
+
normal: boolean;
|
|
142
|
+
st: boolean;
|
|
143
|
+
bitangent: boolean;
|
|
144
|
+
tangent: boolean;
|
|
145
|
+
color: boolean;
|
|
146
|
+
} | undefined;
|
|
147
|
+
} | {
|
|
148
|
+
minimum: {
|
|
149
|
+
x: number;
|
|
150
|
+
y: number;
|
|
151
|
+
z: number;
|
|
152
|
+
clone: (result?: import("@vcmap-cesium/engine", { with: { "resolution-mode": "import" } }).Cartesian3 | undefined) => import("@vcmap-cesium/engine", { with: { "resolution-mode": "import" } }).Cartesian3;
|
|
153
|
+
equals: (right?: import("@vcmap-cesium/engine", { with: { "resolution-mode": "import" } }).Cartesian3 | undefined) => boolean;
|
|
154
|
+
equalsEpsilon: (right?: import("@vcmap-cesium/engine", { with: { "resolution-mode": "import" } }).Cartesian3 | undefined, relativeEpsilon?: number | undefined, absoluteEpsilon?: number | undefined) => boolean;
|
|
155
|
+
toString: () => string;
|
|
156
|
+
};
|
|
157
|
+
maximum: {
|
|
158
|
+
x: number;
|
|
159
|
+
y: number;
|
|
160
|
+
z: number;
|
|
161
|
+
clone: (result?: import("@vcmap-cesium/engine", { with: { "resolution-mode": "import" } }).Cartesian3 | undefined) => import("@vcmap-cesium/engine", { with: { "resolution-mode": "import" } }).Cartesian3;
|
|
162
|
+
equals: (right?: import("@vcmap-cesium/engine", { with: { "resolution-mode": "import" } }).Cartesian3 | undefined) => boolean;
|
|
163
|
+
equalsEpsilon: (right?: import("@vcmap-cesium/engine", { with: { "resolution-mode": "import" } }).Cartesian3 | undefined, relativeEpsilon?: number | undefined, absoluteEpsilon?: number | undefined) => boolean;
|
|
164
|
+
toString: () => string;
|
|
165
|
+
};
|
|
166
|
+
vertexFormat?: {
|
|
167
|
+
position: boolean;
|
|
168
|
+
normal: boolean;
|
|
169
|
+
st: boolean;
|
|
170
|
+
bitangent: boolean;
|
|
171
|
+
tangent: boolean;
|
|
172
|
+
color: boolean;
|
|
173
|
+
} | undefined;
|
|
174
|
+
} | undefined;
|
|
175
|
+
depthFailColor?: string | number[] | {
|
|
176
|
+
setTransform: (transform?: DOMMatrix2DInit | undefined) => void;
|
|
177
|
+
} | {
|
|
178
|
+
addColorStop: (offset: number, color: string) => void;
|
|
179
|
+
} | undefined;
|
|
180
|
+
offset?: number[] | undefined;
|
|
181
|
+
additionalOptions?: Record<string, unknown> | undefined;
|
|
182
|
+
} | undefined;
|
|
183
|
+
baseUrl?: string | undefined;
|
|
184
|
+
};
|
|
63
185
|
showInputs: import("vue").ComputedRef<boolean>;
|
|
64
186
|
}, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
65
187
|
allowedVectorProperties: {
|
|
@@ -436,7 +436,7 @@ class ContentTreeItem {
|
|
|
436
436
|
removeAction(actionName) {
|
|
437
437
|
const index = this._getActionIndex(actionName);
|
|
438
438
|
if (index > -1) {
|
|
439
|
-
this._actions.value.
|
|
439
|
+
this._actions.value = this._actions.value.filter((_, i) => i !== index);
|
|
440
440
|
}
|
|
441
441
|
}
|
|
442
442
|
|