Translate and make it reactive

- Simplify coding of styles.
This commit is contained in:
Wolfgang Huß 2023-01-05 15:46:24 +01:00
parent e53ccb8d59
commit 41ecc2df9e
4 changed files with 59 additions and 26 deletions

View File

@ -522,6 +522,14 @@
"questions": "Bei Fragen oder Problemen erreichst Du uns per E-Mail an",
"title": "{APPLICATION_NAME} befindet sich in der Wartung"
},
"map": {
"styles": {
"outdoors": "Landschaft",
"dark": "Dunkel",
"satellite": "Satellit",
"streets": "Straßen"
}
},
"modals": {
"deleteUser": {
"created": "Erstellt"

View File

@ -522,6 +522,14 @@
"questions": "Any Questions or concerns, send an e-mail to",
"title": "{APPLICATION_NAME} is under maintenance"
},
"map": {
"styles": {
"outdoors": "Outdoors",
"dark": "Dark",
"satellite": "Satellite",
"streets": "Streets"
}
},
"modals": {
"deleteUser": {
"created": "Created"

View File

@ -35,40 +35,52 @@
<script>
import mapboxgl from 'mapbox-gl'
import { objectValuesToArray } from '../utils/utils'
export default {
name: 'Map',
data() {
return {
mapboxgl,
mapOptions: {
activeStyle: null,
}
},
computed: {
styles() {
return {
available: objectValuesToArray(this.availableStyles),
}
},
availableStyles() {
// https://docs.mapbox.com/api/maps/styles/
const availableStyles = {
outdoors: {
url: 'mapbox://styles/mapbox/outdoors-v12?optimize=true',
},
streets: {
url: 'mapbox://styles/mapbox/streets-v11?optimize=true',
},
satellite: {
url: 'mapbox://styles/mapbox/satellite-streets-v11?optimize=true',
},
dark: {
url: 'mapbox://styles/mapbox/dark-v10?optimize=true',
},
}
Object.keys(availableStyles).map((key) => {
availableStyles[key].title = this.$t('map.styles.' + key)
})
return availableStyles
},
mapOptions() {
return {
accessToken: this.$env.MAPBOX_TOKEN,
style: 'mapbox://styles/mapbox/outdoors-v12?optimize=true',
style: !this.activeStyle ? this.availableStyles.outdoors.url : this.activeStyle,
center: [10.452764, 51.165707], // center of Germany
zoom: 4,
maxZoom: 22,
},
styles: {
// https://docs.mapbox.com/api/maps/styles/
available: [
{
title: 'Outdoors',
url: 'mapbox://styles/mapbox/outdoors-v12?optimize=true',
},
{
title: 'Streets',
url: 'mapbox://styles/mapbox/streets-v11?optimize=true',
},
{
title: 'Satellite',
url: 'mapbox://styles/mapbox/satellite-streets-v11?optimize=true',
},
{
title: 'Dark',
url: 'mapbox://styles/mapbox/dark-v10?optimize=true',
},
],
},
}
}
},
},
methods: {
onMapLoad({ map }) {
@ -76,7 +88,7 @@ export default {
},
setStyle(url) {
this.map.setStyle(url)
this.mapOptions.style = url
this.activeStyle = url
},
},
}

5
webapp/utils/utils.js Normal file
View File

@ -0,0 +1,5 @@
export const objectValuesToArray = (obj) => {
return Object.keys(obj).map(function (key) {
return obj[key]
})
}