annotate client/src/components/Maplayer.vue @ 2310:92b21df288e2

client: use user specific extent only on initial load The map initialization is executed each time you go from a non-map view (configuration etc.) back to the map. Thus we cannot move the map to the user specific extent everytime the map is initialized. The fix that this commit introduces is maybe a bit ugly but an ideal solution would require more work. The problem is that the map cannot be initialized with the users bounding box right away. There is already a default map extent, defined by center and zoom. This needs to be overwritten by the user specific extent.
author Markus Kottlaender <markus@intevation.de>
date Mon, 18 Feb 2019 15:38:54 +0100
parents f42a7ba05979
children edaf0d22fc9c
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>
1362
ca33ad696594 remove the first empyty lines
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1313
diff changeset
2 <div id="map" :class="mapStyle"></div>
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
3 </template>
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
4
1449
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1435
diff changeset
5 <style lang="scss" scoped>
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1435
diff changeset
6 .nocursor {
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1435
diff changeset
7 cursor: none;
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1435
diff changeset
8 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
9
1449
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1435
diff changeset
10 .mapsplit {
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1435
diff changeset
11 height: 50vh;
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1435
diff changeset
12 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
13
1449
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1435
diff changeset
14 .mapfull {
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1435
diff changeset
15 height: 100vh;
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1435
diff changeset
16 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
17 </style>
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
18
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
19 <script>
1362
ca33ad696594 remove the first empyty lines
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1313
diff changeset
20 /* 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
21 * without warranty, see README.md and license for details.
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
22 *
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
23 * SPDX-License-Identifier: AGPL-3.0-or-later
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
24 * License-Filename: LICENSES/AGPL-3.0.txt
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
25 *
1932
e734d48ef964 client: cleanup code: remove browser based printing css attempt
Bernhard Reiter <bernhard@intevation.de>
parents: 1794
diff changeset
26 * Copyright (C) 2018, 2019 by via donau
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
27 * – Österreichische Wasserstraßen-Gesellschaft mbH
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
28 * Software engineering by Intevation GmbH
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 * Author(s):
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
31 * * Thomas Junk <thomas.junk@intevation.de>
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
32 * * Bernhard E. Reiter <bernhard.reiter@intevation.de>
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
33 */
1613
f2d24dceecc7 refac: cleanup import paths
Thomas Junk <thomas.junk@intevation.de>
parents: 1558
diff changeset
34 import { HTTP } from "@/lib/http";
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
35 import { mapGetters, mapState } from "vuex";
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
36 import "ol/ol.css";
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
37 import { Map, View } from "ol";
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
38 import { WFS, GeoJSON } from "ol/format.js";
2125
ea5a0e771b71 Distinct fairway layers per LOS
Markus Kottlaender <markus@intevation.de>
parents: 1983
diff changeset
39 import { equalTo } from "ol/format/filter.js";
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
40 import { Stroke, Style, Fill } from "ol/style.js";
2190
ecb0ad836aa0 linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2188
diff changeset
41 import { displayError } from "@/lib/errors.js";
2273
4eeaba4ef573 client: rename the Fairway Dimensions layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2190
diff changeset
42 import { LAYERS } from "@/store/map.js";
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
43
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
44 /* for the sake of debugging */
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
45 /* eslint-disable no-console */
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
46 export default {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
47 name: "maplayer",
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
48 data() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
49 return {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
50 projection: "EPSG:3857"
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
51 };
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
52 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
53 computed: {
1424
4afbc615cfc2 little code cleanup
Markus Kottlaender <markus@intevation.de>
parents: 1394
diff changeset
54 ...mapGetters("map", ["getLayerByName", "getVSourceByName"]),
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
55 ...mapState("map", [
2310
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
56 "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
57 "extent",
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
58 "layers",
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
59 "openLayersMap",
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
60 "lineTool",
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
61 "polygonTool",
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
62 "cutTool"
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
63 ]),
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
64 ...mapState("bottlenecks", ["selectedSurvey"]),
1394
b350b0b5cb6c refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1372
diff changeset
65 ...mapState("application", ["showSplitscreen"]),
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
66 mapStyle() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
67 return {
1394
b350b0b5cb6c refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1372
diff changeset
68 mapfull: !this.showSplitscreen,
b350b0b5cb6c refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1372
diff changeset
69 mapsplit: this.showSplitscreen,
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
70 nocursor: this.hasActiveInteractions
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
71 };
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
72 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
73 hasActiveInteractions() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
74 return (
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
75 (this.lineTool && this.lineTool.getActive()) ||
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
76 (this.polygonTool && this.polygonTool.getActive()) ||
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
77 (this.cutTool && this.cutTool.getActive())
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
78 );
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
79 }
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 methods: {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
82 buildVectorLoader(featureRequestOptions, endpoint, vectorSource) {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
83 // build a function to be used for VectorSource.setLoader()
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
84 // make use of WFS().writeGetFeature to build the request
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
85 // and use our HTTP library to actually do it
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
86 // NOTE: a) the geometryName has to be given in featureRequestOptions,
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
87 // because we want to load depending on the bbox
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
88 // b) the VectorSource has to have the option strategy: bbox
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
89 featureRequestOptions["outputFormat"] = "application/json";
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
90 var loader = function(extent, resolution, projection) {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
91 featureRequestOptions["bbox"] = extent;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
92 featureRequestOptions["srsName"] = projection.getCode();
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
93 var featureRequest = new WFS().writeGetFeature(featureRequestOptions);
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
94 // DEBUG console.log(featureRequest);
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
95 HTTP.post(
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
96 endpoint,
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
97 new XMLSerializer().serializeToString(featureRequest),
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
98 {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
99 headers: {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
100 "X-Gemma-Auth": localStorage.getItem("token"),
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
101 "Content-type": "text/xml; charset=UTF-8"
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
102 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
103 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
104 )
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
105 .then(response => {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
106 var features = new GeoJSON().readFeatures(
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
107 JSON.stringify(response.data)
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 vectorSource.addFeatures(features);
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
110 // console.log(
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
111 // "loaded",
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
112 // features.length,
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
113 // featureRequestOptions.featureTypes,
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
114 // "features"
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
115 // );
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
116 // DEBUG console.log("loaded ", features, "for", vectorSource);
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
117 // eslint-disable-next-line
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
118 })
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
119 .catch(() => {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
120 vectorSource.removeLoadedExtent(extent);
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
121 });
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
122 };
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
123 return loader;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
124 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
125 updateBottleneckFilter(bottleneck_id, datestr) {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
126 console.log("updating filter with", bottleneck_id, datestr);
1424
4afbc615cfc2 little code cleanup
Markus Kottlaender <markus@intevation.de>
parents: 1394
diff changeset
127 const layer = this.getLayerByName("Bottleneck isolines");
4afbc615cfc2 little code cleanup
Markus Kottlaender <markus@intevation.de>
parents: 1394
diff changeset
128 const wmsSrc = layer.data.getSource();
4afbc615cfc2 little code cleanup
Markus Kottlaender <markus@intevation.de>
parents: 1394
diff changeset
129 const exists = bottleneck_id != "does_not_exist";
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
130
1424
4afbc615cfc2 little code cleanup
Markus Kottlaender <markus@intevation.de>
parents: 1394
diff changeset
131 if (exists) {
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
132 wmsSrc.updateParams({
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
133 cql_filter:
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
134 "date_info='" +
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
135 datestr +
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
136 "' AND bottleneck_id='" +
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
137 bottleneck_id +
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 }
1424
4afbc615cfc2 little code cleanup
Markus Kottlaender <markus@intevation.de>
parents: 1394
diff changeset
141 layer.isVisible = exists;
4afbc615cfc2 little code cleanup
Markus Kottlaender <markus@intevation.de>
parents: 1394
diff changeset
142 layer.data.setVisible(exists);
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
143 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
144 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
145 watch: {
1394
b350b0b5cb6c refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents: 1372
diff changeset
146 showSplitscreen() {
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
147 const map = this.openLayersMap;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
148 this.$nextTick(() => {
1296
99c039e86624 replaced manual store cleanup on logout with central store reset
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
149 map && map.updateSize();
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
150 });
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
151 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
152 selectedSurvey(newSelectedSurvey) {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
153 if (newSelectedSurvey) {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
154 this.updateBottleneckFilter(
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
155 newSelectedSurvey.bottleneck_id,
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
156 newSelectedSurvey.date_info
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
157 );
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
158 } else {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
159 this.updateBottleneckFilter("does_not_exist", "1999-10-01");
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
160 }
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 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
163 mounted() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
164 let map = new Map({
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
165 layers: [...this.layers.map(x => x.data)],
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
166 target: "map",
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
167 controls: [],
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
168 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
169 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
170 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
171 zoom: this.extent.zoom,
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
172 projection: this.projection
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
173 })
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
174 });
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
175 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
176 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
177 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
178 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
179 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
180 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
181 });
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
182 });
1296
99c039e86624 replaced manual store cleanup on logout with central store reset
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
183 this.$store.dispatch("map/openLayersMap", map);
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
184
2310
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
185 if (this.initialLoad) {
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
186 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
187 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
188 HTTP.get("/users/" + currentUser, {
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
189 headers: {
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
190 "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
191 "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
192 }
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
193 })
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
194 .then(response => {
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
195 this.$store.commit("map/moveToBoundingBox", {
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
196 boundingBox: [
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
197 response.data.extent.x1,
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
198 response.data.extent.y1,
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
199 response.data.extent.x2,
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
200 response.data.extent.y2
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
201 ],
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
202 zoom: 17,
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
203 preventZoomOut: true
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
204 });
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
205 })
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
206 .catch(error => {
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
207 const { status, data } = error.response;
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
208 displayError({
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
209 title: this.$gettext("Backend Error"),
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
210 message: `${status}: ${data.message || data}`
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
211 });
2190
ecb0ad836aa0 linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2188
diff changeset
212 });
2310
92b21df288e2 client: use user specific extent only on initial load
Markus Kottlaender <markus@intevation.de>
parents: 2308
diff changeset
213 }
2188
005da2c21b11 client: Zoom to users responisbility area on startup.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2185
diff changeset
214
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
215 // 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
216
2125
ea5a0e771b71 Distinct fairway layers per LOS
Markus Kottlaender <markus@intevation.de>
parents: 1983
diff changeset
217 // load different fairway dimension layers (level of service)
2273
4eeaba4ef573 client: rename the Fairway Dimensions layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2190
diff changeset
218 [
4eeaba4ef573 client: rename the Fairway Dimensions layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2190
diff changeset
219 LAYERS.FAIRWAYDIMENSIONSLOS1,
4eeaba4ef573 client: rename the Fairway Dimensions layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2190
diff changeset
220 LAYERS.FAIRWAYDIMENSIONSLOS2,
4eeaba4ef573 client: rename the Fairway Dimensions layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2190
diff changeset
221 LAYERS.FAIRWAYDIMENSIONSLOS3
4eeaba4ef573 client: rename the Fairway Dimensions layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2190
diff changeset
222 ].forEach((los, i) => {
2184
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
223 // loading the full WFS layer without bboxStrategy
2273
4eeaba4ef573 client: rename the Fairway Dimensions layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2190
diff changeset
224 var source = this.getVSourceByName(los);
2190
ecb0ad836aa0 linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2188
diff changeset
225 /*eslint-disable no-unused-vars */
2184
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
226 var loader = function(extent, resolution, projection) {
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
227 var featureRequest = new WFS().writeGetFeature({
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
228 srsName: "EPSG:3857",
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
229 featureNS: "gemma",
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
230 featurePrefix: "gemma",
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
231 featureTypes: ["fairway_dimensions"],
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
232 outputFormat: "application/json",
2273
4eeaba4ef573 client: rename the Fairway Dimensions layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2190
diff changeset
233 filter: equalTo("level_of_service", i + 1)
2184
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
234 });
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
235
2184
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
236 featureRequest["outputFormat"] = "application/json";
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
237 // NOTE: loading the full fairway_dimensions makes sure
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
238 // that all are available for the intersection with the profile
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
239 HTTP.post(
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
240 "/internal/wfs",
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
241 new XMLSerializer().serializeToString(featureRequest),
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
242 {
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
243 headers: {
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
244 "X-Gemma-Auth": localStorage.getItem("token"),
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
245 "Content-type": "text/xml; charset=UTF-8"
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
246 }
2125
ea5a0e771b71 Distinct fairway layers per LOS
Markus Kottlaender <markus@intevation.de>
parents: 1983
diff changeset
247 }
2184
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
248 ).then(response => {
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
249 source.addFeatures(
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
250 new GeoJSON().readFeatures(JSON.stringify(response.data))
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
251 );
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
252 // would scale to the extend of all resulting features
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
253 // this.openLayersMap.getView().fit(vectorSrc.getExtent());
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
254 });
2185
9212b3d60f2a linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2184
diff changeset
255 };
2184
826fc7309370 client: Added refresh button to reload the WFS layer data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2157
diff changeset
256
2273
4eeaba4ef573 client: rename the Fairway Dimensions layers
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2190
diff changeset
257 layer = this.getLayerByName(los);
2185
9212b3d60f2a linting
Thomas Junk <thomas.junk@intevation.de>
parents: 2184
diff changeset
258 layer.data.getSource().setLoader(loader);
2308
f42a7ba05979 client: honor isVisible attribute for more layers
Bernhard Reiter <bernhard@intevation.de>
parents: 2300
diff changeset
259 layer.data.setVisible(layer.isVisible);
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
260 });
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
261
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
262 // load following layers with bboxStrategy (using our request builder)
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
263 var layer = null;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
264
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
265 layer = this.getLayerByName("Waterway Area");
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
266 layer.data.getSource().setLoader(
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
267 this.buildVectorLoader(
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
268 {
1794
de4543bfbad5 Use internal waterway area data for map (not d4d wfs).
Sascha Wilde <wilde@intevation.de>
parents: 1719
diff changeset
269 featureNS: "gemma",
de4543bfbad5 Use internal waterway area data for map (not d4d wfs).
Sascha Wilde <wilde@intevation.de>
parents: 1719
diff changeset
270 featurePrefix: "gemma",
de4543bfbad5 Use internal waterway area data for map (not d4d wfs).
Sascha Wilde <wilde@intevation.de>
parents: 1719
diff changeset
271 featureTypes: ["waterway_area"],
de4543bfbad5 Use internal waterway area data for map (not d4d wfs).
Sascha Wilde <wilde@intevation.de>
parents: 1719
diff changeset
272 geometryName: "area"
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
273 },
1794
de4543bfbad5 Use internal waterway area data for map (not d4d wfs).
Sascha Wilde <wilde@intevation.de>
parents: 1719
diff changeset
274 "/internal/wfs",
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
275 layer.data.getSource()
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
276 )
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
277 );
2308
f42a7ba05979 client: honor isVisible attribute for more layers
Bernhard Reiter <bernhard@intevation.de>
parents: 2300
diff changeset
278 layer.data.setVisible(layer.isVisible);
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
279
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
280 layer = this.getLayerByName("Waterway Axis");
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
281 layer.data.getSource().setLoader(
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
282 this.buildVectorLoader(
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
283 {
1719
a005816388b7 Use internal waterway axis data for map (not d4d wfs).
Sascha Wilde <wilde@intevation.de>
parents: 1613
diff changeset
284 featureNS: "gemma",
a005816388b7 Use internal waterway axis data for map (not d4d wfs).
Sascha Wilde <wilde@intevation.de>
parents: 1613
diff changeset
285 featurePrefix: "gemma",
a005816388b7 Use internal waterway axis data for map (not d4d wfs).
Sascha Wilde <wilde@intevation.de>
parents: 1613
diff changeset
286 featureTypes: ["waterway_axis"],
a005816388b7 Use internal waterway axis data for map (not d4d wfs).
Sascha Wilde <wilde@intevation.de>
parents: 1613
diff changeset
287 geometryName: "wtwaxs"
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
288 },
1719
a005816388b7 Use internal waterway axis data for map (not d4d wfs).
Sascha Wilde <wilde@intevation.de>
parents: 1613
diff changeset
289 "/internal/wfs",
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
290 layer.data.getSource()
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
291 )
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
292 );
2308
f42a7ba05979 client: honor isVisible attribute for more layers
Bernhard Reiter <bernhard@intevation.de>
parents: 2300
diff changeset
293 layer.data.setVisible(layer.isVisible);
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
294
2157
8be0fbac2297 Added layer for waterway profiles.
Sascha Wilde <wilde@intevation.de>
parents: 2139
diff changeset
295 layer = this.getLayerByName("Waterway Profiles");
8be0fbac2297 Added layer for waterway profiles.
Sascha Wilde <wilde@intevation.de>
parents: 2139
diff changeset
296 layer.data.getSource().setLoader(
8be0fbac2297 Added layer for waterway profiles.
Sascha Wilde <wilde@intevation.de>
parents: 2139
diff changeset
297 this.buildVectorLoader(
8be0fbac2297 Added layer for waterway profiles.
Sascha Wilde <wilde@intevation.de>
parents: 2139
diff changeset
298 {
8be0fbac2297 Added layer for waterway profiles.
Sascha Wilde <wilde@intevation.de>
parents: 2139
diff changeset
299 featureNS: "gemma",
8be0fbac2297 Added layer for waterway profiles.
Sascha Wilde <wilde@intevation.de>
parents: 2139
diff changeset
300 featurePrefix: "gemma",
8be0fbac2297 Added layer for waterway profiles.
Sascha Wilde <wilde@intevation.de>
parents: 2139
diff changeset
301 featureTypes: ["waterway_profiles"],
8be0fbac2297 Added layer for waterway profiles.
Sascha Wilde <wilde@intevation.de>
parents: 2139
diff changeset
302 geometryName: "geom"
8be0fbac2297 Added layer for waterway profiles.
Sascha Wilde <wilde@intevation.de>
parents: 2139
diff changeset
303 },
8be0fbac2297 Added layer for waterway profiles.
Sascha Wilde <wilde@intevation.de>
parents: 2139
diff changeset
304 "/internal/wfs",
8be0fbac2297 Added layer for waterway profiles.
Sascha Wilde <wilde@intevation.de>
parents: 2139
diff changeset
305 layer.data.getSource()
8be0fbac2297 Added layer for waterway profiles.
Sascha Wilde <wilde@intevation.de>
parents: 2139
diff changeset
306 )
8be0fbac2297 Added layer for waterway profiles.
Sascha Wilde <wilde@intevation.de>
parents: 2139
diff changeset
307 );
2308
f42a7ba05979 client: honor isVisible attribute for more layers
Bernhard Reiter <bernhard@intevation.de>
parents: 2300
diff changeset
308 layer.data.setVisible(layer.isVisible);
2157
8be0fbac2297 Added layer for waterway profiles.
Sascha Wilde <wilde@intevation.de>
parents: 2139
diff changeset
309
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
310 layer = this.getLayerByName("Distance marks");
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
311 layer.data.getSource().setLoader(
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
312 this.buildVectorLoader(
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
313 {
2300
3dd2de314b1b Use distance marks from wamos db in map.
Sascha Wilde <wilde@intevation.de>
parents: 2273
diff changeset
314 featureNS: "gemma",
3dd2de314b1b Use distance marks from wamos db in map.
Sascha Wilde <wilde@intevation.de>
parents: 2273
diff changeset
315 featurePrefix: "gemma",
3dd2de314b1b Use distance marks from wamos db in map.
Sascha Wilde <wilde@intevation.de>
parents: 2273
diff changeset
316 featureTypes: ["distance_marks_ashore_geoserver"],
3dd2de314b1b Use distance marks from wamos db in map.
Sascha Wilde <wilde@intevation.de>
parents: 2273
diff changeset
317 geometryName: "geom"
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
318 },
2300
3dd2de314b1b Use distance marks from wamos db in map.
Sascha Wilde <wilde@intevation.de>
parents: 2273
diff changeset
319 "/internal/wfs",
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
320 layer.data.getSource()
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
321 )
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
322 );
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
323 layer.data.setVisible(layer.isVisible);
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
324
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
325 layer = this.getLayerByName("Distance marks, Axis");
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
326 layer.data.getSource().setLoader(
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
327 this.buildVectorLoader(
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
328 {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
329 featureNS: "gemma",
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
330 featurePrefix: "gemma",
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
331 featureTypes: ["distance_marks_geoserver"],
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
332 geometryName: "geom"
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
333 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
334 "/internal/wfs",
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
335 layer.data.getSource()
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
336 )
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
337 );
2308
f42a7ba05979 client: honor isVisible attribute for more layers
Bernhard Reiter <bernhard@intevation.de>
parents: 2300
diff changeset
338 layer.data.setVisible(layer.isVisible);
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
339
1943
52a6e63d5dcc Added stretches layer, removed WW-Area named.
Sascha Wilde <wilde@intevation.de>
parents: 1932
diff changeset
340 layer = this.getLayerByName("Stretches");
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
341 layer.data.getSource().setLoader(
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
342 this.buildVectorLoader(
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
343 {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
344 featureNS: "gemma",
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
345 featurePrefix: "gemma",
1943
52a6e63d5dcc Added stretches layer, removed WW-Area named.
Sascha Wilde <wilde@intevation.de>
parents: 1932
diff changeset
346 featureTypes: ["stretches_geoserver"],
1983
f9f1babe52ae Fix area generation from multipolygon input
Tom Gottfried <tom@intevation.de>
parents: 1963
diff changeset
347 geometryName: "area"
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
348 },
1943
52a6e63d5dcc Added stretches layer, removed WW-Area named.
Sascha Wilde <wilde@intevation.de>
parents: 1932
diff changeset
349 "/internal/wfs",
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
350 layer.data.getSource()
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
351 )
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
352 );
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
353 layer.data.setVisible(layer.isVisible);
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
354
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
355 layer = this.getLayerByName("Bottlenecks");
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
356 layer.data.getSource().setLoader(
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
357 this.buildVectorLoader(
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 featureNS: "gemma",
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
360 featurePrefix: "gemma",
1963
f7a35ba9f409 Added view for publishing bottlenecks
Sascha Wilde <wilde@intevation.de>
parents: 1958
diff changeset
361 featureTypes: ["bottlenecks_geoserver"],
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
362 geometryName: "area"
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
363 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
364 "/internal/wfs",
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
365 layer.data.getSource()
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
366 )
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
367 );
2308
f42a7ba05979 client: honor isVisible attribute for more layers
Bernhard Reiter <bernhard@intevation.de>
parents: 2300
diff changeset
368 layer.data.setVisible(layer.isVisible);
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
369 HTTP.get("/system/style/Bottlenecks/stroke", {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
370 headers: { "X-Gemma-Auth": localStorage.getItem("token") }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
371 })
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
372 .then(response => {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
373 this.btlnStrokeC = response.data.code;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
374 HTTP.get("/system/style/Bottlenecks/fill", {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
375 headers: { "X-Gemma-Auth": localStorage.getItem("token") }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
376 })
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
377 .then(response => {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
378 this.btlnFillC = response.data.code;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
379 var newstyle = new Style({
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
380 stroke: new Stroke({
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
381 color: this.btlnStrokeC,
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
382 width: 4
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 fill: new Fill({
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
385 color: this.btlnFillC
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
386 })
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 layer.data.setStyle(newstyle);
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
389 })
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
390 .catch(error => {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
391 console.log(error);
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 })
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
394 .catch(error => {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
395 console.log(error);
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
396 });
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
397
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
398 // so none is shown
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
399 this.updateBottleneckFilter("does_not_exist", "1999-10-01");
1958
ae4ada3933af clean state on identify tool on mount of component
Thomas Junk <thomas.junk@intevation.de>
parents: 1943
diff changeset
400 this.$store.dispatch("map/disableIdentifyTool");
1435
7fa030127b05 fixed panning problem
Markus Kottlaender <markus@intevation.de>
parents: 1424
diff changeset
401 this.$store.dispatch("map/enableIdentifyTool");
1372
553aadd97087 new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents: 1362
diff changeset
402 this.$store.dispatch("bottlenecks/loadBottlenecks");
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
403 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
404 };
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
405 </script>