diff --git a/src/components/Map/VMap.global.vue b/src/components/Map/VMap.global.vue index 9b84c14..886668d 100644 --- a/src/components/Map/VMap.global.vue +++ b/src/components/Map/VMap.global.vue @@ -89,7 +89,9 @@ const emit = defineEmits([ 'add:layer', 'draw:start', 'edit:layer', - 'drag:layer' + 'drag:layer', + 'zoom:change', + 'zoom:start' ]) let mapObject @@ -121,6 +123,17 @@ watch( { deep: true } ) +watch( + () => props.dragging, + (newVal) => { + if (newVal) { + mapObject.dragging.enable() + } else { + mapObject.dragging.disable() + } + } +) + onMounted(() => { const options = { center: props.center, @@ -182,6 +195,9 @@ onMounted(() => { clearDrawLayers() emit('draw:start', e) }) + + mapObject.on('zoom', (e) => emit('zoom:change', e)) + mapObject.on('zoomstart', (e) => emit('zoom:start', e)) } tiles.osm.addTo(mapObject) @@ -256,7 +272,13 @@ function setGeoJSON(geojson) { emit('geojson:ready', geoJSONGroup) } +function getMapObject() { + return mapObject +} + defineExpose({ - clearDrawLayers + clearDrawLayers, + getMapObject, + resizeMap }) diff --git a/src/modules/otus/components/Search/OtuSearch.vue b/src/modules/otus/components/Search/OtuSearch.vue index ce1841d..40d4dbc 100644 --- a/src/modules/otus/components/Search/OtuSearch.vue +++ b/src/modules/otus/components/Search/OtuSearch.vue @@ -8,18 +8,22 @@ :label="otu.object_tag" @close="() => emit('close')" /> -
+
+ +