annotate client/src/components/map/Map.vue @ 5560:f2204f91d286

Join the log lines of imports to the log exports to recover data from them. Used in SR export to extract information that where in the meta json but now are only found in the log.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 09 Feb 2022 18:34:40 +0100
parents fb3e127bccb4
children 84d01a536bec
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
3177
fc008b32c593 client: layers: loading animation for refreshing layer sources
Markus Kottlaender <markus@intevation.de>
parents: 3166
diff changeset
18
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
19 &.nocursor
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
20 cursor: none
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
21 </style>
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
22
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
23 <script>
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
24 /* 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
25 * 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
26 *
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
27 * 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
28 * 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
29 *
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
30 * 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
31 * – Ö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
32 * 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
33 *
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
34 * Author(s):
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
35 * * 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
36 * * 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
37 */
5457
fb3e127bccb4 fixed linting errors
Thomas Junk <thomas.junk@intevation.de>
parents: 5456
diff changeset
38
fb3e127bccb4 fixed linting errors
Thomas Junk <thomas.junk@intevation.de>
parents: 5456
diff changeset
39 /*eslint no-unused-vars: ["error", { "argsIgnorePattern": "_" }]*/
fb3e127bccb4 fixed linting errors
Thomas Junk <thomas.junk@intevation.de>
parents: 5456
diff changeset
40
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
41 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
42 import { mapState } from "vuex";
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
43 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
44 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
45 import { displayError } from "@/lib/errors";
3079
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
46 import { pane } from "@/lib/mixins";
5076
96a544504818 move layer.js and styles.js to layers directory
Thomas Junk <thomas.junk@intevation.de>
parents: 4869
diff changeset
47 import { layerFactory } from "@/components/layers/layers";
4022
efe0904b1d45 Change of ECDIS no longer requires reload
Thomas Junk <thomas.junk@intevation.de>
parents: 4003
diff changeset
48 import { ImageWMS as ImageSource } from "ol/source";
5076
96a544504818 move layer.js and styles.js to layers directory
Thomas Junk <thomas.junk@intevation.de>
parents: 4869
diff changeset
49 import { styles } from "@/components/layers/styles";
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
50 import "ol/ol.css";
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
51
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
52 export default {
3079
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
53 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
54 components: {
3166
286c2e3cc105 client: moved Zoom component to map subdirectory
Markus Kottlaender <markus@intevation.de>
parents: 3165
diff changeset
55 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
56 },
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
57 data() {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
58 return {
3182
77fc44ad05e3 client: removed old splitscreen code
Markus Kottlaender <markus@intevation.de>
parents: 3181
diff changeset
59 map: null
3011
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 },
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
62 computed: {
4271
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4252
diff changeset
63 ...mapState("map", [
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4252
diff changeset
64 "initialLoad",
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4252
diff changeset
65 "extent",
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4252
diff changeset
66 "syncedMaps",
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4252
diff changeset
67 "syncedView",
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4252
diff changeset
68 "ongoingRefresh"
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4252
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 ...mapState("bottlenecks", ["selectedSurvey"]),
3079
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
71 ...mapState("fairwayprofile", ["additionalSurvey"]),
5288
48bef30cdb72 Client: limit displaying of error popup to only pdf-export mode(ECDIS layer)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5280
diff changeset
72 ...mapState("application", [
48bef30cdb72 Client: limit displaying of error popup to only pdf-export mode(ECDIS layer)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5280
diff changeset
73 "paneSetup",
48bef30cdb72 Client: limit displaying of error popup to only pdf-export mode(ECDIS layer)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5280
diff changeset
74 "paneRotate",
48bef30cdb72 Client: limit displaying of error popup to only pdf-export mode(ECDIS layer)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5280
diff changeset
75 "config",
48bef30cdb72 Client: limit displaying of error popup to only pdf-export mode(ECDIS layer)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5280
diff changeset
76 "ongoingPDFExport"
48bef30cdb72 Client: limit displaying of error popup to only pdf-export mode(ECDIS layer)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5280
diff changeset
77 ]),
3309
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3270
diff changeset
78 ...mapState("imports", ["selectedStretchId", "selectedSectionId"]),
3021
2e2a271c1026 client: fixed layer factory to actually serve different objects
Markus Kottlaender <markus@intevation.de>
parents: 3016
diff changeset
79 layers() {
3685
8775bea8042a client: layers: unset layer config on logout
Markus Kottlaender <markus@intevation.de>
parents: 3548
diff changeset
80 return layerFactory(this.paneId);
3021
2e2a271c1026 client: fixed layer factory to actually serve different objects
Markus Kottlaender <markus@intevation.de>
parents: 3016
diff changeset
81 },
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
82 hasActiveInteractions() {
3079
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
83 return (
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
84 this.map &&
3062
87e0422cffa7 client: draw/cut tools work now with multiple maps
Markus Kottlaender <markus@intevation.de>
parents: 3057
diff changeset
85 this.map
87e0422cffa7 client: draw/cut tools work now with multiple maps
Markus Kottlaender <markus@intevation.de>
parents: 3057
diff changeset
86 .getInteractions()
87e0422cffa7 client: draw/cut tools work now with multiple maps
Markus Kottlaender <markus@intevation.de>
parents: 3057
diff changeset
87 .getArray()
3079
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
88 .filter(
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
89 i =>
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
90 ["linetool", "polygontool", "cuttool"].includes(i.get("id")) &&
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
91 i.getActive()
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
92 ).length
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
93 );
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
94 }
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
95 },
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
96 watch: {
4271
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4252
diff changeset
97 ongoingRefresh() {
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4252
diff changeset
98 if (this.ongoingRefresh) return;
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4252
diff changeset
99 this.loadStyles();
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4252
diff changeset
100 },
3146
b6cc4838d2c0 client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents: 3109
diff changeset
101 paneSetup() {
3079
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
102 this.$nextTick(() => this.map.updateSize());
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
103 },
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
104 paneRotate() {
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
105 this.$nextTick(() => this.map.updateSize());
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
106 },
3086
a69a8deb56fe client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents: 3079
diff changeset
107 syncedMaps(syncedMaps) {
a69a8deb56fe client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents: 3079
diff changeset
108 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
109 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
110 } else {
a69a8deb56fe client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents: 3079
diff changeset
111 this.map.setView(
a69a8deb56fe client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents: 3079
diff changeset
112 new View({
4806
a905438a7935 map: disable rotation
Thomas Junk <thomas.junk@intevation.de>
parents: 4589
diff changeset
113 enableRotation: false,
3086
a69a8deb56fe client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents: 3079
diff changeset
114 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
115 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
116 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
117 projection: "EPSG:3857"
a69a8deb56fe client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents: 3079
diff changeset
118 })
a69a8deb56fe client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents: 3079
diff changeset
119 );
a69a8deb56fe client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents: 3079
diff changeset
120 }
a69a8deb56fe client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents: 3079
diff changeset
121 },
3079
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
122 selectedSurvey(survey) {
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
123 if (this.paneId === "main") {
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
124 if (survey) {
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
125 this.updateBottleneckFilter(survey.bottleneck_id, survey.date_info);
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
126 } else {
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
127 this.updateBottleneckFilter("does_not_exist", "1999-10-01");
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
128 }
3062
87e0422cffa7 client: draw/cut tools work now with multiple maps
Markus Kottlaender <markus@intevation.de>
parents: 3057
diff changeset
129 }
3079
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
130 },
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
131 additionalSurvey(survey) {
3146
b6cc4838d2c0 client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents: 3109
diff changeset
132 if (this.paneId === "compare-survey") {
3079
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
133 if (survey) {
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
134 this.updateBottleneckFilter(survey.bottleneck_id, survey.date_info);
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
135 } else {
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
136 this.updateBottleneckFilter("does_not_exist", "1999-10-01");
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
137 }
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
138 }
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
139 },
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
140 selectedStretchId(id) {
4496
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
141 let stretch = this.layers.get("STRETCHES");
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
142 stretch
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
143 .getSource()
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
144 .getFeatures()
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
145 .forEach(f => {
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
146 f.set("highlighted", false);
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
147 f.setStyle(null);
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
148 if (id === f.getId()) {
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
149 f.set("highlighted", true);
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
150 let highlight = new Style({
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
151 fill: new Fill({
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
152 color: this.colorLuminance(
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
153 stretch
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
154 .getStyle()
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
155 .getFill()
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
156 .getColor(),
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
157 0.3
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
158 )
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
159 }),
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
160 stroke: new Stroke({
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
161 color: this.colorLuminance(
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
162 stretch
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
163 .getStyle()
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
164 .getStroke()
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
165 .getColor(),
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
166 0.3
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
167 ),
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
168 width: 3
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
169 })
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
170 });
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
171 f.setStyle(highlight);
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
172 }
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
173 });
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
174 },
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
175 selectedSectionId(id) {
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
176 let section = this.layers.get("SECTIONS");
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
177 section
3079
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
178 .getSource()
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
179 .getFeatures()
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
180 .forEach(f => {
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
181 f.set("highlighted", false);
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
182 if (id === f.getId()) {
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
183 f.set("highlighted", true);
4496
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
184 let highlight = new Style({
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
185 fill: new Fill({
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
186 color: this.colorLuminance(
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
187 section
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
188 .getStyle()
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
189 .getFill()
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
190 .getColor(),
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
191 0.3
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
192 )
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
193 }),
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
194 stroke: new Stroke({
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
195 color: this.colorLuminance(
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
196 section
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
197 .getStyle()
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
198 .getStroke()
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
199 .getColor(),
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
200 0.3
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
201 ),
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
202 width: 4
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
203 })
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
204 });
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
205 f.setStyle(highlight);
3309
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3270
diff changeset
206 }
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3270
diff changeset
207 });
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
208 }
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
209 },
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
210 methods: {
4589
9cd00133dff9 client: fix highlighting of stretches and sections
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4524
diff changeset
211 colorLuminance(color, lum) {
9cd00133dff9 client: fix highlighting of stretches and sections
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4524
diff changeset
212 let [r, g, b, a] = color
9cd00133dff9 client: fix highlighting of stretches and sections
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4524
diff changeset
213 .substring(5, color.length - 1)
9cd00133dff9 client: fix highlighting of stretches and sections
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4524
diff changeset
214 .split(",")
9cd00133dff9 client: fix highlighting of stretches and sections
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4524
diff changeset
215 .map(e => Number(e));
9cd00133dff9 client: fix highlighting of stretches and sections
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4524
diff changeset
216 let [r1, g1, b1] = [r, g, b].map(e =>
9cd00133dff9 client: fix highlighting of stretches and sections
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4524
diff changeset
217 Math.round(Math.min(Math.max(0, e + e * lum), 255))
9cd00133dff9 client: fix highlighting of stretches and sections
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4524
diff changeset
218 );
9cd00133dff9 client: fix highlighting of stretches and sections
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4524
diff changeset
219 return `rgba(${r1},${g1},${b1},${a})`;
4496
8c98d801e62e Highlight sections and stretches on select.
Raimund Renkert <raimund@renkert.org>
parents: 4455
diff changeset
220 },
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
221 updateBottleneckFilter(bottleneck_id, datestr) {
4003
5d4edf268aec if no bottlenck is given the update bottleneck filter should not query the geoserver
Thomas Junk <thomas.junk@intevation.de>
parents: 3852
diff changeset
222 if (!bottleneck_id) return;
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
223 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
224 if (exists) {
3021
2e2a271c1026 client: fixed layer factory to actually serve different objects
Markus Kottlaender <markus@intevation.de>
parents: 3016
diff changeset
225 this.layers
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
226 .get("BOTTLENECKISOLINE")
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
227 .getSource()
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
228 .updateParams({
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
229 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
230 });
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
231 }
3021
2e2a271c1026 client: fixed layer factory to actually serve different objects
Markus Kottlaender <markus@intevation.de>
parents: 3016
diff changeset
232 this.layers.get("BOTTLENECKISOLINE").setVisible(exists);
3079
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
233 },
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
234 initMap() {
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
235 if (!this.syncedView) {
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
236 this.$store.commit(
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
237 "map/syncedView",
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
238 new View({
4806
a905438a7935 map: disable rotation
Thomas Junk <thomas.junk@intevation.de>
parents: 4589
diff changeset
239 enableRotation: false,
3079
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
240 center: [this.extent.lon, this.extent.lat],
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
241 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
242 zoom: this.extent.zoom,
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
243 projection: "EPSG:3857"
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
244 })
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
245 );
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
246 }
3181
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
247
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
248 // move to user specific default extent if map loads for the first time
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
249 // checking initialLoad will be obsolete once we abandoned the separated admin context
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
250 if (this.initialLoad) {
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
251 this.$store.commit("map/initialLoad", false);
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
252 var currentUser = this.$store.state.user.user;
4426
a769e14f4baf fix typo, encodeURIComponent only for username
Thomas Junk <thomas.junk@intevation.de>
parents: 4422
diff changeset
253 HTTP.get("/users/" + encodeURIComponent(`${currentUser}`), {
3181
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
254 headers: {
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
255 "X-Gemma-Auth": localStorage.getItem("token"),
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
256 "Content-type": "text/xml; charset=UTF-8"
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
257 }
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
258 })
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
259 .then(response => {
4422
562f9da8ba0b map: restore zoom to extent functionality
Thomas Junk <thomas.junk@intevation.de>
parents: 4421
diff changeset
260 this.mountMap();
3181
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
261 this.$store.dispatch("map/moveToBoundingBox", {
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
262 boundingBox: [
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
263 response.data.extent.x1,
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
264 response.data.extent.y1,
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
265 response.data.extent.x2,
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
266 response.data.extent.y2
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
267 ],
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
268 zoom: 17,
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
269 preventZoomOut: true,
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
270 duration: 0
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
271 });
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
272 })
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
273 .catch(error => {
4422
562f9da8ba0b map: restore zoom to extent functionality
Thomas Junk <thomas.junk@intevation.de>
parents: 4421
diff changeset
274 this.mountMap();
4869
6b054b91d9b2 backend not reachable as error message etd. Login adjusted
Thomas Junk <thomas.junk@intevation.de>
parents: 4868
diff changeset
275 let message = "Backend not reachable";
4868
008bc1ae8897 exception handling
Thomas Junk <thomas.junk@intevation.de>
parents: 4806
diff changeset
276 if (error.response) {
008bc1ae8897 exception handling
Thomas Junk <thomas.junk@intevation.de>
parents: 4806
diff changeset
277 const { status, data } = error.response;
008bc1ae8897 exception handling
Thomas Junk <thomas.junk@intevation.de>
parents: 4806
diff changeset
278 message = `${status}: ${data.message || data}`;
008bc1ae8897 exception handling
Thomas Junk <thomas.junk@intevation.de>
parents: 4806
diff changeset
279 }
3181
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
280 displayError({
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
281 title: this.$gettext("Backend Error"),
4868
008bc1ae8897 exception handling
Thomas Junk <thomas.junk@intevation.de>
parents: 4806
diff changeset
282 message: message
3181
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
283 });
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
284 });
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
285 } else {
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
286 this.mountMap();
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
287 }
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
288 },
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
289 mountMap() {
4022
efe0904b1d45 Change of ECDIS no longer requires reload
Thomas Junk <thomas.junk@intevation.de>
parents: 4003
diff changeset
290 const source = new ImageSource({
efe0904b1d45 Change of ECDIS no longer requires reload
Thomas Junk <thomas.junk@intevation.de>
parents: 4003
diff changeset
291 preload: 1,
efe0904b1d45 Change of ECDIS no longer requires reload
Thomas Junk <thomas.junk@intevation.de>
parents: 4003
diff changeset
292 url: this.config.ecdis_wms_url,
efe0904b1d45 Change of ECDIS no longer requires reload
Thomas Junk <thomas.junk@intevation.de>
parents: 4003
diff changeset
293 crossOrigin: "anonymous",
efe0904b1d45 Change of ECDIS no longer requires reload
Thomas Junk <thomas.junk@intevation.de>
parents: 4003
diff changeset
294 params: JSON.parse(this.config.ecdis_wms_params)
efe0904b1d45 Change of ECDIS no longer requires reload
Thomas Junk <thomas.junk@intevation.de>
parents: 4003
diff changeset
295 });
5457
fb3e127bccb4 fixed linting errors
Thomas Junk <thomas.junk@intevation.de>
parents: 5456
diff changeset
296 source.on("imageloaderror", _ => {
5288
48bef30cdb72 Client: limit displaying of error popup to only pdf-export mode(ECDIS layer)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5280
diff changeset
297 if (this.ongoingPDFExport) {
48bef30cdb72 Client: limit displaying of error popup to only pdf-export mode(ECDIS layer)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5280
diff changeset
298 displayError({
48bef30cdb72 Client: limit displaying of error popup to only pdf-export mode(ECDIS layer)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5280
diff changeset
299 title: this.$gettext("Loading Error"),
48bef30cdb72 Client: limit displaying of error popup to only pdf-export mode(ECDIS layer)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5280
diff changeset
300 message: this.$gettext(
48bef30cdb72 Client: limit displaying of error popup to only pdf-export mode(ECDIS layer)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5280
diff changeset
301 "The ECDIS chart could not be loaded completely, the map might be corrupted. Please retry later"
48bef30cdb72 Client: limit displaying of error popup to only pdf-export mode(ECDIS layer)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5280
diff changeset
302 ),
48bef30cdb72 Client: limit displaying of error popup to only pdf-export mode(ECDIS layer)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5280
diff changeset
303 options: {
48bef30cdb72 Client: limit displaying of error popup to only pdf-export mode(ECDIS layer)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5280
diff changeset
304 timeout: 0,
48bef30cdb72 Client: limit displaying of error popup to only pdf-export mode(ECDIS layer)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5280
diff changeset
305 showProgressBar: false,
48bef30cdb72 Client: limit displaying of error popup to only pdf-export mode(ECDIS layer)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5280
diff changeset
306 closeOnClick: true,
48bef30cdb72 Client: limit displaying of error popup to only pdf-export mode(ECDIS layer)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5280
diff changeset
307 pauseOnHover: true,
48bef30cdb72 Client: limit displaying of error popup to only pdf-export mode(ECDIS layer)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5280
diff changeset
308 bodyMaxLength: 1024
48bef30cdb72 Client: limit displaying of error popup to only pdf-export mode(ECDIS layer)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5280
diff changeset
309 }
48bef30cdb72 Client: limit displaying of error popup to only pdf-export mode(ECDIS layer)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5280
diff changeset
310 });
48bef30cdb72 Client: limit displaying of error popup to only pdf-export mode(ECDIS layer)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5280
diff changeset
311 }
5280
03b8fe8467de client: display toast message due to loading layer error ("INLANDECDIS")
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5076
diff changeset
312 });
5288
48bef30cdb72 Client: limit displaying of error popup to only pdf-export mode(ECDIS layer)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5280
diff changeset
313
4022
efe0904b1d45 Change of ECDIS no longer requires reload
Thomas Junk <thomas.junk@intevation.de>
parents: 4003
diff changeset
314 this.layers.get("INLANDECDIS").setSource(source);
3079
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
315 this.map = new Map({
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
316 layers: this.layers.config,
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
317 target: "map-" + this.paneId,
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
318 controls: [],
3086
a69a8deb56fe client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents: 3079
diff changeset
319 view:
a69a8deb56fe client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents: 3079
diff changeset
320 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
321 ? this.syncedView
a69a8deb56fe client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents: 3079
diff changeset
322 : new View({
a69a8deb56fe client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents: 3079
diff changeset
323 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
324 minZoom: 5,
a69a8deb56fe client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents: 3079
diff changeset
325 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
326 projection: "EPSG:3857"
a69a8deb56fe client: added button to sync/unsync maps when comparing sounding results
Markus Kottlaender <markus@intevation.de>
parents: 3079
diff changeset
327 })
3079
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
328 });
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
329 this.map.getLayer = id => this.layers.get(id);
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
330 // store map position on every move
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
331 // 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
332 this.map.on("moveend", event => {
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
333 const center = event.map.getView().getCenter();
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
334 this.$store.commit("map/extent", {
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
335 lat: center[1],
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
336 lon: center[0],
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
337 zoom: event.map.getView().getZoom()
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
338 });
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
339 });
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
340 this.$store.dispatch("map/openLayersMap", this.map);
57255fda7594 client: compare surveys on map
Markus Kottlaender <markus@intevation.de>
parents: 3077
diff changeset
341 this.$store.dispatch("map/initIdentifyTool", this.map);
4271
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4252
diff changeset
342 },
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4252
diff changeset
343 loadStyles() {
4507
a912b1458834 client: Map: use rgba for styling layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4496
diff changeset
344 const getRGBA = color => {
a912b1458834 client: Map: use rgba for styling layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4496
diff changeset
345 return (
a912b1458834 client: Map: use rgba for styling layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4496
diff changeset
346 "rgba(" +
a912b1458834 client: Map: use rgba for styling layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4496
diff changeset
347 parseInt(color.slice(1, 3), 16) +
a912b1458834 client: Map: use rgba for styling layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4496
diff changeset
348 ", " +
a912b1458834 client: Map: use rgba for styling layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4496
diff changeset
349 parseInt(color.slice(3, 5), 16) +
a912b1458834 client: Map: use rgba for styling layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4496
diff changeset
350 ", " +
a912b1458834 client: Map: use rgba for styling layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4496
diff changeset
351 parseInt(color.slice(5, 7), 16) +
4524
7cca4aa9a04a Client: Map: improve rgba() values calculation for styling
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4507
diff changeset
352 ", " +
7cca4aa9a04a Client: Map: improve rgba() values calculation for styling
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4507
diff changeset
353 (color.length > 7 ? parseInt(color.slice(7, 9), 16) / 255 : "1") +
4507
a912b1458834 client: Map: use rgba for styling layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4496
diff changeset
354 ")"
a912b1458834 client: Map: use rgba for styling layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4496
diff changeset
355 );
a912b1458834 client: Map: use rgba for styling layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4496
diff changeset
356 };
4271
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4252
diff changeset
357 // load configured bottleneck colors
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4252
diff changeset
358 HTTP.get("/system/settings", {
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4252
diff changeset
359 headers: { "X-Gemma-Auth": localStorage.getItem("token") }
4455
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
360 }).then(response => {
4507
a912b1458834 client: Map: use rgba for styling layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4496
diff changeset
361 let btlnStrokeC = getRGBA(response.data.bottlenecks_stroke),
a912b1458834 client: Map: use rgba for styling layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4496
diff changeset
362 btlnFillC = getRGBA(response.data.bottlenecks_fill),
a912b1458834 client: Map: use rgba for styling layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4496
diff changeset
363 strFillC = getRGBA(response.data.stretches_fill),
a912b1458834 client: Map: use rgba for styling layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4496
diff changeset
364 strStrokeC = getRGBA(response.data.stretches_stroke),
a912b1458834 client: Map: use rgba for styling layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4496
diff changeset
365 secStrokeC = getRGBA(response.data.sections_stroke),
a912b1458834 client: Map: use rgba for styling layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4496
diff changeset
366 secFillC = getRGBA(response.data.sections_fill),
a912b1458834 client: Map: use rgba for styling layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4496
diff changeset
367 fwd1StrokeC = getRGBA(response.data.fairwaydimensionslos1_stroke),
a912b1458834 client: Map: use rgba for styling layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4496
diff changeset
368 fwd1FillC = getRGBA(response.data.fairwaydimensionslos1_fill),
a912b1458834 client: Map: use rgba for styling layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4496
diff changeset
369 fwd2StrokeC = getRGBA(response.data.fairwaydimensionslos2_stroke),
a912b1458834 client: Map: use rgba for styling layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4496
diff changeset
370 fwd2FillC = getRGBA(response.data.fairwaydimensionslos2_fill),
a912b1458834 client: Map: use rgba for styling layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4496
diff changeset
371 fwd3StrokeC = getRGBA(response.data.fairwaydimensionslos3_stroke),
a912b1458834 client: Map: use rgba for styling layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4496
diff changeset
372 fwd3FillC = getRGBA(response.data.fairwaydimensionslos3_fill),
a912b1458834 client: Map: use rgba for styling layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4496
diff changeset
373 wwpStokeC = getRGBA(response.data.waterwayprofiles_stroke);
4455
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
374 let btlnStyle = new Style({
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
375 stroke: new Stroke({
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
376 color: btlnStrokeC,
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
377 width: 4
4271
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4252
diff changeset
378 }),
4455
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
379 fill: new Fill({
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
380 color: btlnFillC
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
381 })
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
382 }),
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
383 strStyle = new Style({
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
384 stroke: new Stroke({
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
385 color: strStrokeC,
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
386 width: 2
4271
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4252
diff changeset
387 }),
4455
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
388 fill: new Fill({
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
389 color: strFillC
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
390 })
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
391 }),
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
392 secStyle = new Style({
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
393 stroke: new Stroke({
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
394 color: secStrokeC,
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
395 width: 5
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
396 }),
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
397 fill: new Fill({
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
398 color: secFillC
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
399 })
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
400 }),
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
401 fwd1Style = new Style({
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
402 stroke: new Stroke({
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
403 lineDash: [2, 4],
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
404 lineCap: "round",
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
405 color: fwd1StrokeC,
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
406 width: 2
4271
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4252
diff changeset
407 }),
4455
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
408 fill: new Fill({
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
409 color: fwd1FillC
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
410 })
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
411 }),
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
412 fwd2Style = new Style({
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
413 stroke: new Stroke({
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
414 lineDash: [3, 6],
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
415 lineCap: "round",
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
416 color: fwd2StrokeC,
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
417 width: 2
4271
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4252
diff changeset
418 }),
4455
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
419 fill: new Fill({
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
420 color: fwd2FillC
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
421 })
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
422 }),
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
423 fwd3Style = new Style({
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
424 stroke: new Stroke({
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
425 color: fwd3StrokeC,
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
426 width: 2
4271
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4252
diff changeset
427 }),
4455
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
428 fill: new Fill({
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
429 color: fwd3FillC
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
430 })
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
431 }),
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
432 wwpStyle = new Style({
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
433 stroke: new Stroke({
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
434 color: wwpStokeC,
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
435 lineDash: [5, 5],
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
436 width: 2
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
437 })
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
438 });
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
439 this.layers.get("WATERWAYPROFILES").setStyle(wwpStyle);
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
440 this.layers
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
441 .get("FAIRWAYDIMENSIONSLOS1")
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
442 .setStyle(() => [fwd1Style, styles.textFW1]);
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
443 this.layers
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
444 .get("FAIRWAYDIMENSIONSLOS2")
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
445 .setStyle(() => [fwd2Style, styles.textFW2]);
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
446 this.layers
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
447 .get("FAIRWAYDIMENSIONSLOS3")
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
448 .setStyle(() => [fwd3Style, styles.textFW3]);
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
449 this.layers.get("SECTIONS").setStyle(secStyle);
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
450 this.layers.get("STRETCHES").setStyle(strStyle);
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
451 this.layers.get("BOTTLENECKS").setStyle(btlnStyle);
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
452 this.$store.commit("gauges/deleteNashSutcliffeCache");
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
453 this.$store.dispatch("map/refreshLayers");
112120ed510d removed empty catch statement
Thomas Junk <thomas.junk@intevation.de>
parents: 4454
diff changeset
454 });
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
455 }
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
456 },
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
457 mounted() {
3102
a9c7825303b3 layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents: 3086
diff changeset
458 // 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
459 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
460 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
461 })
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
462 .then(response => {
3270
d7bc51fd50b0 client: map layers: integrated osm layer into main layer configuration file
Markus Kottlaender <markus@intevation.de>
parents: 3182
diff changeset
463 if (response.data["osm-url"]) {
d7bc51fd50b0 client: map layers: integrated osm layer into main layer configuration file
Markus Kottlaender <markus@intevation.de>
parents: 3182
diff changeset
464 this.layers
d7bc51fd50b0 client: map layers: integrated osm layer into main layer configuration file
Markus Kottlaender <markus@intevation.de>
parents: 3182
diff changeset
465 .get("OPENSTREETMAP")
d7bc51fd50b0 client: map layers: integrated osm layer into main layer configuration file
Markus Kottlaender <markus@intevation.de>
parents: 3182
diff changeset
466 .getSource()
d7bc51fd50b0 client: map layers: integrated osm layer into main layer configuration file
Markus Kottlaender <markus@intevation.de>
parents: 3182
diff changeset
467 .setUrl(response.data["osm-url"]);
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
468 }
3102
a9c7825303b3 layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents: 3086
diff changeset
469 this.initMap();
a9c7825303b3 layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents: 3086
diff changeset
470
a9c7825303b3 layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents: 3086
diff changeset
471 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
472 this.updateBottleneckFilter(
a9c7825303b3 layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents: 3086
diff changeset
473 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
474 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
475 );
a9c7825303b3 layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents: 3086
diff changeset
476 }
3146
b6cc4838d2c0 client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents: 3109
diff changeset
477 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
478 this.updateBottleneckFilter(
a9c7825303b3 layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents: 3086
diff changeset
479 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
480 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
481 );
a9c7825303b3 layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents: 3086
diff changeset
482 }
4271
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4252
diff changeset
483 this.loadStyles();
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
484 })
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
485 .catch(error => {
4869
6b054b91d9b2 backend not reachable as error message etd. Login adjusted
Thomas Junk <thomas.junk@intevation.de>
parents: 4868
diff changeset
486 let message = "Backend not reachable";
4868
008bc1ae8897 exception handling
Thomas Junk <thomas.junk@intevation.de>
parents: 4806
diff changeset
487 if (error.response) {
008bc1ae8897 exception handling
Thomas Junk <thomas.junk@intevation.de>
parents: 4806
diff changeset
488 const { status, data } = error.response;
008bc1ae8897 exception handling
Thomas Junk <thomas.junk@intevation.de>
parents: 4806
diff changeset
489 message = `${status}: ${data.message || data}`;
008bc1ae8897 exception handling
Thomas Junk <thomas.junk@intevation.de>
parents: 4806
diff changeset
490 }
3102
a9c7825303b3 layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents: 3086
diff changeset
491 displayError({
4868
008bc1ae8897 exception handling
Thomas Junk <thomas.junk@intevation.de>
parents: 4806
diff changeset
492 title: this.$gettext("Backend Error"),
008bc1ae8897 exception handling
Thomas Junk <thomas.junk@intevation.de>
parents: 4806
diff changeset
493 message: message
3102
a9c7825303b3 layers: Code for provisioning a dynamic URL for OSM etd.
Thomas Junk <thomas.junk@intevation.de>
parents: 3086
diff changeset
494 });
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
495 });
3052
01210542e028 client: remove openlayers map objects after removing a map component from the view
Markus Kottlaender <markus@intevation.de>
parents: 3051
diff changeset
496 },
01210542e028 client: remove openlayers map objects after removing a map component from the view
Markus Kottlaender <markus@intevation.de>
parents: 3051
diff changeset
497 destroyed() {
01210542e028 client: remove openlayers map objects after removing a map component from the view
Markus Kottlaender <markus@intevation.de>
parents: 3051
diff changeset
498 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
499 }
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
500 };
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
501 </script>