diff --git a/src/components/BBoxEntry.vue b/src/components/BBoxEntry.vue new file mode 100644 index 000000000..c1e34c232 --- /dev/null +++ b/src/components/BBoxEntry.vue @@ -0,0 +1,156 @@ + + + diff --git a/src/components/Map.vue b/src/components/Map.vue index 5d522d215..a31462261 100644 --- a/src/components/Map.vue +++ b/src/components/Map.vue @@ -90,6 +90,10 @@ export default { fitBoundsOnce: { type: Boolean, default: false + }, + bbox: { + type: Array, + default: null, } }, data() { @@ -419,11 +423,16 @@ export default { minWidth: 20, minHeight: 20, minHorizontalSpacing: 20, - minVerticalSpacing: 20 + minVerticalSpacing: 20, + bbox: this.bbox, }); - this.areaSelect.addTo(this.map); + this.areaSelect.addTo(this.map, this.bbox); this.areaSelect.on("change", () => this.emitBounds()); - this.emitBounds(); + + // don't emit bounds on load if already known in order to avoid rounding box entries + if(!this.bbox) { + this.emitBounds(); + } }, emitBounds() { this.$emit('bounds', this.areaSelect.getBounds()); diff --git a/src/components/SearchFilter.vue b/src/components/SearchFilter.vue index c359eb8bc..335ed1516 100644 --- a/src/components/SearchFilter.vue +++ b/src/components/SearchFilter.vue @@ -27,8 +27,19 @@ - {{ $t('search.filterBySpatialExtent') }} - + {{ $t('search.filterBySpatialExtent') }} + @@ -118,11 +129,12 @@