@vcmap/ui 5.2.4 → 5.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/base.config.json +82 -0
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core.83d353.js → core.7ca6f7.js} +3498 -3347
- package/dist/assets/core.js +1 -1
- package/dist/assets/index-0eb860e7.js +1 -0
- package/dist/assets/ol.js +1 -1
- package/dist/assets/{ui.300809.css → ui.a9e21c.css} +1 -1
- package/dist/assets/{ui.300809.js → ui.a9e21c.js} +5691 -5181
- package/dist/assets/ui.js +1 -1
- package/dist/assets/vue.js +2 -2
- package/dist/assets/{vuetify.b3de7a.js → vuetify.ecc326.js} +1 -1
- package/dist/assets/vuetify.js +2 -2
- package/dist/index.html +1 -1
- package/package.json +2 -2
- package/src/application/VcsApp.vue +154 -1
- package/src/application/VcsApp.vue.d.ts +14 -0
- package/src/application/VcsCustomScreen.vue +45 -0
- package/src/application/VcsCustomScreen.vue.d.ts +15 -0
- package/src/application/VcsSettings.vue +67 -0
- package/src/application/VcsSettings.vue.d.ts +2 -0
- package/src/application/VcsSplashScreen.vue +133 -0
- package/src/application/VcsSplashScreen.vue.d.ts +31 -0
- package/src/application/markdownHelper.js +19 -1
- package/src/components/icons/+all.js +4 -0
- package/src/components/icons/CrosshairIcon.vue +33 -0
- package/src/components/icons/CrosshairIcon.vue.d.ts +2 -0
- package/src/i18n/de.d.ts +41 -18
- package/src/i18n/de.js +22 -0
- package/src/i18n/en.d.ts +41 -18
- package/src/i18n/en.js +22 -0
- package/src/navigation/MapNavigation.vue +74 -4
- package/src/navigation/MapNavigation.vue.d.ts +36 -0
- package/src/navigation/ObliqueRotation.vue +8 -0
- package/src/navigation/ObliqueRotation.vue.d.ts +13 -1
- package/src/navigation/TiltSlider.vue +8 -1
- package/src/navigation/TiltSlider.vue.d.ts +13 -1
- package/src/navigation/VcsCompass.vue +7 -1
- package/src/navigation/VcsCompass.vue.d.ts +11 -0
- package/src/navigation/VcsZoomButton.vue +10 -0
- package/src/navigation/VcsZoomButton.vue.d.ts +15 -1
- package/src/navigation/locatorHelper.d.ts +9 -0
- package/src/navigation/locatorHelper.js +294 -0
- package/src/navigation/overviewMap.d.ts +21 -20
- package/src/navigation/overviewMap.js +51 -39
- package/src/uiConfig.d.ts +67 -0
- package/src/uiConfig.js +30 -0
- package/dist/assets/index-69733149.js +0 -1
- /package/dist/assets/{cesium.162cd3.js → cesium.8ce891.js} +0 -0
- /package/dist/assets/{ol.7cdede.js → ol.f313ea.js} +0 -0
- /package/dist/assets/{vue.27f25a.js → vue.d7a2f9.js} +0 -0
- /package/dist/assets/{vuetify.b3de7a.css → vuetify.ecc326.css} +0 -0
@@ -3,6 +3,11 @@ declare const _default: import("vue").DefineComponent<{
|
|
3
3
|
type: NumberConstructor;
|
4
4
|
required: true;
|
5
5
|
};
|
6
|
+
disabled: {
|
7
|
+
type: BooleanConstructor;
|
8
|
+
required: false;
|
9
|
+
default: boolean;
|
10
|
+
};
|
6
11
|
}, {}, {
|
7
12
|
localValue: number;
|
8
13
|
}, {
|
@@ -15,5 +20,12 @@ declare const _default: import("vue").DefineComponent<{
|
|
15
20
|
type: NumberConstructor;
|
16
21
|
required: true;
|
17
22
|
};
|
18
|
-
|
23
|
+
disabled: {
|
24
|
+
type: BooleanConstructor;
|
25
|
+
required: false;
|
26
|
+
default: boolean;
|
27
|
+
};
|
28
|
+
}>>, {
|
29
|
+
disabled: boolean;
|
30
|
+
}>;
|
19
31
|
export default _default;
|
@@ -12,7 +12,7 @@
|
|
12
12
|
class="position-absolute pos-a-0 primary--text"
|
13
13
|
@click="$event.stopPropagation()"
|
14
14
|
@direction-click="$emit('input', $event)"
|
15
|
-
:can-emit="viewMode === '3d' || viewMode === 'oblique'"
|
15
|
+
:can-emit="!disabled && (viewMode === '3d' || viewMode === 'oblique')"
|
16
16
|
:hide-ticks="viewMode === 'oblique'"
|
17
17
|
/>
|
18
18
|
</v-sheet>
|
@@ -29,6 +29,7 @@
|
|
29
29
|
* @vue-prop {OrientationToolsViewMode} viewMode - Mode of the map. Defines the behaviour of the compass.
|
30
30
|
* @vue-prop {number} value - Number of degrees of the compass rotation.
|
31
31
|
* @vue-event {number} input
|
32
|
+
* @vue-prop {boolean} disabled - whether compass should be disabled
|
32
33
|
*/
|
33
34
|
export default {
|
34
35
|
name: 'VcsCompass',
|
@@ -45,6 +46,11 @@
|
|
45
46
|
type: Number,
|
46
47
|
default: 0,
|
47
48
|
},
|
49
|
+
disabled: {
|
50
|
+
type: Boolean,
|
51
|
+
default: false,
|
52
|
+
required: false,
|
53
|
+
},
|
48
54
|
},
|
49
55
|
setup(props) {
|
50
56
|
const rotationValue = ref(props.value);
|
@@ -7,6 +7,11 @@ declare const _default: import("vue").DefineComponent<{
|
|
7
7
|
type: NumberConstructor;
|
8
8
|
default: number;
|
9
9
|
};
|
10
|
+
disabled: {
|
11
|
+
type: BooleanConstructor;
|
12
|
+
default: boolean;
|
13
|
+
required: false;
|
14
|
+
};
|
10
15
|
}, {
|
11
16
|
rotationValue: any;
|
12
17
|
compassRotation: import("vue").ComputedRef<number>;
|
@@ -19,7 +24,13 @@ declare const _default: import("vue").DefineComponent<{
|
|
19
24
|
type: NumberConstructor;
|
20
25
|
default: number;
|
21
26
|
};
|
27
|
+
disabled: {
|
28
|
+
type: BooleanConstructor;
|
29
|
+
default: boolean;
|
30
|
+
required: false;
|
31
|
+
};
|
22
32
|
}>>, {
|
23
33
|
value: number;
|
34
|
+
disabled: boolean;
|
24
35
|
}>;
|
25
36
|
export default _default;
|
@@ -6,12 +6,14 @@
|
|
6
6
|
icon="$vcsPlus"
|
7
7
|
tooltip="navigation.zoomInTooltip"
|
8
8
|
elevation="0"
|
9
|
+
:disabled="disabled"
|
9
10
|
/>
|
10
11
|
<OrientationToolsButton
|
11
12
|
@click="$emit('zoom-out')"
|
12
13
|
icon="$vcsMinus"
|
13
14
|
tooltip="navigation.zoomOutTooltip"
|
14
15
|
elevation="0"
|
16
|
+
:disabled="disabled"
|
15
17
|
/>
|
16
18
|
</div>
|
17
19
|
</div>
|
@@ -24,9 +26,17 @@
|
|
24
26
|
* @description Zoom buttons rendered above each other.
|
25
27
|
* @vue-event {void} zoom-in - raised when zoom in is called
|
26
28
|
* @vue-event {void} zoom-out - raised when zoom out is called
|
29
|
+
* @vue-prop {boolean} disabled - whether zoom buttons should be disabled
|
27
30
|
*/
|
28
31
|
export default {
|
29
32
|
components: { OrientationToolsButton },
|
33
|
+
props: {
|
34
|
+
disabled: {
|
35
|
+
required: false,
|
36
|
+
type: Boolean,
|
37
|
+
default: false,
|
38
|
+
},
|
39
|
+
},
|
30
40
|
};
|
31
41
|
</script>
|
32
42
|
<style lang="scss" scoped>
|
@@ -1,2 +1,16 @@
|
|
1
|
-
declare const _default: import("vue").DefineComponent<{
|
1
|
+
declare const _default: import("vue").DefineComponent<{
|
2
|
+
disabled: {
|
3
|
+
required: false;
|
4
|
+
type: BooleanConstructor;
|
5
|
+
default: boolean;
|
6
|
+
};
|
7
|
+
}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
|
8
|
+
disabled: {
|
9
|
+
required: false;
|
10
|
+
type: BooleanConstructor;
|
11
|
+
default: boolean;
|
12
|
+
};
|
13
|
+
}>>, {
|
14
|
+
disabled: boolean;
|
15
|
+
}>;
|
2
16
|
export default _default;
|
@@ -0,0 +1,9 @@
|
|
1
|
+
/**
|
2
|
+
*
|
3
|
+
* @param {import("../vcsUiApp.js").default} app
|
4
|
+
* @returns {{ action: import("../actions/actionHelper.js").VcsAction, destroy: Function }}
|
5
|
+
*/
|
6
|
+
export function createLocatorAction(app: import("../vcsUiApp.js").default): {
|
7
|
+
action: import("../actions/actionHelper.js").VcsAction;
|
8
|
+
destroy: Function;
|
9
|
+
};
|
@@ -0,0 +1,294 @@
|
|
1
|
+
import {
|
2
|
+
markVolatile,
|
3
|
+
maxZIndex,
|
4
|
+
mercatorProjection,
|
5
|
+
Projection,
|
6
|
+
VectorLayer,
|
7
|
+
VectorStyleItem,
|
8
|
+
ensureFeatureAbsolute,
|
9
|
+
CesiumMap,
|
10
|
+
} from '@vcmap/core';
|
11
|
+
import { Circle, Point } from 'ol/geom';
|
12
|
+
import { Feature } from 'ol';
|
13
|
+
import { Color } from '@vcmap-cesium/engine';
|
14
|
+
import CircleStyle from 'ol/style/Circle';
|
15
|
+
import { Fill, Stroke } from 'ol/style';
|
16
|
+
import { NotificationType } from '../notifier/notifier.js';
|
17
|
+
import { getDefaultPrimaryColor } from '../vuePlugins/vuetify.js';
|
18
|
+
|
19
|
+
/**
|
20
|
+
* Request the Color and add opacity
|
21
|
+
* @param {number} opacity
|
22
|
+
* @param {import("../vcsUiApp.js").default} app
|
23
|
+
* @returns {string}
|
24
|
+
*/
|
25
|
+
function getColor(opacity, app) {
|
26
|
+
return Color.fromCssColorString(
|
27
|
+
app.uiConfig.config.value.primaryColor ?? getDefaultPrimaryColor(),
|
28
|
+
)
|
29
|
+
.withAlpha(opacity)
|
30
|
+
.toCssColorString();
|
31
|
+
}
|
32
|
+
|
33
|
+
/**
|
34
|
+
* Place a location point and accuracy circle on the map.
|
35
|
+
* @param {import("@vcmap/core").VectorLayer} layer The OpenLayers layer to add the features to.
|
36
|
+
* @param {GeolocationCoordinates} point The point object containing longitude, latitude, and accuracy.
|
37
|
+
* @param {import("../vcsUiApp.js").default} app
|
38
|
+
*/
|
39
|
+
async function placeLocationInMap(layer, point, app) {
|
40
|
+
layer.removeFeaturesById(['_tooltipLocationPoint']);
|
41
|
+
layer.removeFeaturesById(['_tooltipLocationCircle']);
|
42
|
+
|
43
|
+
const featurePoint = [point.longitude, point.latitude];
|
44
|
+
|
45
|
+
const feature = new Feature({
|
46
|
+
geometry: new Point(Projection.wgs84ToMercator(featurePoint)),
|
47
|
+
olcs_extrudedHeight: 80,
|
48
|
+
olcs_altitudeMode: 'clampToGround',
|
49
|
+
});
|
50
|
+
feature.setId('_tooltipLocationPoint');
|
51
|
+
|
52
|
+
if (app.maps.activeMap instanceof CesiumMap) {
|
53
|
+
await ensureFeatureAbsolute(feature, layer, app.maps.activeMap);
|
54
|
+
}
|
55
|
+
|
56
|
+
const accuracyCircle = new Feature({
|
57
|
+
geometry: new Circle(
|
58
|
+
Projection.wgs84ToMercator([point.longitude, point.latitude]),
|
59
|
+
point.accuracy,
|
60
|
+
),
|
61
|
+
});
|
62
|
+
accuracyCircle.setId('_tooltipLocationCircle');
|
63
|
+
layer.addFeatures([accuracyCircle, feature]);
|
64
|
+
}
|
65
|
+
/**
|
66
|
+
* Calculate the Euclidean distance between two coordinates.
|
67
|
+
* @param {GeolocationCoordinates} coord First set of coordinates.
|
68
|
+
* @param {GeolocationCoordinates} prevCoord Second set of coordinates.
|
69
|
+
* @returns {number} The Euclidean distance between the coordinates in meters.
|
70
|
+
*/
|
71
|
+
function getDistance(coord, prevCoord) {
|
72
|
+
const dx = prevCoord.longitude - coord.longitude;
|
73
|
+
const dy = prevCoord.latitude - coord.latitude;
|
74
|
+
// Approximate distance using Pythagoras' theorem
|
75
|
+
return Math.sqrt(dx * dx + dy * dy);
|
76
|
+
}
|
77
|
+
|
78
|
+
/**
|
79
|
+
* Moves the map view to a specified position, optionally setting a distance.
|
80
|
+
* @param {number|null} distance
|
81
|
+
* @param {GeolocationCoordinates} position
|
82
|
+
* @param {import("../vcsUiApp.js").default} app
|
83
|
+
*/
|
84
|
+
async function goToLocator(distance, position, app) {
|
85
|
+
const viewpoint = await app.maps.activeMap.getViewpoint();
|
86
|
+
viewpoint.animate = true;
|
87
|
+
viewpoint.cameraPosition = null;
|
88
|
+
viewpoint.groundPosition = [position.longitude, position.latitude];
|
89
|
+
if (viewpoint.pitch >= -30) {
|
90
|
+
viewpoint.pitch = -30;
|
91
|
+
}
|
92
|
+
|
93
|
+
if (distance != null) {
|
94
|
+
viewpoint.distance = distance;
|
95
|
+
}
|
96
|
+
viewpoint.duration = 1;
|
97
|
+
await app.maps.activeMap?.gotoViewpoint(viewpoint);
|
98
|
+
}
|
99
|
+
|
100
|
+
/**
|
101
|
+
* Handles the success of geolocation, updating the map accordingly.
|
102
|
+
* @param {import("@vcmap/core").VectorLayer} vectorLayer The vector layer on which to place the location.
|
103
|
+
* @param {import("../vcsUiApp.js").default} app
|
104
|
+
* @param {LocatorState} state The state object containing previous and current coordinates.
|
105
|
+
* @param {GeolocationPosition} position The position object containing current coordinates and accuracy.
|
106
|
+
*/
|
107
|
+
async function handleSuccess(vectorLayer, app, state, position) {
|
108
|
+
if (
|
109
|
+
position.coords.longitude !== state.prevCoordinates?.longitude ||
|
110
|
+
position.coords.latitude !== state.prevCoordinates?.latitude ||
|
111
|
+
position.coords.accuracy !== state.prevCoordinates?.accuracy
|
112
|
+
) {
|
113
|
+
state.coordinates = position.coords;
|
114
|
+
|
115
|
+
if (state.prevCoordinates === undefined || state.prevCoordinates === null) {
|
116
|
+
await goToLocator(state.coordinates.accuracy, position.coords, app);
|
117
|
+
} else if (getDistance(position.coords, state.prevCoordinates) > 5) {
|
118
|
+
await goToLocator(state.coordinates.accuracy, position.coords, app);
|
119
|
+
}
|
120
|
+
await placeLocationInMap(vectorLayer, state.coordinates, app);
|
121
|
+
state.prevCoordinates = position.coords;
|
122
|
+
}
|
123
|
+
}
|
124
|
+
|
125
|
+
/**
|
126
|
+
* Handles errors that occur during geolocation, displaying appropriate notifications based on the error code.
|
127
|
+
* @param {import("../vcsUiApp.js").default} app
|
128
|
+
* @param {LocatorState} state The state object.
|
129
|
+
* @param {GeolocationPositionError} error The error object containing information about the geolocation error.
|
130
|
+
*/
|
131
|
+
function handleError(app, state, error) {
|
132
|
+
if (state.prevCoordinates === undefined || state.prevCoordinates === null) {
|
133
|
+
switch (error.code) {
|
134
|
+
case 1:
|
135
|
+
app.notifier.add({
|
136
|
+
type: NotificationType.ERROR,
|
137
|
+
message: app.vueI18n.t('navigation.locator.errorAccess'),
|
138
|
+
});
|
139
|
+
break;
|
140
|
+
case 2:
|
141
|
+
app.notifier.add({
|
142
|
+
type: NotificationType.ERROR,
|
143
|
+
message: app.vueI18n.t('navigation.locator.errorCurrentPosition'),
|
144
|
+
});
|
145
|
+
break;
|
146
|
+
case 3:
|
147
|
+
app.notifier.add({
|
148
|
+
type: NotificationType.ERROR,
|
149
|
+
message: app.vueI18n.t('navigation.locator.errorConnection'),
|
150
|
+
});
|
151
|
+
break;
|
152
|
+
default:
|
153
|
+
app.notifier.add({
|
154
|
+
type: NotificationType.ERROR,
|
155
|
+
message: app.vueI18n.t('navigation.locator.errorPosition'),
|
156
|
+
});
|
157
|
+
break;
|
158
|
+
}
|
159
|
+
}
|
160
|
+
}
|
161
|
+
|
162
|
+
const geolocationOptions = {
|
163
|
+
enableHighAccuracy: true,
|
164
|
+
maximumAge: 10000,
|
165
|
+
timeout: 5000,
|
166
|
+
};
|
167
|
+
|
168
|
+
/**
|
169
|
+
*
|
170
|
+
* @param {import("../vcsUiApp.js").default} app
|
171
|
+
* @returns {{ action: import("../actions/actionHelper.js").VcsAction, destroy: Function }}
|
172
|
+
*/
|
173
|
+
// eslint-disable-next-line import/prefer-default-export
|
174
|
+
export function createLocatorAction(app) {
|
175
|
+
let primary = getColor(0.4, app);
|
176
|
+
|
177
|
+
let pointColor = getColor(1, app);
|
178
|
+
|
179
|
+
const style = new VectorStyleItem({
|
180
|
+
fill: {
|
181
|
+
color: primary,
|
182
|
+
},
|
183
|
+
stroke: { color: pointColor, width: 2 },
|
184
|
+
image: {
|
185
|
+
fill: {
|
186
|
+
color: pointColor,
|
187
|
+
},
|
188
|
+
color: primary,
|
189
|
+
stroke: { color: pointColor, width: 2 },
|
190
|
+
radius: 5,
|
191
|
+
},
|
192
|
+
});
|
193
|
+
const vectorLayer = new VectorLayer({
|
194
|
+
projection: mercatorProjection.toJSON(),
|
195
|
+
vectorProperties: {
|
196
|
+
classificationType: 'both',
|
197
|
+
allowPicking: false,
|
198
|
+
heightAboveGround: 2,
|
199
|
+
altitudeMode: 'clampToGround',
|
200
|
+
},
|
201
|
+
zIndex: maxZIndex,
|
202
|
+
style,
|
203
|
+
});
|
204
|
+
|
205
|
+
const mapChangedListener = app.maps.mapActivated.addEventListener(
|
206
|
+
async (map) => {
|
207
|
+
if (map instanceof CesiumMap) {
|
208
|
+
const locatorFeature = vectorLayer.getFeatureById(
|
209
|
+
'_tooltipLocationPoint',
|
210
|
+
);
|
211
|
+
if (locatorFeature) {
|
212
|
+
await ensureFeatureAbsolute(locatorFeature, vectorLayer, map);
|
213
|
+
}
|
214
|
+
}
|
215
|
+
},
|
216
|
+
);
|
217
|
+
markVolatile(vectorLayer);
|
218
|
+
app.layers.add(vectorLayer);
|
219
|
+
|
220
|
+
const destroyLayer = () => {
|
221
|
+
vectorLayer.deactivate();
|
222
|
+
app.layers.remove(vectorLayer);
|
223
|
+
vectorLayer.destroy();
|
224
|
+
};
|
225
|
+
|
226
|
+
/**
|
227
|
+
* @typedef {Object} LocatorState
|
228
|
+
* @property {GeolocationCoordinates} coordinates
|
229
|
+
* @property {GeolocationCoordinates} prevCoordinates
|
230
|
+
* @property {Object} id
|
231
|
+
*/
|
232
|
+
const state = {
|
233
|
+
coordinates: undefined,
|
234
|
+
prevCoordinates: undefined,
|
235
|
+
id: undefined,
|
236
|
+
};
|
237
|
+
|
238
|
+
const themeListener = app.themeChanged.addEventListener(() => {
|
239
|
+
primary = getColor(0.4, app);
|
240
|
+
pointColor = getColor(1, app);
|
241
|
+
style.fillColor = primary;
|
242
|
+
style.stroke.setColor(pointColor);
|
243
|
+
style.image = new CircleStyle({
|
244
|
+
fill: new Fill({
|
245
|
+
color: pointColor,
|
246
|
+
}),
|
247
|
+
color: primary,
|
248
|
+
stroke: new Stroke({ color: pointColor, width: 2 }),
|
249
|
+
radius: 5,
|
250
|
+
});
|
251
|
+
vectorLayer.forceRedraw();
|
252
|
+
});
|
253
|
+
|
254
|
+
const action = {
|
255
|
+
name: 'alertAction',
|
256
|
+
title: 'Locator',
|
257
|
+
icon: '$vcsCrosshair',
|
258
|
+
active: false,
|
259
|
+
disabled: true,
|
260
|
+
callback() {
|
261
|
+
if (!this.active) {
|
262
|
+
this.active = !this.active;
|
263
|
+
vectorLayer.activate();
|
264
|
+
if (state.prevCoordinates !== undefined) {
|
265
|
+
goToLocator(
|
266
|
+
state.prevCoordinates.accuracy,
|
267
|
+
state.prevCoordinates,
|
268
|
+
app,
|
269
|
+
);
|
270
|
+
}
|
271
|
+
state.id = navigator.geolocation.watchPosition(
|
272
|
+
handleSuccess.bind(null, vectorLayer, app, state),
|
273
|
+
handleError.bind(null, app, state),
|
274
|
+
geolocationOptions,
|
275
|
+
);
|
276
|
+
} else {
|
277
|
+
this.active = !this.active;
|
278
|
+
state.coordinates = null;
|
279
|
+
navigator.geolocation.clearWatch(state.id.value);
|
280
|
+
vectorLayer.deactivate();
|
281
|
+
}
|
282
|
+
},
|
283
|
+
};
|
284
|
+
const destroy = () => {
|
285
|
+
destroyLayer();
|
286
|
+
mapChangedListener();
|
287
|
+
themeListener();
|
288
|
+
style.destroy();
|
289
|
+
state.coordinates = undefined;
|
290
|
+
state.prevCoordinates = undefined;
|
291
|
+
state.id = undefined;
|
292
|
+
};
|
293
|
+
return { action, destroy };
|
294
|
+
}
|
@@ -35,17 +35,17 @@ declare class OverviewMap {
|
|
35
35
|
*/
|
36
36
|
private _cachedViewpoint;
|
37
37
|
/**
|
38
|
-
* @type {import("@vcmap/core").VectorLayer}
|
38
|
+
* @type {import("@vcmap/core").VectorLayer | null}
|
39
39
|
* @private
|
40
40
|
*/
|
41
41
|
private _obliqueTileLayer;
|
42
42
|
/**
|
43
|
-
* @type {import("@vcmap/core").VectorLayer}
|
43
|
+
* @type {import("@vcmap/core").VectorLayer | null}
|
44
44
|
* @private
|
45
45
|
*/
|
46
46
|
private _obliqueImageLayer;
|
47
47
|
/**
|
48
|
-
* @type {import("@vcmap/core").VectorLayer}
|
48
|
+
* @type {import("@vcmap/core").VectorLayer | null}
|
49
49
|
* @private
|
50
50
|
*/
|
51
51
|
private _obliqueSelectedImageLayer;
|
@@ -60,12 +60,12 @@ declare class OverviewMap {
|
|
60
60
|
*/
|
61
61
|
private _obliqueResolutionFactor;
|
62
62
|
/**
|
63
|
-
* @type {import("@vcmap/core").ObliqueViewDirection}
|
63
|
+
* @type {import("@vcmap/core").ObliqueViewDirection | null}
|
64
64
|
* @private
|
65
65
|
*/
|
66
66
|
private _obliqueViewDirection;
|
67
67
|
/**
|
68
|
-
* @type {import("@vcmap/core").VectorLayer}
|
68
|
+
* @type {import("@vcmap/core").VectorLayer | null}
|
69
69
|
* @private
|
70
70
|
*/
|
71
71
|
private _cameraIconLayer;
|
@@ -80,29 +80,29 @@ declare class OverviewMap {
|
|
80
80
|
*/
|
81
81
|
minimumHeight: number;
|
82
82
|
/**
|
83
|
-
* Handles the events from the overview map.
|
84
|
-
* @type {EventHandler
|
83
|
+
* Handles the events from the overview map.
|
84
|
+
* @type {EventHandler}
|
85
85
|
* @private
|
86
86
|
*/
|
87
87
|
private _eventHandler;
|
88
88
|
/**
|
89
|
-
*
|
90
|
-
*
|
91
|
-
* @type {import("@vcmap/core").VcsEvent<import("@vcmap/core").InteractionEvent>|null}
|
89
|
+
*
|
90
|
+
* @type {import("@vcmap/core").VcsEvent<import("@vcmap/core").InteractionEvent>}
|
92
91
|
* @private
|
93
92
|
*/
|
94
93
|
private _mapClicked;
|
95
94
|
/**
|
96
|
-
* @type {
|
95
|
+
* @type {function():void}
|
96
|
+
* @private
|
97
97
|
*/
|
98
|
-
_mapPointerListener
|
98
|
+
private _mapPointerListener;
|
99
99
|
/**
|
100
100
|
* @type {Array<function():void>}
|
101
101
|
* @private
|
102
102
|
*/
|
103
103
|
private _listeners;
|
104
104
|
/**
|
105
|
-
* @type {function():void}
|
105
|
+
* @type {null | function():void}
|
106
106
|
* @private
|
107
107
|
*/
|
108
108
|
private _mapActivatedListener;
|
@@ -124,17 +124,15 @@ declare class OverviewMap {
|
|
124
124
|
*/
|
125
125
|
get eventHandler(): EventHandler | null;
|
126
126
|
/**
|
127
|
-
*
|
127
|
+
* An event which is triggered whenever the overview map is clicked.
|
128
|
+
* Is passed a {@link InteractionEvent} as its only argument
|
129
|
+
* @type {import("@vcmap/core").VcsEvent<import("@vcmap/core").InteractionEvent>}
|
128
130
|
*/
|
129
|
-
get mapClicked(): import("@vcmap/core/dist/src/vcsEvent.js").default<import("@vcmap/core").InteractionEvent
|
131
|
+
get mapClicked(): import("@vcmap/core/dist/src/vcsEvent.js").default<import("@vcmap/core").InteractionEvent>;
|
130
132
|
/**
|
131
133
|
* @private
|
132
134
|
*/
|
133
135
|
private _updatePrimaryColor;
|
134
|
-
/**
|
135
|
-
* @private
|
136
|
-
*/
|
137
|
-
private _setupMapInteraction;
|
138
136
|
/**
|
139
137
|
* activates the overview map and initializes handlers for current active map
|
140
138
|
* @private
|
@@ -182,7 +180,10 @@ declare class OverviewMap {
|
|
182
180
|
* @private
|
183
181
|
*/
|
184
182
|
private _addNavigationListener;
|
185
|
-
|
183
|
+
/**
|
184
|
+
* @private
|
185
|
+
*/
|
186
|
+
private _setupCameraIconLayer;
|
186
187
|
/**
|
187
188
|
* Adds and maintains the view and camera feature
|
188
189
|
* @private
|