annotate client/src/components/Maplayer.vue @ 2984:61f69e8919d3

client: prepared splitview Up to four panes can be used to display different components. Currently hardcoded to one pane with the map component. Two panes can be oriented vertically or horizontally and three panes can be set to left, right, top and bottom, which is the position of the one full-width or -height pane.
author Markus Kottlaender <markus@intevation.de>
date Tue, 09 Apr 2019 18:23:07 +0200
parents 4bc2cc6364bc
children 1b8bb4f89227
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
1 <template>
2549
9bf6b767a56a client: refactored and improved splitscreen for diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2506
diff changeset
2 <div
2984
61f69e8919d3 client: prepared splitview
Markus Kottlaender <markus@intevation.de>
parents: 2966
diff changeset
3 :id="'map-' + uuid"
61f69e8919d3 client: prepared splitview
Markus Kottlaender <markus@intevation.de>
parents: 2966
diff changeset
4 :class="[
61f69e8919d3 client: prepared splitview
Markus Kottlaender <markus@intevation.de>
parents: 2966
diff changeset
5 'map',
61f69e8919d3 client: prepared splitview
Markus Kottlaender <markus@intevation.de>
parents: 2966
diff changeset
6 {
61f69e8919d3 client: prepared splitview
Markus Kottlaender <markus@intevation.de>
parents: 2966
diff changeset
7 splitscreen: this.splitscreen,
61f69e8919d3 client: prepared splitview
Markus Kottlaender <markus@intevation.de>
parents: 2966
diff changeset
8 nocursor: this.hasActiveInteractions
61f69e8919d3 client: prepared splitview
Markus Kottlaender <markus@intevation.de>
parents: 2966
diff changeset
9 }
61f69e8919d3 client: prepared splitview
Markus Kottlaender <markus@intevation.de>
parents: 2966
diff changeset
10 ]"
2549
9bf6b767a56a client: refactored and improved splitscreen for diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2506
diff changeset
11 ></div>
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
12 </template>
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
13
2549
9bf6b767a56a client: refactored and improved splitscreen for diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2506
diff changeset
14 <style lang="sass" scoped>
2984
61f69e8919d3 client: prepared splitview
Markus Kottlaender <markus@intevation.de>
parents: 2966
diff changeset
15 .map
61f69e8919d3 client: prepared splitview
Markus Kottlaender <markus@intevation.de>
parents: 2966
diff changeset
16 width: 100%
61f69e8919d3 client: prepared splitview
Markus Kottlaender <markus@intevation.de>
parents: 2966
diff changeset
17 height: 100%
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
18
2549
9bf6b767a56a client: refactored and improved splitscreen for diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2506
diff changeset
19 &.splitscreen
2984
61f69e8919d3 client: prepared splitview
Markus Kottlaender <markus@intevation.de>
parents: 2966
diff changeset
20 height: 50%
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
21
2549
9bf6b767a56a client: refactored and improved splitscreen for diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2506
diff changeset
22 &.nocursor
9bf6b767a56a client: refactored and improved splitscreen for diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2506
diff changeset
23 cursor: none
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
24 </style>
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
25
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
26 <script>
1362
ca33ad696594 remove the first empyty lines
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1313
diff changeset
27 /* This is Free Software under GNU Affero General Public License v >= 3.0
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
28 * without warranty, see README.md and license for details.
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
29 *
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
30 * SPDX-License-Identifier: AGPL-3.0-or-later
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
31 * License-Filename: LICENSES/AGPL-3.0.txt
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
32 *
1932
e734d48ef964 client: cleanup code: remove browser based printing css attempt
Bernhard Reiter <bernhard@intevation.de>
parents: 1794
diff changeset
33 * Copyright (C) 2018, 2019 by via donau
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
34 * – Österreichische Wasserstraßen-Gesellschaft mbH
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
35 * Software engineering by Intevation GmbH
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
36 *
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
37 * Author(s):
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
38 * * Thomas Junk <thomas.junk@intevation.de>
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
39 * * Bernhard E. Reiter <bernhard.reiter@intevation.de>
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
40 */
1613
f2d24dceecc7 refac: cleanup import paths
Thomas Junk <thomas.junk@intevation.de>
parents: 1558
diff changeset
41 import { HTTP } from "@/lib/http";
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
42 import { mapState } from "vuex";
2984
61f69e8919d3 client: prepared splitview
Markus Kottlaender <markus@intevation.de>
parents: 2966
diff changeset
43 import uuid from "uuid";
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
44 import { Map, View } from "ol";
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
45 import { WFS, GeoJSON } from "ol/format.js";
2125
ea5a0e771b71 Distinct fairway layers per LOS
Markus Kottlaender <markus@intevation.de>
parents: 1983
diff changeset
46 import { equalTo } from "ol/format/filter.js";
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
47 import { Stroke, Style, Fill } from "ol/style.js";
2190
ecb0ad836aa0 linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2188
diff changeset
48 import { displayError } from "@/lib/errors.js";
2984
61f69e8919d3 client: prepared splitview
Markus Kottlaender <markus@intevation.de>
parents: 2966
diff changeset
49 import "ol/ol.css";
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
50
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
51 /* for the sake of debugging */
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
52 /* eslint-disable no-console */
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
53 export default {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
54 data() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
55 return {
2549
9bf6b767a56a client: refactored and improved splitscreen for diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2506
diff changeset
56 splitscreen: false
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
57 };
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
58 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
59 computed: {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
60 ...mapState("map", [
2310
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
61 "initialLoad",
1313
e4e35fb2d995 save map extent (center/zoom) in store, to not lose it when switching between map and admin area
Markus Kottlaender <markus@intevation.de>
parents: 1296
diff changeset
62 "extent",
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
63 "layers",
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
64 "openLayersMap",
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
65 "lineTool",
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
66 "polygonTool",
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
67 "cutTool"
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
68 ]),
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
69 ...mapState("bottlenecks", ["selectedSurvey"]),
1394
b350b0b5cb6c refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1372
diff changeset
70 ...mapState("application", ["showSplitscreen"]),
2910
c8c7122047a2 client: stretches: select/unselect stretches by clicking on them on the map
Markus Kottlaender <markus@intevation.de>
parents: 2909
diff changeset
71 ...mapState("imports", ["selectedStretchId"]),
2984
61f69e8919d3 client: prepared splitview
Markus Kottlaender <markus@intevation.de>
parents: 2966
diff changeset
72 uuid() {
61f69e8919d3 client: prepared splitview
Markus Kottlaender <markus@intevation.de>
parents: 2966
diff changeset
73 return uuid.v4();
61f69e8919d3 client: prepared splitview
Markus Kottlaender <markus@intevation.de>
parents: 2966
diff changeset
74 },
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
75 hasActiveInteractions() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
76 return (
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
77 (this.lineTool && this.lineTool.getActive()) ||
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
78 (this.polygonTool && this.polygonTool.getActive()) ||
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
79 (this.cutTool && this.cutTool.getActive())
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
80 );
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
81 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
82 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
83 methods: {
2909
5105f6ad0176 client: stretches: fixed highlighting of selected stretch
Markus Kottlaender <markus@intevation.de>
parents: 2870
diff changeset
84 buildVectorLoader(
5105f6ad0176 client: stretches: fixed highlighting of selected stretch
Markus Kottlaender <markus@intevation.de>
parents: 2870
diff changeset
85 featureRequestOptions,
5105f6ad0176 client: stretches: fixed highlighting of selected stretch
Markus Kottlaender <markus@intevation.de>
parents: 2870
diff changeset
86 vectorSource,
2964
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
87 bboxStrategyDisabled,
2909
5105f6ad0176 client: stretches: fixed highlighting of selected stretch
Markus Kottlaender <markus@intevation.de>
parents: 2870
diff changeset
88 featurePostProcessor
5105f6ad0176 client: stretches: fixed highlighting of selected stretch
Markus Kottlaender <markus@intevation.de>
parents: 2870
diff changeset
89 ) {
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
90 // build a function to be used for VectorSource.setLoader()
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
91 // make use of WFS().writeGetFeature to build the request
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
92 // and use our HTTP library to actually do it
2964
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
93 // NOTE: the geometryName has to be given in featureRequestOptions if
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
94 // bboxStrategy (default) is used
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
95 featureRequestOptions.featureNS = "gemma";
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
96 featureRequestOptions.featurePrefix = "gemma";
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
97 featureRequestOptions.outputFormat = "application/json";
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
98 return (extent, resolution, projection) => {
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
99 if (!bboxStrategyDisabled) {
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
100 featureRequestOptions.bbox = extent;
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
101 }
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
102 featureRequestOptions.srsName = projection.getCode();
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
103 HTTP.post(
2964
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
104 "/internal/wfs",
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
105 new XMLSerializer().serializeToString(
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
106 new WFS().writeGetFeature(featureRequestOptions)
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
107 ),
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
108 {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
109 headers: {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
110 "X-Gemma-Auth": localStorage.getItem("token"),
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
111 "Content-type": "text/xml; charset=UTF-8"
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
112 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
113 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
114 )
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
115 .then(response => {
2964
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
116 const features = new GeoJSON().readFeatures(
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
117 JSON.stringify(response.data)
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
118 );
2909
5105f6ad0176 client: stretches: fixed highlighting of selected stretch
Markus Kottlaender <markus@intevation.de>
parents: 2870
diff changeset
119 if (featurePostProcessor) {
5105f6ad0176 client: stretches: fixed highlighting of selected stretch
Markus Kottlaender <markus@intevation.de>
parents: 2870
diff changeset
120 features.map(f => featurePostProcessor(f));
5105f6ad0176 client: stretches: fixed highlighting of selected stretch
Markus Kottlaender <markus@intevation.de>
parents: 2870
diff changeset
121 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
122 vectorSource.addFeatures(features);
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
123 })
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
124 .catch(() => {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
125 vectorSource.removeLoadedExtent(extent);
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
126 });
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
127 };
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
128 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
129 updateBottleneckFilter(bottleneck_id, datestr) {
1424
4afbc615cfc2 little code cleanup
Markus Kottlaender <markus@intevation.de>
parents: 1394
diff changeset
130 const exists = bottleneck_id != "does_not_exist";
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
131
1424
4afbc615cfc2 little code cleanup
Markus Kottlaender <markus@intevation.de>
parents: 1394
diff changeset
132 if (exists) {
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
133 this.layers.BOTTLENECKISOLINE.getSource().updateParams({
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
134 cql_filter: `date_info='${datestr}' AND bottleneck_id='${bottleneck_id}'`
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
135 });
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
136 }
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
137 this.layers.BOTTLENECKISOLINE.setVisible(exists);
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
138 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
139 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
140 watch: {
2549
9bf6b767a56a client: refactored and improved splitscreen for diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2506
diff changeset
141 showSplitscreen(show) {
9bf6b767a56a client: refactored and improved splitscreen for diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2506
diff changeset
142 if (show) {
9bf6b767a56a client: refactored and improved splitscreen for diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2506
diff changeset
143 setTimeout(() => {
9bf6b767a56a client: refactored and improved splitscreen for diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2506
diff changeset
144 this.splitscreen = true;
9bf6b767a56a client: refactored and improved splitscreen for diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2506
diff changeset
145 }, 350);
9bf6b767a56a client: refactored and improved splitscreen for diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2506
diff changeset
146 } else {
9bf6b767a56a client: refactored and improved splitscreen for diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2506
diff changeset
147 this.splitscreen = false;
9bf6b767a56a client: refactored and improved splitscreen for diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2506
diff changeset
148 }
9bf6b767a56a client: refactored and improved splitscreen for diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2506
diff changeset
149 },
9bf6b767a56a client: refactored and improved splitscreen for diagrams
Markus Kottlaender <markus@intevation.de>
parents: 2506
diff changeset
150 splitscreen() {
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
151 const map = this.openLayersMap;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
152 this.$nextTick(() => {
1296
99c039e86624 replaced manual store cleanup on logout with central store reset
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
153 map && map.updateSize();
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
154 });
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
155 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
156 selectedSurvey(newSelectedSurvey) {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
157 if (newSelectedSurvey) {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
158 this.updateBottleneckFilter(
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
159 newSelectedSurvey.bottleneck_id,
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
160 newSelectedSurvey.date_info
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
161 );
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
162 } else {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
163 this.updateBottleneckFilter("does_not_exist", "1999-10-01");
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
164 }
2910
c8c7122047a2 client: stretches: select/unselect stretches by clicking on them on the map
Markus Kottlaender <markus@intevation.de>
parents: 2909
diff changeset
165 },
c8c7122047a2 client: stretches: select/unselect stretches by clicking on them on the map
Markus Kottlaender <markus@intevation.de>
parents: 2909
diff changeset
166 selectedStretchId(id) {
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
167 this.layers.STRETCHES.getSource()
2910
c8c7122047a2 client: stretches: select/unselect stretches by clicking on them on the map
Markus Kottlaender <markus@intevation.de>
parents: 2909
diff changeset
168 .getFeatures()
c8c7122047a2 client: stretches: select/unselect stretches by clicking on them on the map
Markus Kottlaender <markus@intevation.de>
parents: 2909
diff changeset
169 .forEach(f => {
c8c7122047a2 client: stretches: select/unselect stretches by clicking on them on the map
Markus Kottlaender <markus@intevation.de>
parents: 2909
diff changeset
170 f.set("highlighted", false);
c8c7122047a2 client: stretches: select/unselect stretches by clicking on them on the map
Markus Kottlaender <markus@intevation.de>
parents: 2909
diff changeset
171 if (id === f.getId()) {
c8c7122047a2 client: stretches: select/unselect stretches by clicking on them on the map
Markus Kottlaender <markus@intevation.de>
parents: 2909
diff changeset
172 f.set("highlighted", true);
c8c7122047a2 client: stretches: select/unselect stretches by clicking on them on the map
Markus Kottlaender <markus@intevation.de>
parents: 2909
diff changeset
173 }
c8c7122047a2 client: stretches: select/unselect stretches by clicking on them on the map
Markus Kottlaender <markus@intevation.de>
parents: 2909
diff changeset
174 });
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
175 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
176 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
177 mounted() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
178 let map = new Map({
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
179 layers: [...Object.values(this.layers)],
2984
61f69e8919d3 client: prepared splitview
Markus Kottlaender <markus@intevation.de>
parents: 2966
diff changeset
180 target: "map-" + this.uuid,
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
181 controls: [],
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
182 view: new View({
1313
e4e35fb2d995 save map extent (center/zoom) in store, to not lose it when switching between map and admin area
Markus Kottlaender <markus@intevation.de>
parents: 1296
diff changeset
183 center: [this.extent.lon, this.extent.lat],
2139
22bbd0d0500e client: limit zooming out to roughly Europe
Bernhard Reiter <bernhard@intevation.de>
parents: 2125
diff changeset
184 minZoom: 5, // restrict zooming out to ~size of Europe for width 1000px
1313
e4e35fb2d995 save map extent (center/zoom) in store, to not lose it when switching between map and admin area
Markus Kottlaender <markus@intevation.de>
parents: 1296
diff changeset
185 zoom: this.extent.zoom,
2966
4bc2cc6364bc client: inlined component property
Markus Kottlaender <markus@intevation.de>
parents: 2965
diff changeset
186 projection: "EPSG:3857"
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
187 })
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
188 });
1313
e4e35fb2d995 save map extent (center/zoom) in store, to not lose it when switching between map and admin area
Markus Kottlaender <markus@intevation.de>
parents: 1296
diff changeset
189 map.on("moveend", event => {
e4e35fb2d995 save map extent (center/zoom) in store, to not lose it when switching between map and admin area
Markus Kottlaender <markus@intevation.de>
parents: 1296
diff changeset
190 const center = event.map.getView().getCenter();
e4e35fb2d995 save map extent (center/zoom) in store, to not lose it when switching between map and admin area
Markus Kottlaender <markus@intevation.de>
parents: 1296
diff changeset
191 this.$store.commit("map/extent", {
e4e35fb2d995 save map extent (center/zoom) in store, to not lose it when switching between map and admin area
Markus Kottlaender <markus@intevation.de>
parents: 1296
diff changeset
192 lat: center[1],
e4e35fb2d995 save map extent (center/zoom) in store, to not lose it when switching between map and admin area
Markus Kottlaender <markus@intevation.de>
parents: 1296
diff changeset
193 lon: center[0],
e4e35fb2d995 save map extent (center/zoom) in store, to not lose it when switching between map and admin area
Markus Kottlaender <markus@intevation.de>
parents: 1296
diff changeset
194 zoom: event.map.getView().getZoom()
e4e35fb2d995 save map extent (center/zoom) in store, to not lose it when switching between map and admin area
Markus Kottlaender <markus@intevation.de>
parents: 1296
diff changeset
195 });
e4e35fb2d995 save map extent (center/zoom) in store, to not lose it when switching between map and admin area
Markus Kottlaender <markus@intevation.de>
parents: 1296
diff changeset
196 });
1296
99c039e86624 replaced manual store cleanup on logout with central store reset
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
197 this.$store.dispatch("map/openLayersMap", map);
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
198
2310
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
199 if (this.initialLoad) {
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
200 this.$store.commit("map/initialLoad", false);
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
201 var currentUser = this.$store.state.user.user;
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
202 HTTP.get("/users/" + currentUser, {
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
203 headers: {
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
204 "X-Gemma-Auth": localStorage.getItem("token"),
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
205 "Content-type": "text/xml; charset=UTF-8"
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
206 }
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
207 })
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
208 .then(response => {
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
209 this.$store.commit("map/moveToBoundingBox", {
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
210 boundingBox: [
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
211 response.data.extent.x1,
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
212 response.data.extent.y1,
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
213 response.data.extent.x2,
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
214 response.data.extent.y2
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
215 ],
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
216 zoom: 17,
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
217 preventZoomOut: true
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
218 });
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
219 })
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
220 .catch(error => {
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
221 const { status, data } = error.response;
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
222 displayError({
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
223 title: this.$gettext("Backend Error"),
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
224 message: `${status}: ${data.message || data}`
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
225 });
2190
ecb0ad836aa0 linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2188
diff changeset
226 });
2310
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
227 }
2188
005da2c21b11 client: Zoom to users responisbility area on startup.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2185
diff changeset
228
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
229 // TODO make display of layers more dynamic, e.g. from a list
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
230
2964
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
231 this.layers.FAIRWAYDIMENSIONSLOS1.getSource().setLoader(
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
232 this.buildVectorLoader(
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
233 {
2184
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
234 featureTypes: ["fairway_dimensions"],
2964
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
235 filter: equalTo("level_of_service", 1)
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
236 },
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
237 this.layers.FAIRWAYDIMENSIONSLOS1.getSource(),
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
238 true
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
239 )
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
240 );
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
241
2964
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
242 this.layers.FAIRWAYDIMENSIONSLOS2.getSource().setLoader(
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
243 this.buildVectorLoader(
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
244 {
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
245 featureTypes: ["fairway_dimensions"],
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
246 filter: equalTo("level_of_service", 2)
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
247 },
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
248 this.layers.FAIRWAYDIMENSIONSLOS2.getSource(),
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
249 true
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
250 )
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
251 );
2184
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
252
2964
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
253 this.layers.FAIRWAYDIMENSIONSLOS3.getSource().setLoader(
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
254 this.buildVectorLoader(
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
255 {
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
256 featureTypes: ["fairway_dimensions"],
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
257 filter: equalTo("level_of_service", 3)
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
258 },
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
259 this.layers.FAIRWAYDIMENSIONSLOS3.getSource(),
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
260 true
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
261 )
b9625cf91f95 client: maplayer: use buildVectorLoader for fairway dimensions too
Markus Kottlaender <markus@intevation.de>
parents: 2958
diff changeset
262 );
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
263
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
264 // load following layers with bboxStrategy (using our request builder)
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
265 this.layers.WATERWAYAREA.getSource().setLoader(
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
266 this.buildVectorLoader(
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
267 {
1794
de4543bfbad5 Use internal waterway area data for map (not d4d wfs).
Sascha Wilde <wilde@intevation.de>
parents: 1719
diff changeset
268 featureTypes: ["waterway_area"],
de4543bfbad5 Use internal waterway area data for map (not d4d wfs).
Sascha Wilde <wilde@intevation.de>
parents: 1719
diff changeset
269 geometryName: "area"
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
270 },
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
271 this.layers.WATERWAYAREA.getSource()
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
272 )
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
273 );
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
274
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
275 this.layers.WATERWAYAXIS.getSource().setLoader(
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
276 this.buildVectorLoader(
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
277 {
1719
a005816388b7 Use internal waterway axis data for map (not d4d wfs).
Sascha Wilde <wilde@intevation.de>
parents: 1613
diff changeset
278 featureTypes: ["waterway_axis"],
a005816388b7 Use internal waterway axis data for map (not d4d wfs).
Sascha Wilde <wilde@intevation.de>
parents: 1613
diff changeset
279 geometryName: "wtwaxs"
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
280 },
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
281 this.layers.WATERWAYAXIS.getSource()
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
282 )
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
283 );
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
284
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
285 this.layers.WATERWAYPROFILES.getSource().setLoader(
2157
8be0fbac2297 Added layer for waterway profiles.
Sascha Wilde <wilde@intevation.de>
parents: 2139
diff changeset
286 this.buildVectorLoader(
8be0fbac2297 Added layer for waterway profiles.
Sascha Wilde <wilde@intevation.de>
parents: 2139
diff changeset
287 {
8be0fbac2297 Added layer for waterway profiles.
Sascha Wilde <wilde@intevation.de>
parents: 2139
diff changeset
288 featureTypes: ["waterway_profiles"],
8be0fbac2297 Added layer for waterway profiles.
Sascha Wilde <wilde@intevation.de>
parents: 2139
diff changeset
289 geometryName: "geom"
8be0fbac2297 Added layer for waterway profiles.
Sascha Wilde <wilde@intevation.de>
parents: 2139
diff changeset
290 },
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
291 this.layers.WATERWAYPROFILES.getSource()
2157
8be0fbac2297 Added layer for waterway profiles.
Sascha Wilde <wilde@intevation.de>
parents: 2139
diff changeset
292 )
8be0fbac2297 Added layer for waterway profiles.
Sascha Wilde <wilde@intevation.de>
parents: 2139
diff changeset
293 );
8be0fbac2297 Added layer for waterway profiles.
Sascha Wilde <wilde@intevation.de>
parents: 2139
diff changeset
294
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
295 this.layers.DISTANCEMARKS.getSource().setLoader(
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
296 this.buildVectorLoader(
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
297 {
2300
3dd2de314b1b Use distance marks from wamos db in map.
Sascha Wilde <wilde@intevation.de>
parents: 2273
diff changeset
298 featureTypes: ["distance_marks_ashore_geoserver"],
3dd2de314b1b Use distance marks from wamos db in map.
Sascha Wilde <wilde@intevation.de>
parents: 2273
diff changeset
299 geometryName: "geom"
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
300 },
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
301 this.layers.DISTANCEMARKS.getSource()
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
302 )
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
303 );
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
304
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
305 this.layers.DISTANCEMARKSAXIS.getSource().setLoader(
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
306 this.buildVectorLoader(
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
307 {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
308 featureTypes: ["distance_marks_geoserver"],
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
309 geometryName: "geom"
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
310 },
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
311 this.layers.DISTANCEMARKSAXIS.getSource()
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
312 )
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
313 );
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
314
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
315 this.layers.GAUGES.getSource().setLoader(
2451
960550ccca55 Added gauges layer.
Sascha Wilde <wilde@intevation.de>
parents: 2446
diff changeset
316 this.buildVectorLoader(
960550ccca55 Added gauges layer.
Sascha Wilde <wilde@intevation.de>
parents: 2446
diff changeset
317 {
960550ccca55 Added gauges layer.
Sascha Wilde <wilde@intevation.de>
parents: 2446
diff changeset
318 featureTypes: ["gauges_geoserver"],
960550ccca55 Added gauges layer.
Sascha Wilde <wilde@intevation.de>
parents: 2446
diff changeset
319 geometryName: "geom"
960550ccca55 Added gauges layer.
Sascha Wilde <wilde@intevation.de>
parents: 2446
diff changeset
320 },
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
321 this.layers.GAUGES.getSource()
2451
960550ccca55 Added gauges layer.
Sascha Wilde <wilde@intevation.de>
parents: 2446
diff changeset
322 )
960550ccca55 Added gauges layer.
Sascha Wilde <wilde@intevation.de>
parents: 2446
diff changeset
323 );
960550ccca55 Added gauges layer.
Sascha Wilde <wilde@intevation.de>
parents: 2446
diff changeset
324
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
325 this.layers.STRETCHES.getSource().setLoader(
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
326 this.buildVectorLoader(
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
327 {
1943
52a6e63d5dcc Added stretches layer, removed WW-Area named.
Sascha Wilde <wilde@intevation.de>
parents: 1932
diff changeset
328 featureTypes: ["stretches_geoserver"],
1983
f9f1babe52ae Fix area generation from multipolygon input
Tom Gottfried <tom@intevation.de>
parents: 1963
diff changeset
329 geometryName: "area"
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
330 },
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
331 this.layers.STRETCHES.getSource(),
2909
5105f6ad0176 client: stretches: fixed highlighting of selected stretch
Markus Kottlaender <markus@intevation.de>
parents: 2870
diff changeset
332 f => {
2910
c8c7122047a2 client: stretches: select/unselect stretches by clicking on them on the map
Markus Kottlaender <markus@intevation.de>
parents: 2909
diff changeset
333 if (f.getId() === this.selectedStretchId) {
2909
5105f6ad0176 client: stretches: fixed highlighting of selected stretch
Markus Kottlaender <markus@intevation.de>
parents: 2870
diff changeset
334 f.set("highlighted", true);
5105f6ad0176 client: stretches: fixed highlighting of selected stretch
Markus Kottlaender <markus@intevation.de>
parents: 2870
diff changeset
335 }
5105f6ad0176 client: stretches: fixed highlighting of selected stretch
Markus Kottlaender <markus@intevation.de>
parents: 2870
diff changeset
336 return f;
5105f6ad0176 client: stretches: fixed highlighting of selected stretch
Markus Kottlaender <markus@intevation.de>
parents: 2870
diff changeset
337 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
338 )
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
339 );
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
340
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
341 this.layers.BOTTLENECKSTATUS.getSource().setLoader(
2482
ae1987c5beb3 client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents: 2446
diff changeset
342 this.buildVectorLoader(
ae1987c5beb3 client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents: 2446
diff changeset
343 {
ae1987c5beb3 client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents: 2446
diff changeset
344 featureTypes: ["bottlenecks_geoserver"],
ae1987c5beb3 client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents: 2446
diff changeset
345 geometryName: "area"
ae1987c5beb3 client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents: 2446
diff changeset
346 },
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
347 this.layers.BOTTLENECKSTATUS.getSource()
2482
ae1987c5beb3 client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents: 2446
diff changeset
348 )
ae1987c5beb3 client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents: 2446
diff changeset
349 );
ae1987c5beb3 client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents: 2446
diff changeset
350
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
351 this.layers.BOTTLENECKS.getSource().setLoader(
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
352 this.buildVectorLoader(
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
353 {
1963
f7a35ba9f409 Added view for publishing bottlenecks
Sascha Wilde <wilde@intevation.de>
parents: 1958
diff changeset
354 featureTypes: ["bottlenecks_geoserver"],
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
355 geometryName: "area"
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
356 },
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
357 this.layers.BOTTLENECKS.getSource()
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
358 )
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
359 );
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
360 HTTP.get("/system/style/Bottlenecks/stroke", {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
361 headers: { "X-Gemma-Auth": localStorage.getItem("token") }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
362 })
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
363 .then(response => {
2482
ae1987c5beb3 client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents: 2446
diff changeset
364 let btlnStrokeC = response.data.code;
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
365 HTTP.get("/system/style/Bottlenecks/fill", {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
366 headers: { "X-Gemma-Auth": localStorage.getItem("token") }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
367 })
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
368 .then(response => {
2482
ae1987c5beb3 client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents: 2446
diff changeset
369 let btlnFillC = response.data.code;
ae1987c5beb3 client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents: 2446
diff changeset
370 var newStyle = new Style({
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
371 stroke: new Stroke({
2482
ae1987c5beb3 client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents: 2446
diff changeset
372 color: btlnStrokeC,
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
373 width: 4
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
374 }),
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
375 fill: new Fill({
2482
ae1987c5beb3 client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents: 2446
diff changeset
376 color: btlnFillC
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
377 })
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
378 });
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2951
diff changeset
379 this.layers.BOTTLENECKS.setStyle(newStyle);
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
380 })
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
381 .catch(error => {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
382 console.log(error);
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
383 });
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
384 })
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
385 .catch(error => {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
386 console.log(error);
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
387 });
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
388
1958
ae4ada3933af clean state on identify tool on mount of component
Thomas Junk <thomas.junk@intevation.de>
parents: 1943
diff changeset
389 this.$store.dispatch("map/disableIdentifyTool");
1435
7fa030127b05 fixed panning problem
Markus Kottlaender <markus@intevation.de>
parents: 1424
diff changeset
390 this.$store.dispatch("map/enableIdentifyTool");
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
391 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
392 };
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
393 </script>