annotate client/src/store/fairway.js @ 2624:9dbaf69c7a66

Improve geoserver config to better calculate bounding boxes * Disable the use of estimated extents for the postgis storage configuration for geoserver, which is set via the gemma middleware. This way we are able to get better bounding boxes for many layers where the postgis function `ST_EstimatedExtent()` would be far off.
author Bernhard Reiter <bernhard@intevation.de>
date Wed, 13 Mar 2019 16:18:39 +0100
parents 1686ec185155
children a7e31594959d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1362
ca33ad696594 remove the first empyty lines
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1361
diff changeset
1 /* This is Free Software under GNU Affero General Public License v >= 3.0
1019
ca628dce90dd Licensing information added
Thomas Junk <thomas.junk@intevation.de>
parents: 1015
diff changeset
2 * without warranty, see README.md and license for details.
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1296
diff changeset
3 *
1019
ca628dce90dd Licensing information added
Thomas Junk <thomas.junk@intevation.de>
parents: 1015
diff changeset
4 * SPDX-License-Identifier: AGPL-3.0-or-later
ca628dce90dd Licensing information added
Thomas Junk <thomas.junk@intevation.de>
parents: 1015
diff changeset
5 * License-Filename: LICENSES/AGPL-3.0.txt
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1296
diff changeset
6 *
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1296
diff changeset
7 * Copyright (C) 2018 by via donau
1019
ca628dce90dd Licensing information added
Thomas Junk <thomas.junk@intevation.de>
parents: 1015
diff changeset
8 * – Österreichische Wasserstraßen-Gesellschaft mbH
ca628dce90dd Licensing information added
Thomas Junk <thomas.junk@intevation.de>
parents: 1015
diff changeset
9 * Software engineering by Intevation GmbH
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1296
diff changeset
10 *
1019
ca628dce90dd Licensing information added
Thomas Junk <thomas.junk@intevation.de>
parents: 1015
diff changeset
11 * Author(s):
ca628dce90dd Licensing information added
Thomas Junk <thomas.junk@intevation.de>
parents: 1015
diff changeset
12 * Thomas Junk <thomas.junk@intevation.de>
1044
f8a4ec146d47 fixed Vue reactivity issue (splitscreen button)
Markus Kottlaender <markus@intevation.de>
parents: 1038
diff changeset
13 * Markus Kottländer <markuks.kottlaender@intevation.de>
1019
ca628dce90dd Licensing information added
Thomas Junk <thomas.junk@intevation.de>
parents: 1015
diff changeset
14 */
1044
f8a4ec146d47 fixed Vue reactivity issue (splitscreen button)
Markus Kottlaender <markus@intevation.de>
parents: 1038
diff changeset
15 import Vue from "vue";
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents: 1237
diff changeset
16 import { HTTP } from "../lib/http";
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents: 1237
diff changeset
17 import { prepareProfile } from "../lib/geo";
1028
dd67e46366ef refac: loading of profile data via fairwayprofile store
Thomas Junk <thomas.junk@intevation.de>
parents: 1027
diff changeset
18 import LineString from "ol/geom/LineString.js";
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents: 1237
diff changeset
19 import { generateFeatureRequest } from "../lib/geo.js";
1165
a44ac5193b38 fixed code duplication
Markus Kottlaender <markus@intevation.de>
parents: 1146
diff changeset
20 import { getLength } from "ol/sphere.js";
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents: 1237
diff changeset
21 import { displayError } from "../lib/errors.js";
2264
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
22 import { featureToFairwayCoordinates } from "../lib/geo.js";
2339
7dd7371702b9 client: use the name of constants instead of strings
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2306
diff changeset
23 import { LAYERS } from "@/store/map.js";
646
4450f2ab41e0 refac: Fairwawprofile view adapted
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
24
1296
99c039e86624 replaced manual store cleanup on logout with central store reset
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
25 // initial state
99c039e86624 replaced manual store cleanup on logout with central store reset
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
26 const init = () => {
99c039e86624 replaced manual store cleanup on logout with central store reset
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
27 return {
1391
801ae5f4bc5b fixed bug when changing additional survey in profile dialog
Markus Kottlaender <markus@intevation.de>
parents: 1377
diff changeset
28 additionalSurvey: null,
767
dedf252b3e01 feat: fairwayprofile partially with retrieved data from the server
Thomas Junk <thomas.junk@intevation.de>
parents: 646
diff changeset
29 minAlt: 0,
dedf252b3e01 feat: fairwayprofile partially with retrieved data from the server
Thomas Junk <thomas.junk@intevation.de>
parents: 646
diff changeset
30 maxAlt: 0,
1025
a55f20dc8d8d refac: store profiles by date
Thomas Junk <thomas.junk@intevation.de>
parents: 1020
diff changeset
31 currentProfile: {},
2389
13de09e30645 fairway_profile: available_waterlevels selection with dummy data added
Thomas Junk <thomas.junk@intevation.de>
parents: 2368
diff changeset
32 referenceWaterLevel: null,
2368
96b0314f2bd6 fairway_profile: consuming the offered waterlevel WIP
Thomas Junk <thomas.junk@intevation.de>
parents: 2365
diff changeset
33 waterLevels: {},
96b0314f2bd6 fairway_profile: consuming the offered waterlevel WIP
Thomas Junk <thomas.junk@intevation.de>
parents: 2365
diff changeset
34 selectedWaterLevel: "",
2264
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
35 fairwayData: [],
767
dedf252b3e01 feat: fairwayprofile partially with retrieved data from the server
Thomas Junk <thomas.junk@intevation.de>
parents: 646
diff changeset
36 startPoint: null,
1177
48ae4458710d save cross profiles to local storage to restore them from a dropdown
Markus Kottlaender <markus@intevation.de>
parents: 1165
diff changeset
37 endPoint: null,
1372
553aadd97087 new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents: 1362
diff changeset
38 previousCuts: [],
1395
210e9f16f8a0 delete cross profiles from localstorage
Markus Kottlaender <markus@intevation.de>
parents: 1394
diff changeset
39 profileLoading: false,
210e9f16f8a0 delete cross profiles from localstorage
Markus Kottlaender <markus@intevation.de>
parents: 1394
diff changeset
40 selectedCut: null
1296
99c039e86624 replaced manual store cleanup on logout with central store reset
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
41 };
99c039e86624 replaced manual store cleanup on logout with central store reset
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
42 };
99c039e86624 replaced manual store cleanup on logout with central store reset
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
43
99c039e86624 replaced manual store cleanup on logout with central store reset
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
44 export default {
99c039e86624 replaced manual store cleanup on logout with central store reset
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
45 init,
99c039e86624 replaced manual store cleanup on logout with central store reset
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
46 namespaced: true,
99c039e86624 replaced manual store cleanup on logout with central store reset
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
47 state: init(),
646
4450f2ab41e0 refac: Fairwawprofile view adapted
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
48 getters: {
1394
b350b0b5cb6c refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1391
diff changeset
49 totalLength: state => {
b350b0b5cb6c refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1391
diff changeset
50 const keys = Object.keys(state.currentProfile);
b350b0b5cb6c refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1391
diff changeset
51 return keys.length
b350b0b5cb6c refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1391
diff changeset
52 ? Math.max(...keys.map(x => state.currentProfile[x].length))
b350b0b5cb6c refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1391
diff changeset
53 : 0;
1056
28eb62f7c676 additional survey as dynamic property
Thomas Junk <thomas.junk@intevation.de>
parents: 1044
diff changeset
54 },
28eb62f7c676 additional survey as dynamic property
Thomas Junk <thomas.junk@intevation.de>
parents: 1044
diff changeset
55 additionalSurvey: state => {
28eb62f7c676 additional survey as dynamic property
Thomas Junk <thomas.junk@intevation.de>
parents: 1044
diff changeset
56 return state.additionalSurvey;
646
4450f2ab41e0 refac: Fairwawprofile view adapted
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
57 }
4450f2ab41e0 refac: Fairwawprofile view adapted
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
58 },
767
dedf252b3e01 feat: fairwayprofile partially with retrieved data from the server
Thomas Junk <thomas.junk@intevation.de>
parents: 646
diff changeset
59 mutations: {
1391
801ae5f4bc5b fixed bug when changing additional survey in profile dialog
Markus Kottlaender <markus@intevation.de>
parents: 1377
diff changeset
60 additionalSurvey: (state, additionalSurvey) => {
1056
28eb62f7c676 additional survey as dynamic property
Thomas Junk <thomas.junk@intevation.de>
parents: 1044
diff changeset
61 state.additionalSurvey = additionalSurvey;
28eb62f7c676 additional survey as dynamic property
Thomas Junk <thomas.junk@intevation.de>
parents: 1044
diff changeset
62 },
841
07be3e5f99a9 WIP Fairwayprofile
Thomas Junk <thomas.junk@intevation.de>
parents: 802
diff changeset
63 setSelectedWaterLevel: (state, level) => {
2389
13de09e30645 fairway_profile: available_waterlevels selection with dummy data added
Thomas Junk <thomas.junk@intevation.de>
parents: 2368
diff changeset
64 state.selectedWaterLevel = state.waterLevels[level];
841
07be3e5f99a9 WIP Fairwayprofile
Thomas Junk <thomas.junk@intevation.de>
parents: 802
diff changeset
65 },
1025
a55f20dc8d8d refac: store profiles by date
Thomas Junk <thomas.junk@intevation.de>
parents: 1020
diff changeset
66 profileLoaded: (state, answer) => {
a55f20dc8d8d refac: store profiles by date
Thomas Junk <thomas.junk@intevation.de>
parents: 1020
diff changeset
67 const { response, surveyDate } = answer;
767
dedf252b3e01 feat: fairwayprofile partially with retrieved data from the server
Thomas Junk <thomas.junk@intevation.de>
parents: 646
diff changeset
68 const { data } = response;
2368
96b0314f2bd6 fairway_profile: consuming the offered waterlevel WIP
Thomas Junk <thomas.junk@intevation.de>
parents: 2365
diff changeset
69 const { waterlevel } = response.data.properties;
96b0314f2bd6 fairway_profile: consuming the offered waterlevel WIP
Thomas Junk <thomas.junk@intevation.de>
parents: 2365
diff changeset
70 const { value, when } = waterlevel;
767
dedf252b3e01 feat: fairwayprofile partially with retrieved data from the server
Thomas Junk <thomas.junk@intevation.de>
parents: 646
diff changeset
71 const coordinates = data.geometry.coordinates;
dedf252b3e01 feat: fairwayprofile partially with retrieved data from the server
Thomas Junk <thomas.junk@intevation.de>
parents: 646
diff changeset
72 if (!coordinates) return;
dedf252b3e01 feat: fairwayprofile partially with retrieved data from the server
Thomas Junk <thomas.junk@intevation.de>
parents: 646
diff changeset
73 const startPoint = state.startPoint;
dedf252b3e01 feat: fairwayprofile partially with retrieved data from the server
Thomas Junk <thomas.junk@intevation.de>
parents: 646
diff changeset
74 const endPoint = state.endPoint;
dedf252b3e01 feat: fairwayprofile partially with retrieved data from the server
Thomas Junk <thomas.junk@intevation.de>
parents: 646
diff changeset
75 const geoJSON = data;
dedf252b3e01 feat: fairwayprofile partially with retrieved data from the server
Thomas Junk <thomas.junk@intevation.de>
parents: 646
diff changeset
76 const result = prepareProfile({ geoJSON, startPoint, endPoint });
1044
f8a4ec146d47 fixed Vue reactivity issue (splitscreen button)
Markus Kottlaender <markus@intevation.de>
parents: 1038
diff changeset
77 // Use Vue.set() to make new object properties rective
f8a4ec146d47 fixed Vue reactivity issue (splitscreen button)
Markus Kottlaender <markus@intevation.de>
parents: 1038
diff changeset
78 // https://vuejs.org/v2/guide/reactivity.html#Change-Detection-Caveats
2389
13de09e30645 fairway_profile: available_waterlevels selection with dummy data added
Thomas Junk <thomas.junk@intevation.de>
parents: 2368
diff changeset
79 const entry = {
13de09e30645 fairway_profile: available_waterlevels selection with dummy data added
Thomas Junk <thomas.junk@intevation.de>
parents: 2368
diff changeset
80 date: when,
2540
3c17d401fbd4 client: cross profiles: moved waterlevel select to Profiles dialog
Markus Kottlaender <markus@intevation.de>
parents: 2391
diff changeset
81 value: value
2389
13de09e30645 fairway_profile: available_waterlevels selection with dummy data added
Thomas Junk <thomas.junk@intevation.de>
parents: 2368
diff changeset
82 };
2540
3c17d401fbd4 client: cross profiles: moved waterlevel select to Profiles dialog
Markus Kottlaender <markus@intevation.de>
parents: 2391
diff changeset
83 state.waterLevels = { [when]: entry };
3c17d401fbd4 client: cross profiles: moved waterlevel select to Profiles dialog
Markus Kottlaender <markus@intevation.de>
parents: 2391
diff changeset
84 state.selectedWaterLevel = entry;
1394
b350b0b5cb6c refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1391
diff changeset
85 Vue.set(state.currentProfile, surveyDate, {
b350b0b5cb6c refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1391
diff changeset
86 points: result.points,
b350b0b5cb6c refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1391
diff changeset
87 length: result.lengthPolyLine
b350b0b5cb6c refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1391
diff changeset
88 });
1056
28eb62f7c676 additional survey as dynamic property
Thomas Junk <thomas.junk@intevation.de>
parents: 1044
diff changeset
89 if (!state.minAlt || state.minAlt > result.minAlt) {
28eb62f7c676 additional survey as dynamic property
Thomas Junk <thomas.junk@intevation.de>
parents: 1044
diff changeset
90 state.minAlt = result.minAlt;
28eb62f7c676 additional survey as dynamic property
Thomas Junk <thomas.junk@intevation.de>
parents: 1044
diff changeset
91 }
28eb62f7c676 additional survey as dynamic property
Thomas Junk <thomas.junk@intevation.de>
parents: 1044
diff changeset
92 if (!state.maxAlt || state.maxAlt < result.maxAlt) {
28eb62f7c676 additional survey as dynamic property
Thomas Junk <thomas.junk@intevation.de>
parents: 1044
diff changeset
93 state.maxAlt = result.maxAlt;
28eb62f7c676 additional survey as dynamic property
Thomas Junk <thomas.junk@intevation.de>
parents: 1044
diff changeset
94 }
767
dedf252b3e01 feat: fairwayprofile partially with retrieved data from the server
Thomas Junk <thomas.junk@intevation.de>
parents: 646
diff changeset
95 },
dedf252b3e01 feat: fairwayprofile partially with retrieved data from the server
Thomas Junk <thomas.junk@intevation.de>
parents: 646
diff changeset
96 setStartPoint: (state, start) => {
dedf252b3e01 feat: fairwayprofile partially with retrieved data from the server
Thomas Junk <thomas.junk@intevation.de>
parents: 646
diff changeset
97 state.startPoint = start;
dedf252b3e01 feat: fairwayprofile partially with retrieved data from the server
Thomas Junk <thomas.junk@intevation.de>
parents: 646
diff changeset
98 },
dedf252b3e01 feat: fairwayprofile partially with retrieved data from the server
Thomas Junk <thomas.junk@intevation.de>
parents: 646
diff changeset
99 setEndPoint: (state, end) => {
dedf252b3e01 feat: fairwayprofile partially with retrieved data from the server
Thomas Junk <thomas.junk@intevation.de>
parents: 646
diff changeset
100 state.endPoint = end;
802
327aa4a18a1c Fairway profile WIP
Thomas Junk <thomas.junk@intevation.de>
parents: 786
diff changeset
101 },
2264
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
102 addFairwayData: (state, coordinates) => {
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
103 state.fairwayData.push(coordinates);
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
104 },
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
105 clearFairwayData: state => {
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
106 state.fairwayData = [];
1015
d2f30a784fb3 feat: add selectfield to fairwayprofile
Thomas Junk <thomas.junk@intevation.de>
parents: 1013
diff changeset
107 },
d2f30a784fb3 feat: add selectfield to fairwayprofile
Thomas Junk <thomas.junk@intevation.de>
parents: 1013
diff changeset
108 clearCurrentProfile: state => {
1391
801ae5f4bc5b fixed bug when changing additional survey in profile dialog
Markus Kottlaender <markus@intevation.de>
parents: 1377
diff changeset
109 state.additionalSurvey = null;
1025
a55f20dc8d8d refac: store profiles by date
Thomas Junk <thomas.junk@intevation.de>
parents: 1020
diff changeset
110 state.currentProfile = {};
1057
7242b5a427bc completely nulling the units
Thomas Junk <thomas.junk@intevation.de>
parents: 1056
diff changeset
111 state.minAlt = null;
7242b5a427bc completely nulling the units
Thomas Junk <thomas.junk@intevation.de>
parents: 1056
diff changeset
112 state.maxAlt = null;
7242b5a427bc completely nulling the units
Thomas Junk <thomas.junk@intevation.de>
parents: 1056
diff changeset
113 state.totalLength = null;
2264
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
114 state.fairwayData = [];
1057
7242b5a427bc completely nulling the units
Thomas Junk <thomas.junk@intevation.de>
parents: 1056
diff changeset
115 state.startPoint = null;
7242b5a427bc completely nulling the units
Thomas Junk <thomas.junk@intevation.de>
parents: 1056
diff changeset
116 state.endPoint = null;
2391
123e7f43b676 fairway_store: fix cleanup bug
Thomas Junk <thomas.junk@intevation.de>
parents: 2389
diff changeset
117 state.referenceWaterLevel = null;
123e7f43b676 fairway_store: fix cleanup bug
Thomas Junk <thomas.junk@intevation.de>
parents: 2389
diff changeset
118 state.waterLevels = {};
123e7f43b676 fairway_store: fix cleanup bug
Thomas Junk <thomas.junk@intevation.de>
parents: 2389
diff changeset
119 state.selectedWaterLevel = "";
1177
48ae4458710d save cross profiles to local storage to restore them from a dropdown
Markus Kottlaender <markus@intevation.de>
parents: 1165
diff changeset
120 },
48ae4458710d save cross profiles to local storage to restore them from a dropdown
Markus Kottlaender <markus@intevation.de>
parents: 1165
diff changeset
121 previousCuts: (state, previousCuts) => {
48ae4458710d save cross profiles to local storage to restore them from a dropdown
Markus Kottlaender <markus@intevation.de>
parents: 1165
diff changeset
122 state.previousCuts = previousCuts;
1372
553aadd97087 new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents: 1362
diff changeset
123 },
553aadd97087 new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents: 1362
diff changeset
124 profileLoading: (state, loading) => {
553aadd97087 new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents: 1362
diff changeset
125 state.profileLoading = loading;
1395
210e9f16f8a0 delete cross profiles from localstorage
Markus Kottlaender <markus@intevation.de>
parents: 1394
diff changeset
126 },
210e9f16f8a0 delete cross profiles from localstorage
Markus Kottlaender <markus@intevation.de>
parents: 1394
diff changeset
127 selectedCut: (state, cut) => {
210e9f16f8a0 delete cross profiles from localstorage
Markus Kottlaender <markus@intevation.de>
parents: 1394
diff changeset
128 state.selectedCut = cut;
767
dedf252b3e01 feat: fairwayprofile partially with retrieved data from the server
Thomas Junk <thomas.junk@intevation.de>
parents: 646
diff changeset
129 }
1028
dd67e46366ef refac: loading of profile data via fairwayprofile store
Thomas Junk <thomas.junk@intevation.de>
parents: 1027
diff changeset
130 },
dd67e46366ef refac: loading of profile data via fairwayprofile store
Thomas Junk <thomas.junk@intevation.de>
parents: 1027
diff changeset
131 actions: {
1146
74e180ad3d6b fairway profile UI improvements
Markus Kottlaender <markus@intevation.de>
parents: 1114
diff changeset
132 clearSelection({ commit, dispatch, rootGetters, rootState }) {
74e180ad3d6b fairway profile UI improvements
Markus Kottlaender <markus@intevation.de>
parents: 1114
diff changeset
133 dispatch("bottlenecks/setSelectedBottleneck", null, { root: true });
1435
7fa030127b05 fixed panning problem
Markus Kottlaender <markus@intevation.de>
parents: 1424
diff changeset
134 dispatch("map/enableIdentifyTool", null, { root: true });
1146
74e180ad3d6b fairway profile UI improvements
Markus Kottlaender <markus@intevation.de>
parents: 1114
diff changeset
135 commit("clearCurrentProfile");
1237
74562dc29e10 refactored drawtool
Markus Kottlaender <markus@intevation.de>
parents: 1177
diff changeset
136 rootState.map.cutTool.setActive(false);
2365
242c170e00ce client:use the name constants instead of strings
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2339
diff changeset
137 rootGetters["map/getVSourceByName"](LAYERS.CUTTOOL).clear();
1146
74e180ad3d6b fairway profile UI improvements
Markus Kottlaender <markus@intevation.de>
parents: 1114
diff changeset
138 },
1111
f106aee673e7 selected bottleneck and surveys now handled by bottleneck store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
139 loadProfile({ commit, state }, survey) {
1372
553aadd97087 new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents: 1362
diff changeset
140 if (state.startPoint && state.endPoint) {
553aadd97087 new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents: 1362
diff changeset
141 return new Promise((resolve, reject) => {
553aadd97087 new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents: 1362
diff changeset
142 const profileLine = new LineString([
553aadd97087 new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents: 1362
diff changeset
143 state.startPoint,
553aadd97087 new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents: 1362
diff changeset
144 state.endPoint
553aadd97087 new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents: 1362
diff changeset
145 ]);
553aadd97087 new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents: 1362
diff changeset
146 const geoJSON = generateFeatureRequest(
553aadd97087 new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents: 1362
diff changeset
147 profileLine,
553aadd97087 new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents: 1362
diff changeset
148 survey.bottleneck_id,
553aadd97087 new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents: 1362
diff changeset
149 survey.date_info
553aadd97087 new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents: 1362
diff changeset
150 );
553aadd97087 new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents: 1362
diff changeset
151 HTTP.post("/cross", geoJSON, {
553aadd97087 new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents: 1362
diff changeset
152 headers: { "X-Gemma-Auth": localStorage.getItem("token") }
1028
dd67e46366ef refac: loading of profile data via fairwayprofile store
Thomas Junk <thomas.junk@intevation.de>
parents: 1027
diff changeset
153 })
1372
553aadd97087 new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents: 1362
diff changeset
154 .then(response => {
1440
b3920ac3b2fd fixed bug when drawing crowss profile outside of bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 1437
diff changeset
155 if (response.data.geometry.coordinates.length) {
b3920ac3b2fd fixed bug when drawing crowss profile outside of bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 1437
diff changeset
156 commit("profileLoaded", {
b3920ac3b2fd fixed bug when drawing crowss profile outside of bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 1437
diff changeset
157 response: response,
b3920ac3b2fd fixed bug when drawing crowss profile outside of bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 1437
diff changeset
158 surveyDate: survey.date_info
b3920ac3b2fd fixed bug when drawing crowss profile outside of bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 1437
diff changeset
159 });
b3920ac3b2fd fixed bug when drawing crowss profile outside of bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 1437
diff changeset
160 resolve(response);
b3920ac3b2fd fixed bug when drawing crowss profile outside of bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 1437
diff changeset
161 } else {
b3920ac3b2fd fixed bug when drawing crowss profile outside of bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 1437
diff changeset
162 commit("clearCurrentProfile");
b3920ac3b2fd fixed bug when drawing crowss profile outside of bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 1437
diff changeset
163 reject({
b3920ac3b2fd fixed bug when drawing crowss profile outside of bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 1437
diff changeset
164 response: {
b3920ac3b2fd fixed bug when drawing crowss profile outside of bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 1437
diff changeset
165 status: null,
b3920ac3b2fd fixed bug when drawing crowss profile outside of bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 1437
diff changeset
166 data: "No intersection with sounding data."
b3920ac3b2fd fixed bug when drawing crowss profile outside of bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 1437
diff changeset
167 }
b3920ac3b2fd fixed bug when drawing crowss profile outside of bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 1437
diff changeset
168 });
b3920ac3b2fd fixed bug when drawing crowss profile outside of bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 1437
diff changeset
169 }
1372
553aadd97087 new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents: 1362
diff changeset
170 })
1440
b3920ac3b2fd fixed bug when drawing crowss profile outside of bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 1437
diff changeset
171 .catch(error => reject(error));
1372
553aadd97087 new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents: 1362
diff changeset
172 });
553aadd97087 new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents: 1362
diff changeset
173 }
1165
a44ac5193b38 fixed code duplication
Markus Kottlaender <markus@intevation.de>
parents: 1146
diff changeset
174 },
a44ac5193b38 fixed code duplication
Markus Kottlaender <markus@intevation.de>
parents: 1146
diff changeset
175 cut({ commit, dispatch, rootState, rootGetters }, cut) {
1440
b3920ac3b2fd fixed bug when drawing crowss profile outside of bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 1437
diff changeset
176 return new Promise(resolve => {
1437
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
177 const length = getLength(cut.getGeometry());
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
178 commit(
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
179 "map/setCurrentMeasurement",
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
180 {
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
181 quantity: "Length",
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
182 unitSymbol: "m",
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
183 value: Math.round(length * 10) / 10
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
184 },
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
185 { root: true }
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
186 );
2265
940ae7c20326 client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents: 2264
diff changeset
187 commit("clearFairwayData");
1437
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
188 // if a survey has been selected, request a profile
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
189 // TODO an improvement could be to check if the line intersects
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
190 // with the bottleneck area's polygon before trying the server request
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
191 if (rootState.bottlenecks.selectedSurvey) {
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
192 const inputLineString = cut.getGeometry().clone();
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
193 inputLineString.transform("EPSG:3857", "EPSG:4326");
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
194 const [start, end] = inputLineString
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
195 .getCoordinates()
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
196 .map(coords => coords.map(coord => parseFloat(coord.toFixed(8))));
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
197 commit("setStartPoint", start);
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
198 commit("setEndPoint", end);
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
199 const profileLine = new LineString([start, end]);
1394
b350b0b5cb6c refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1391
diff changeset
200
1437
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
201 const profileLoaders = [
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
202 dispatch("loadProfile", rootState.bottlenecks.selectedSurvey)
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
203 ];
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
204 if (rootState.fairwayprofile.additionalSurvey) {
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
205 profileLoaders.push(
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
206 dispatch("loadProfile", rootState.fairwayprofile.additionalSurvey)
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
207 );
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
208 }
1394
b350b0b5cb6c refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1391
diff changeset
209
2549
9bf6b767a56a client: refactored and improved splitscreen for diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2540
diff changeset
210 commit("application/showSplitscreen", true, { root: true });
9bf6b767a56a client: refactored and improved splitscreen for diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2540
diff changeset
211 commit("application/splitscreenLoading", true, { root: true });
1437
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
212 commit("profileLoading", true);
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
213 Promise.all(profileLoaders)
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
214 .then(() => {
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
215 rootState.map.cutTool.setActive(false);
2264
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
216 const los3 = rootGetters["map/getLayerByName"](
2339
7dd7371702b9 client: use the name of constants instead of strings
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2306
diff changeset
217 LAYERS.FAIRWAYDIMENSIONSLOS3
2264
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
218 );
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
219 los3.data.getSource().forEachFeatureIntersectingExtent(
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
220 profileLine
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
221 .clone()
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
222 .transform("EPSG:4326", "EPSG:3857")
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
223 .getExtent(),
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
224 feature => {
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
225 const fairwayCoordinates = featureToFairwayCoordinates(
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
226 feature,
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
227 profileLine
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
228 );
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
229 let fairwayData = {
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
230 coordinates: fairwayCoordinates,
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
231 style: los3.data.getStyle()
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
232 };
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
233 if (fairwayCoordinates.length > 0) {
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
234 commit("addFairwayData", fairwayData);
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
235 }
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
236 }
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
237 );
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
238 const los2 = rootGetters["map/getLayerByName"](
2339
7dd7371702b9 client: use the name of constants instead of strings
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2306
diff changeset
239 LAYERS.FAIRWAYDIMENSIONSLOS2
2264
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
240 );
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
241 los2.data.getSource().forEachFeatureIntersectingExtent(
1437
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
242 profileLine
1165
a44ac5193b38 fixed code duplication
Markus Kottlaender <markus@intevation.de>
parents: 1146
diff changeset
243 .clone()
1437
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
244 .transform("EPSG:4326", "EPSG:3857")
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
245 .getExtent(),
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
246 feature => {
2264
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
247 let fairwayCoordinates = featureToFairwayCoordinates(
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
248 feature,
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
249 profileLine
1437
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
250 );
2264
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
251 let fairwayData = {
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
252 coordinates: fairwayCoordinates,
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
253 style: los2.data.getStyle()
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
254 };
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
255 if (fairwayCoordinates.length > 0) {
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
256 commit("addFairwayData", fairwayData);
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
257 }
1437
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
258 }
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
259 );
2264
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
260 const los1 = rootGetters["map/getLayerByName"](
2339
7dd7371702b9 client: use the name of constants instead of strings
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2306
diff changeset
261 LAYERS.FAIRWAYDIMENSIONSLOS1
2264
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
262 );
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
263 los1.data.getSource().forEachFeatureIntersectingExtent(
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
264 profileLine
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
265 .clone()
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
266 .transform("EPSG:4326", "EPSG:3857")
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
267 .getExtent(),
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
268 feature => {
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
269 const fairwayCoordinates = featureToFairwayCoordinates(
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
270 feature,
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
271 profileLine
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
272 );
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
273 let fairwayData = {
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
274 coordinates: fairwayCoordinates,
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
275 style: los1.data.getStyle()
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
276 };
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
277 if (fairwayCoordinates.length > 0) {
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
278 commit("addFairwayData", fairwayData);
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
279 }
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
280 }
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
281 );
627bfcbbf631 client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2125
diff changeset
282 resolve();
1437
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
283 })
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
284 .catch(error => {
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
285 const { status, data } = error.response;
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
286 displayError({
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
287 title: "Backend Error",
1440
b3920ac3b2fd fixed bug when drawing crowss profile outside of bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 1437
diff changeset
288 message: `${status ? status + ":" : ""} ${data.message || data}`
1437
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
289 });
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
290 })
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
291 .finally(() => {
2566
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
292 let splitscreenConf = {
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
293 id: "fairwayprofile",
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
294 component: "fairwayprofile",
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
295 title: `${rootState.bottlenecks.selectedBottleneck} (${
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
296 rootState.bottlenecks.selectedSurvey.date_info
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
297 })`,
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
298 icon: "chart-area",
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
299 closeCallback: () => {
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
300 dispatch("clearSelection");
2549
9bf6b767a56a client: refactored and improved splitscreen for diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2540
diff changeset
301 },
2566
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
302 expandCallback: () => {
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
303 let bottleneck = rootState.bottlenecks.bottlenecksList.find(
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
304 bn =>
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
305 bn.properties.name ===
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
306 rootState.bottlenecks.selectedBottleneck
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
307 );
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
308 commit(
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
309 "map/moveToExtent",
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
310 {
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
311 feature: bottleneck,
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
312 zoom: 17,
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
313 preventZoomOut: true
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
314 },
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
315 { root: true }
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
316 );
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
317 }
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
318 };
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
319 commit("application/addSplitscreen", splitscreenConf, {
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
320 root: true
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
321 });
2590
1686ec185155 client: added gauge waterlevel example diagram
Markus Kottlaender <markus@intevation.de>
parents: 2566
diff changeset
322 commit("application/activeSplitscreenId", "fairwayprofile", {
2566
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
323 root: true
83b938bf4da9 client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2549
diff changeset
324 });
2549
9bf6b767a56a client: refactored and improved splitscreen for diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2540
diff changeset
325 commit("application/splitscreenLoading", false, { root: true });
1437
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
326 commit("profileLoading", false);
1165
a44ac5193b38 fixed code duplication
Markus Kottlaender <markus@intevation.de>
parents: 1146
diff changeset
327 });
1440
b3920ac3b2fd fixed bug when drawing crowss profile outside of bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 1437
diff changeset
328 }
1437
1cd1549aab47 fixed panning problem when drawing cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1435
diff changeset
329 });
1177
48ae4458710d save cross profiles to local storage to restore them from a dropdown
Markus Kottlaender <markus@intevation.de>
parents: 1165
diff changeset
330 },
48ae4458710d save cross profiles to local storage to restore them from a dropdown
Markus Kottlaender <markus@intevation.de>
parents: 1165
diff changeset
331 previousCuts({ commit, rootState }) {
48ae4458710d save cross profiles to local storage to restore them from a dropdown
Markus Kottlaender <markus@intevation.de>
parents: 1165
diff changeset
332 const previousCuts =
48ae4458710d save cross profiles to local storage to restore them from a dropdown
Markus Kottlaender <markus@intevation.de>
parents: 1165
diff changeset
333 JSON.parse(localStorage.getItem("previousCuts")) || [];
48ae4458710d save cross profiles to local storage to restore them from a dropdown
Markus Kottlaender <markus@intevation.de>
parents: 1165
diff changeset
334 commit(
48ae4458710d save cross profiles to local storage to restore them from a dropdown
Markus Kottlaender <markus@intevation.de>
parents: 1165
diff changeset
335 "previousCuts",
1377
fa7d647f8d77 added timestamp to saved cross profiles
Markus Kottlaender <markus@intevation.de>
parents: 1372
diff changeset
336 previousCuts
fa7d647f8d77 added timestamp to saved cross profiles
Markus Kottlaender <markus@intevation.de>
parents: 1372
diff changeset
337 .filter(cut => {
fa7d647f8d77 added timestamp to saved cross profiles
Markus Kottlaender <markus@intevation.de>
parents: 1372
diff changeset
338 return (
fa7d647f8d77 added timestamp to saved cross profiles
Markus Kottlaender <markus@intevation.de>
parents: 1372
diff changeset
339 cut.bottleneckName === rootState.bottlenecks.selectedBottleneck
fa7d647f8d77 added timestamp to saved cross profiles
Markus Kottlaender <markus@intevation.de>
parents: 1372
diff changeset
340 );
fa7d647f8d77 added timestamp to saved cross profiles
Markus Kottlaender <markus@intevation.de>
parents: 1372
diff changeset
341 })
fa7d647f8d77 added timestamp to saved cross profiles
Markus Kottlaender <markus@intevation.de>
parents: 1372
diff changeset
342 .sort((a, b) => (a.timestamp < b.timestamp ? 1 : -1))
1177
48ae4458710d save cross profiles to local storage to restore them from a dropdown
Markus Kottlaender <markus@intevation.de>
parents: 1165
diff changeset
343 );
2265
940ae7c20326 client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents: 2264
diff changeset
344 }
940ae7c20326 client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents: 2264
diff changeset
345 }
646
4450f2ab41e0 refac: Fairwawprofile view adapted
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
346 };