Mercurial > gemma
annotate client/src/components/Maplayer.vue @ 2503:51dbcbf11c5f critical-bottlenecks
client: addendum for e13daf439068
Of course, as you'd expect, this only solves the problem if you don't care about
significant changes in the tables sorting behavior. To point out the difference
this commit shows the other way to solve the problem without changing the tables
behavior.
author | Markus Kottlaender <markus@intevation.de> |
---|---|
date | Mon, 04 Mar 2019 16:28:49 +0100 |
parents | 7247eb03e7c0 |
children | 89c439721db2 |
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 | 5 <style lang="scss" scoped> |
6 .nocursor { | |
7 cursor: none; | |
8 } | |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
9 |
1449 | 10 .mapsplit { |
11 height: 50vh; | |
12 } | |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
13 |
1449 | 14 .mapfull { |
15 height: 100vh; | |
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 | 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); |
2324
edaf0d22fc9c
client:use the name of constants instead of strings
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2310
diff
changeset
|
127 const layer = this.getLayerByName(LAYERS.BOTTLENECKISOLINE); |
1424
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 | 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 | 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 | 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 | 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 |
2324
edaf0d22fc9c
client:use the name of constants instead of strings
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2310
diff
changeset
|
265 layer = this.getLayerByName(LAYERS.WATERWAYAREA); |
1272
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 |
2324
edaf0d22fc9c
client:use the name of constants instead of strings
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2310
diff
changeset
|
280 layer = this.getLayerByName(LAYERS.WATERWAYAXIS); |
1272
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 |
2324
edaf0d22fc9c
client:use the name of constants instead of strings
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2310
diff
changeset
|
295 layer = this.getLayerByName(LAYERS.WATERWAYPROFILES); |
2157
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 |
2324
edaf0d22fc9c
client:use the name of constants instead of strings
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2310
diff
changeset
|
310 layer = this.getLayerByName(LAYERS.DISTANCEMARKS); |
1272
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 |
2324
edaf0d22fc9c
client:use the name of constants instead of strings
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2310
diff
changeset
|
325 layer = this.getLayerByName(LAYERS.DISTANCEMARKSAXIS); |
1272
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 |
2451 | 340 layer = this.getLayerByName(LAYERS.GAUGES); |
341 layer.data.getSource().setLoader( | |
342 this.buildVectorLoader( | |
343 { | |
344 featureNS: "gemma", | |
345 featurePrefix: "gemma", | |
346 featureTypes: ["gauges_geoserver"], | |
347 geometryName: "geom" | |
348 }, | |
349 "/internal/wfs", | |
350 layer.data.getSource() | |
351 ) | |
352 ); | |
353 layer.data.setVisible(layer.isVisible); | |
354 | |
2324
edaf0d22fc9c
client:use the name of constants instead of strings
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2310
diff
changeset
|
355 layer = this.getLayerByName(LAYERS.STRETCHES); |
1272
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", |
1943
52a6e63d5dcc
Added stretches layer, removed WW-Area named.
Sascha Wilde <wilde@intevation.de>
parents:
1932
diff
changeset
|
361 featureTypes: ["stretches_geoserver"], |
1983
f9f1babe52ae
Fix area generation from multipolygon input
Tom Gottfried <tom@intevation.de>
parents:
1963
diff
changeset
|
362 geometryName: "area" |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
363 }, |
1943
52a6e63d5dcc
Added stretches layer, removed WW-Area named.
Sascha Wilde <wilde@intevation.de>
parents:
1932
diff
changeset
|
364 "/internal/wfs", |
1272
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 ); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
368 layer.data.setVisible(layer.isVisible); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
369 |
2482
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
370 layer = this.getLayerByName(LAYERS.BOTTLENECKSTATUS); |
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
371 layer.data.getSource().setLoader( |
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
372 this.buildVectorLoader( |
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
373 { |
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
374 featureNS: "gemma", |
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
375 featurePrefix: "gemma", |
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
376 featureTypes: ["bottlenecks_geoserver"], |
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
377 geometryName: "area" |
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
378 }, |
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
379 "/internal/wfs", |
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
380 layer.data.getSource() |
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
381 ) |
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
382 ); |
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
383 |
2324
edaf0d22fc9c
client:use the name of constants instead of strings
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2310
diff
changeset
|
384 layer = this.getLayerByName(LAYERS.BOTTLENECKS); |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
385 layer.data.getSource().setLoader( |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
386 this.buildVectorLoader( |
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 featureNS: "gemma", |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
389 featurePrefix: "gemma", |
1963
f7a35ba9f409
Added view for publishing bottlenecks
Sascha Wilde <wilde@intevation.de>
parents:
1958
diff
changeset
|
390 featureTypes: ["bottlenecks_geoserver"], |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
391 geometryName: "area" |
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 "/internal/wfs", |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
394 layer.data.getSource() |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
395 ) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
396 ); |
2308
f42a7ba05979
client: honor isVisible attribute for more layers
Bernhard Reiter <bernhard@intevation.de>
parents:
2300
diff
changeset
|
397 layer.data.setVisible(layer.isVisible); |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
398 HTTP.get("/system/style/Bottlenecks/stroke", { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
399 headers: { "X-Gemma-Auth": localStorage.getItem("token") } |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
400 }) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
401 .then(response => { |
2482
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
402 let btlnStrokeC = response.data.code; |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
403 HTTP.get("/system/style/Bottlenecks/fill", { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
404 headers: { "X-Gemma-Auth": localStorage.getItem("token") } |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
405 }) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
406 .then(response => { |
2482
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
407 let btlnFillC = response.data.code; |
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
408 var newStyle = new Style({ |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
409 stroke: new Stroke({ |
2482
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
410 color: btlnStrokeC, |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
411 width: 4 |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
412 }), |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
413 fill: new Fill({ |
2482
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
414 color: btlnFillC |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
415 }) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
416 }); |
2482
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
417 layer.data.setStyle(function(feature, resolution) { |
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
418 if (resolution <= 50) { |
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
419 return newStyle; |
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
420 } |
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
421 return null; |
ae1987c5beb3
client: display bottleneck status in separate layer
Markus Kottlaender <markus@intevation.de>
parents:
2446
diff
changeset
|
422 }); |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
423 }) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
424 .catch(error => { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
425 console.log(error); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
426 }); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
427 }) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
428 .catch(error => { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
429 console.log(error); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
430 }); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
431 |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
432 // so none is shown |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
433 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
|
434 this.$store.dispatch("map/disableIdentifyTool"); |
1435
7fa030127b05
fixed panning problem
Markus Kottlaender <markus@intevation.de>
parents:
1424
diff
changeset
|
435 this.$store.dispatch("map/enableIdentifyTool"); |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
436 } |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
437 }; |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
438 </script> |