Mercurial > gemma
annotate client/src/components/map/Map.vue @ 3166:286c2e3cc105
client: moved Zoom component to map subdirectory
author | Markus Kottlaender <markus@intevation.de> |
---|---|
date | Mon, 06 May 2019 14:29:02 +0200 |
parents | 891705431545 |
children | fc008b32c593 |
rev | line source |
---|---|
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
1 <template> |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
2 <div |
3079
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
3 :id="'map-' + paneId" |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
4 :class="['map', { nocursor: this.hasActiveInteractions }]" |
3165
891705431545
client: map zoom controls: each map has it's own independent contrls now
Markus Kottlaender <markus@intevation.de>
parents:
3146
diff
changeset
|
5 > |
891705431545
client: map zoom controls: each map has it's own independent contrls now
Markus Kottlaender <markus@intevation.de>
parents:
3146
diff
changeset
|
6 <Zoom :map="map" /> |
891705431545
client: map zoom controls: each map has it's own independent contrls now
Markus Kottlaender <markus@intevation.de>
parents:
3146
diff
changeset
|
7 </div> |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
8 </template> |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
9 |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
10 <style lang="sass" scoped> |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
11 .map |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
12 width: 100% |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
13 height: 100% |
3079
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
14 background-color: #eee |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
15 background-image: linear-gradient(45deg, #e8e8e8 25%, transparent 25%, transparent 75%, #e8e8e8 75%, #e8e8e8), linear-gradient(45deg, #e8e8e8 25%, transparent 25%, transparent 75%, #e8e8e8 75%, #e8e8e8) |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
16 background-size: 20px 20px |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
17 background-position: 0 0, 10px 10px |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
18 &.nocursor |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
19 cursor: none |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
20 </style> |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
21 |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
22 <script> |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
23 /* This is Free Software under GNU Affero General Public License v >= 3.0 |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
24 * without warranty, see README.md and license for details. |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
25 * |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
26 * SPDX-License-Identifier: AGPL-3.0-or-later |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
27 * License-Filename: LICENSES/AGPL-3.0.txt |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
28 * |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
29 * Copyright (C) 2018, 2019 by via donau |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
30 * – Österreichische Wasserstraßen-Gesellschaft mbH |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
31 * Software engineering by Intevation GmbH |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
32 * |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
33 * Author(s): |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
34 * * Thomas Junk <thomas.junk@intevation.de> |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
35 * * Bernhard E. Reiter <bernhard.reiter@intevation.de> |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
36 */ |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
37 import { HTTP } from "@/lib/http"; |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
38 import { mapState } from "vuex"; |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
39 import { Map, View } from "ol"; |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
40 import { Stroke, Style, Fill } from "ol/style"; |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
41 import { displayError } from "@/lib/errors"; |
3079
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
42 import { pane } from "@/lib/mixins"; |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
43 import layers from "@/components/map/layers"; |
3102
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
44 import { Tile as TileLayer } from "ol/layer"; |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
45 import "ol/ol.css"; |
3102
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
46 import OSM from "ol/source/OSM"; |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
47 |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
48 /* for the sake of debugging */ |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
49 /* eslint-disable no-console */ |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
50 export default { |
3079
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
51 mixins: [pane], |
3165
891705431545
client: map zoom controls: each map has it's own independent contrls now
Markus Kottlaender <markus@intevation.de>
parents:
3146
diff
changeset
|
52 components: { |
3166
286c2e3cc105
client: moved Zoom component to map subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
3165
diff
changeset
|
53 Zoom: () => import("@/components/map/Zoom") |
3165
891705431545
client: map zoom controls: each map has it's own independent contrls now
Markus Kottlaender <markus@intevation.de>
parents:
3146
diff
changeset
|
54 }, |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
55 data() { |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
56 return { |
3016
083cd270bdfd
client: splitview: implemented rotation mechanism
Markus Kottlaender <markus@intevation.de>
parents:
3011
diff
changeset
|
57 map: null, |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
58 splitscreen: false |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
59 }; |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
60 }, |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
61 computed: { |
3086
a69a8deb56fe
client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents:
3079
diff
changeset
|
62 ...mapState("map", ["initialLoad", "extent", "syncedMaps", "syncedView"]), |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
63 ...mapState("bottlenecks", ["selectedSurvey"]), |
3079
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
64 ...mapState("fairwayprofile", ["additionalSurvey"]), |
3146
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3109
diff
changeset
|
65 ...mapState("application", ["paneSetup", "paneRotate"]), |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
66 ...mapState("imports", ["selectedStretchId"]), |
3021
2e2a271c1026
client: fixed layer factory to actually serve different objects
Markus Kottlaender <markus@intevation.de>
parents:
3016
diff
changeset
|
67 layers() { |
2e2a271c1026
client: fixed layer factory to actually serve different objects
Markus Kottlaender <markus@intevation.de>
parents:
3016
diff
changeset
|
68 return layers(); |
2e2a271c1026
client: fixed layer factory to actually serve different objects
Markus Kottlaender <markus@intevation.de>
parents:
3016
diff
changeset
|
69 }, |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
70 hasActiveInteractions() { |
3079
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
71 return ( |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
72 this.map && |
3062
87e0422cffa7
client: draw/cut tools work now with multiple maps
Markus Kottlaender <markus@intevation.de>
parents:
3057
diff
changeset
|
73 this.map |
87e0422cffa7
client: draw/cut tools work now with multiple maps
Markus Kottlaender <markus@intevation.de>
parents:
3057
diff
changeset
|
74 .getInteractions() |
87e0422cffa7
client: draw/cut tools work now with multiple maps
Markus Kottlaender <markus@intevation.de>
parents:
3057
diff
changeset
|
75 .getArray() |
3079
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
76 .filter( |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
77 i => |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
78 ["linetool", "polygontool", "cuttool"].includes(i.get("id")) && |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
79 i.getActive() |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
80 ).length |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
81 ); |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
82 } |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
83 }, |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
84 watch: { |
3146
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3109
diff
changeset
|
85 paneSetup() { |
3079
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
86 this.$nextTick(() => this.map.updateSize()); |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
87 }, |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
88 paneRotate() { |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
89 this.$nextTick(() => this.map.updateSize()); |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
90 }, |
3086
a69a8deb56fe
client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents:
3079
diff
changeset
|
91 syncedMaps(syncedMaps) { |
a69a8deb56fe
client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents:
3079
diff
changeset
|
92 if (syncedMaps.includes(this.paneId) || this.paneId === "main") { |
a69a8deb56fe
client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents:
3079
diff
changeset
|
93 this.map.setView(this.syncedView); |
a69a8deb56fe
client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents:
3079
diff
changeset
|
94 } else { |
a69a8deb56fe
client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents:
3079
diff
changeset
|
95 this.map.setView( |
a69a8deb56fe
client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents:
3079
diff
changeset
|
96 new View({ |
a69a8deb56fe
client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents:
3079
diff
changeset
|
97 center: [this.extent.lon, this.extent.lat], |
a69a8deb56fe
client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents:
3079
diff
changeset
|
98 minZoom: 5, // restrict zooming out to ~size of Europe for width 1000px |
a69a8deb56fe
client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents:
3079
diff
changeset
|
99 zoom: this.extent.zoom, |
a69a8deb56fe
client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents:
3079
diff
changeset
|
100 projection: "EPSG:3857" |
a69a8deb56fe
client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents:
3079
diff
changeset
|
101 }) |
a69a8deb56fe
client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents:
3079
diff
changeset
|
102 ); |
a69a8deb56fe
client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents:
3079
diff
changeset
|
103 } |
a69a8deb56fe
client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents:
3079
diff
changeset
|
104 }, |
3079
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
105 selectedSurvey(survey) { |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
106 if (this.paneId === "main") { |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
107 if (survey) { |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
108 this.updateBottleneckFilter(survey.bottleneck_id, survey.date_info); |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
109 } else { |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
110 this.updateBottleneckFilter("does_not_exist", "1999-10-01"); |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
111 } |
3062
87e0422cffa7
client: draw/cut tools work now with multiple maps
Markus Kottlaender <markus@intevation.de>
parents:
3057
diff
changeset
|
112 } |
3079
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
113 }, |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
114 additionalSurvey(survey) { |
3146
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3109
diff
changeset
|
115 if (this.paneId === "compare-survey") { |
3079
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
116 if (survey) { |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
117 this.updateBottleneckFilter(survey.bottleneck_id, survey.date_info); |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
118 } else { |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
119 this.updateBottleneckFilter("does_not_exist", "1999-10-01"); |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
120 } |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
121 } |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
122 }, |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
123 selectedStretchId(id) { |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
124 this.layers |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
125 .get("STRETCHES") |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
126 .getSource() |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
127 .getFeatures() |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
128 .forEach(f => { |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
129 f.set("highlighted", false); |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
130 if (id === f.getId()) { |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
131 f.set("highlighted", true); |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
132 } |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
133 }); |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
134 } |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
135 }, |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
136 methods: { |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
137 updateBottleneckFilter(bottleneck_id, datestr) { |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
138 const exists = bottleneck_id != "does_not_exist"; |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
139 |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
140 if (exists) { |
3021
2e2a271c1026
client: fixed layer factory to actually serve different objects
Markus Kottlaender <markus@intevation.de>
parents:
3016
diff
changeset
|
141 this.layers |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
142 .get("BOTTLENECKISOLINE") |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
143 .getSource() |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
144 .updateParams({ |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
145 cql_filter: `date_info='${datestr}' AND bottleneck_id='${bottleneck_id}'` |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
146 }); |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
147 } |
3021
2e2a271c1026
client: fixed layer factory to actually serve different objects
Markus Kottlaender <markus@intevation.de>
parents:
3016
diff
changeset
|
148 this.layers.get("BOTTLENECKISOLINE").setVisible(exists); |
3079
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
149 }, |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
150 initMap() { |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
151 if (!this.syncedView) { |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
152 this.$store.commit( |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
153 "map/syncedView", |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
154 new View({ |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
155 center: [this.extent.lon, this.extent.lat], |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
156 minZoom: 5, // restrict zooming out to ~size of Europe for width 1000px |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
157 zoom: this.extent.zoom, |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
158 projection: "EPSG:3857" |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
159 }) |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
160 ); |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
161 } |
3079
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
162 this.map = new Map({ |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
163 layers: this.layers.config, |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
164 target: "map-" + this.paneId, |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
165 controls: [], |
3086
a69a8deb56fe
client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents:
3079
diff
changeset
|
166 view: |
a69a8deb56fe
client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents:
3079
diff
changeset
|
167 this.syncedMaps.includes(this.paneId) || this.paneId === "main" |
a69a8deb56fe
client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents:
3079
diff
changeset
|
168 ? this.syncedView |
a69a8deb56fe
client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents:
3079
diff
changeset
|
169 : new View({ |
a69a8deb56fe
client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents:
3079
diff
changeset
|
170 center: [this.extent.lon, this.extent.lat], |
a69a8deb56fe
client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents:
3079
diff
changeset
|
171 minZoom: 5, |
a69a8deb56fe
client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents:
3079
diff
changeset
|
172 zoom: this.extent.zoom, |
a69a8deb56fe
client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents:
3079
diff
changeset
|
173 projection: "EPSG:3857" |
a69a8deb56fe
client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents:
3079
diff
changeset
|
174 }) |
3079
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
175 }); |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
176 this.map.getLayer = id => this.layers.get(id); |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
177 |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
178 // store map position on every move |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
179 // will be obsolete once we abandoned the separated admin context |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
180 this.map.on("moveend", event => { |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
181 const center = event.map.getView().getCenter(); |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
182 this.$store.commit("map/extent", { |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
183 lat: center[1], |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
184 lon: center[0], |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
185 zoom: event.map.getView().getZoom() |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
186 }); |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
187 }); |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
188 this.$store.dispatch("map/openLayersMap", this.map); |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
189 |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
190 // move to user specific default extent if map loads for the first time |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
191 // checking initialLoad will be obsolete once we abandoned the separated admin context |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
192 if (this.initialLoad) { |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
193 this.$store.commit("map/initialLoad", false); |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
194 var currentUser = this.$store.state.user.user; |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
195 HTTP.get("/users/" + currentUser, { |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
196 headers: { |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
197 "X-Gemma-Auth": localStorage.getItem("token"), |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
198 "Content-type": "text/xml; charset=UTF-8" |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
199 } |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
200 }) |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
201 .then(response => { |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
202 this.$store.dispatch("map/moveToBoundingBox", { |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
203 boundingBox: [ |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
204 response.data.extent.x1, |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
205 response.data.extent.y1, |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
206 response.data.extent.x2, |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
207 response.data.extent.y2 |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
208 ], |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
209 zoom: 17, |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
210 preventZoomOut: true |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
211 }); |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
212 }) |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
213 .catch(error => { |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
214 const { status, data } = error.response; |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
215 displayError({ |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
216 title: this.$gettext("Backend Error"), |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
217 message: `${status}: ${data.message || data}` |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
218 }); |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
219 }); |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
220 } |
3079
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
221 |
57255fda7594
client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents:
3077
diff
changeset
|
222 this.$store.dispatch("map/initIdentifyTool", this.map); |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
223 } |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
224 }, |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
225 mounted() { |
3102
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
226 // ToDo set path to correct endpoint in order to retrieve an OSM URL |
3104
19fc84a98479
Added "published-config" field to configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3102
diff
changeset
|
227 HTTP.get("/system/config", { |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
228 headers: { "X-Gemma-Auth": localStorage.getItem("token") } |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
229 }) |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
230 .then(response => { |
3109
973312bb77c6
Client: Fixed usage of published config to configure the OSM server URL.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3104
diff
changeset
|
231 const url = response.data["osm-url"]; |
3102
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
232 const config = {}; |
3109
973312bb77c6
Client: Fixed usage of published config to configure the OSM server URL.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3104
diff
changeset
|
233 if (url) { |
973312bb77c6
Client: Fixed usage of published config to configure the OSM server URL.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3104
diff
changeset
|
234 config["url"] = url; |
973312bb77c6
Client: Fixed usage of published config to configure the OSM server URL.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3104
diff
changeset
|
235 } |
3102
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
236 this.layers.config.unshift( |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
237 new TileLayer({ |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
238 id: "OPENSTREETMAP", |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
239 label: "Open Streetmap", |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
240 visible: true, |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
241 source: new OSM(config) |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
242 }) |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
243 ); |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
244 this.initMap(); |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
245 |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
246 if (this.selectedSurvey && this.paneId === "main") { |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
247 this.updateBottleneckFilter( |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
248 this.selectedSurvey.bottleneck_id, |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
249 this.selectedSurvey.date_info |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
250 ); |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
251 } |
3146
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3109
diff
changeset
|
252 if (this.additionalSurvey && this.paneId === "compare-survey") { |
3102
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
253 this.updateBottleneckFilter( |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
254 this.additionalSurvey.bottleneck_id, |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
255 this.additionalSurvey.date_info |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
256 ); |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
257 } |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
258 // load configured bottleneck colors |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
259 HTTP.get("/system/style/Bottlenecks/stroke", { |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
260 headers: { "X-Gemma-Auth": localStorage.getItem("token") } |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
261 }) |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
262 .then(response => { |
3102
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
263 let btlnStrokeC = response.data.code; |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
264 HTTP.get("/system/style/Bottlenecks/fill", { |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
265 headers: { "X-Gemma-Auth": localStorage.getItem("token") } |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
266 }) |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
267 .then(response => { |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
268 let btlnFillC = response.data.code; |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
269 var newStyle = new Style({ |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
270 stroke: new Stroke({ |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
271 color: btlnStrokeC, |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
272 width: 4 |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
273 }), |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
274 fill: new Fill({ |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
275 color: btlnFillC |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
276 }) |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
277 }); |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
278 this.layers.get("BOTTLENECKS").setStyle(newStyle); |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
279 }) |
3102
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
280 .catch(error => { |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
281 console.log(error); |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
282 }); |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
283 }) |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
284 .catch(error => { |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
285 console.log(error); |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
286 }); |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
287 }) |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
288 .catch(error => { |
3102
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
289 const { status, data } = error.response; |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
290 displayError({ |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
291 title: "Backend Error", |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
292 message: `${status}: ${data.message || data}` |
a9c7825303b3
layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
3086
diff
changeset
|
293 }); |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
294 }); |
3052
01210542e028
client: remove openlayers map objects after removing a map component from the view
Markus Kottlaender <markus@intevation.de>
parents:
3051
diff
changeset
|
295 }, |
01210542e028
client: remove openlayers map objects after removing a map component from the view
Markus Kottlaender <markus@intevation.de>
parents:
3051
diff
changeset
|
296 destroyed() { |
01210542e028
client: remove openlayers map objects after removing a map component from the view
Markus Kottlaender <markus@intevation.de>
parents:
3051
diff
changeset
|
297 this.$store.commit("map/removeOpenLayersMap", this.map); |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
298 } |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
299 }; |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
300 </script> |