Mercurial > gemma
annotate client/src/components/layers/layers.js @ 5627:7768f14f6535 729-node-js-newer-version
Transformed scss variables into css custom properties
author | Luisa Beerboom <lbeerboom@intevation.de> |
---|---|
date | Tue, 09 May 2023 13:17:58 +0200 |
parents | fb3e127bccb4 |
children |
rev | line source |
---|---|
4942
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
1 import { GeoJSON, WFS } from "ol/format"; |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
2 import { Icon, Stroke, Style } from "ol/style"; |
3031 | 3 import { |
4942
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
4 Image as ImageLayer, |
3031 | 5 Tile as TileLayer, |
4942
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
6 Vector as VectorLayer |
3031 | 7 } from "ol/layer"; |
5142
ea22d3efa76c
client: Time based request for bottlenecks layer
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5139
diff
changeset
|
8 import { |
ea22d3efa76c
client: Time based request for bottlenecks layer
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5139
diff
changeset
|
9 and as andFilter, |
ea22d3efa76c
client: Time based request for bottlenecks layer
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5139
diff
changeset
|
10 equalTo, |
5146
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
11 greaterThanOrEqualTo, |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
12 lessThanOrEqualTo |
5142
ea22d3efa76c
client: Time based request for bottlenecks layer
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5139
diff
changeset
|
13 } from "ol/format/filter"; |
4942
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
14 |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
15 import { HTTP } from "@/lib/http"; |
3029
81c2e561fe03
Use distance marks an axis via WMS. Added legend and featureinfo.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3021
diff
changeset
|
16 import { ImageWMS as ImageSource } from "ol/source"; |
4942
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
17 import OSM from "ol/source/OSM"; |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
18 import Point from "ol/geom/Point"; |
4942
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
19 import TileWMS from "ol/source/TileWMS"; |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
20 import VectorSource from "ol/source/Vector"; |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
21 import { bbox as bboxStrategy } from "ol/loadingstrategy"; |
4942
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
22 import store from "@/store/index"; |
4241
27434b0d4d96
Map: setting styles correctly for fairwaydimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
4223
diff
changeset
|
23 import { styleFactory } from "./styles"; |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
24 |
4374
ad2bf9580696
importoverview: review of fairwaydimensions improved
Thomas Junk <thomas.junk@intevation.de>
parents:
4368
diff
changeset
|
25 export const buildVectorLoader = ( |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
26 featureRequestOptions, |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
27 vectorSource, |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
28 bboxStrategyDisabled, |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
29 featurePostProcessor |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
30 ) => { |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
31 // build a function to be used for VectorSource.setLoader() |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
32 // make use of WFS().writeGetFeature to build the request |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
33 // and use our HTTP library to actually do it |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
34 // NOTE: the geometryName has to be given in featureRequestOptions if |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
35 // bboxStrategy (default) is used |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
36 featureRequestOptions.featureNS = "gemma"; |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
37 featureRequestOptions.featurePrefix = "gemma"; |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
38 featureRequestOptions.outputFormat = "application/json"; |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
39 return (extent, resolution, projection) => { |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
40 if (!bboxStrategyDisabled) { |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
41 featureRequestOptions.bbox = extent; |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
42 } |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
43 featureRequestOptions.srsName = projection.getCode(); |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
44 HTTP.post( |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
45 "/internal/wfs", |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
46 new XMLSerializer().serializeToString( |
5142
ea22d3efa76c
client: Time based request for bottlenecks layer
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5139
diff
changeset
|
47 new WFS().writeGetFeature( |
ea22d3efa76c
client: Time based request for bottlenecks layer
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5139
diff
changeset
|
48 (function() { |
5279
a17c2a0b8e44
client: use current time in the review layer request
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5159
diff
changeset
|
49 if (!vectorSource.get("useCurrentTime")) { |
a17c2a0b8e44
client: use current time in the review layer request
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5159
diff
changeset
|
50 if (featureRequestOptions.filter) { |
a17c2a0b8e44
client: use current time in the review layer request
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5159
diff
changeset
|
51 for (let condition of featureRequestOptions.filter.conditions) { |
a17c2a0b8e44
client: use current time in the review layer request
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5159
diff
changeset
|
52 if (condition.propertyName == "valid_from") { |
a17c2a0b8e44
client: use current time in the review layer request
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5159
diff
changeset
|
53 condition.expression = store.state.application.refreshLayersTime.toISOString(); |
a17c2a0b8e44
client: use current time in the review layer request
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5159
diff
changeset
|
54 } |
a17c2a0b8e44
client: use current time in the review layer request
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5159
diff
changeset
|
55 if (condition.propertyName == "valid_to") { |
a17c2a0b8e44
client: use current time in the review layer request
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5159
diff
changeset
|
56 condition.expression = store.state.application.refreshLayersTime.toISOString(); |
a17c2a0b8e44
client: use current time in the review layer request
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5159
diff
changeset
|
57 } |
5142
ea22d3efa76c
client: Time based request for bottlenecks layer
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5139
diff
changeset
|
58 } |
ea22d3efa76c
client: Time based request for bottlenecks layer
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5139
diff
changeset
|
59 } |
ea22d3efa76c
client: Time based request for bottlenecks layer
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5139
diff
changeset
|
60 } |
ea22d3efa76c
client: Time based request for bottlenecks layer
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5139
diff
changeset
|
61 return featureRequestOptions; |
ea22d3efa76c
client: Time based request for bottlenecks layer
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5139
diff
changeset
|
62 })() |
ea22d3efa76c
client: Time based request for bottlenecks layer
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5139
diff
changeset
|
63 ) |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
64 ), |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
65 { |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
66 headers: { |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
67 "X-Gemma-Auth": localStorage.getItem("token"), |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
68 "Content-type": "text/xml; charset=UTF-8" |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
69 } |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
70 } |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
71 ) |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
72 .then(response => { |
5139
8a7c39804d2f
layers: log errors additinally to console.
Thomas Junk <thomas.junk@intevation.de>
parents:
5087
diff
changeset
|
73 try { |
8a7c39804d2f
layers: log errors additinally to console.
Thomas Junk <thomas.junk@intevation.de>
parents:
5087
diff
changeset
|
74 const features = new GeoJSON().readFeatures( |
8a7c39804d2f
layers: log errors additinally to console.
Thomas Junk <thomas.junk@intevation.de>
parents:
5087
diff
changeset
|
75 JSON.stringify(response.data) |
8a7c39804d2f
layers: log errors additinally to console.
Thomas Junk <thomas.junk@intevation.de>
parents:
5087
diff
changeset
|
76 ); |
8a7c39804d2f
layers: log errors additinally to console.
Thomas Junk <thomas.junk@intevation.de>
parents:
5087
diff
changeset
|
77 if (featurePostProcessor) { |
8a7c39804d2f
layers: log errors additinally to console.
Thomas Junk <thomas.junk@intevation.de>
parents:
5087
diff
changeset
|
78 features.map(f => featurePostProcessor(f, store, features)); |
8a7c39804d2f
layers: log errors additinally to console.
Thomas Junk <thomas.junk@intevation.de>
parents:
5087
diff
changeset
|
79 } |
8a7c39804d2f
layers: log errors additinally to console.
Thomas Junk <thomas.junk@intevation.de>
parents:
5087
diff
changeset
|
80 vectorSource.addFeatures(features); |
8a7c39804d2f
layers: log errors additinally to console.
Thomas Junk <thomas.junk@intevation.de>
parents:
5087
diff
changeset
|
81 } catch (error) { |
5151
2584fedb2e99
Set empty feature array if loading failed for WFS.
Raimund Renkert <raimund@renkert.org>
parents:
5146
diff
changeset
|
82 vectorSource.addFeatures([]); |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
83 } |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
84 }) |
5457
fb3e127bccb4
fixed linting errors
Thomas Junk <thomas.junk@intevation.de>
parents:
5456
diff
changeset
|
85 .catch(() => { |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
86 vectorSource.removeLoadedExtent(extent); |
4867
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
87 store.dispatch("application/reportBackendError"); |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
88 }); |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
89 }; |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
90 }; |
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
91 |
3123
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
92 // SHARED LAYERS: |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
93 // DRAW- and CUTLAYER are shared across maps. E.g. you want to see the cross cut |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
94 // arrow on both maps when comparing surveys. So we don't need to initialize a |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
95 // new VectorLayer object for each map. Instead we use these two constants so |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
96 // that all maps use the same object. |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
97 const DRAWLAYER = new VectorLayer({ |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
98 id: "DRAWTOOL", |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
99 label: "Draw Tool", |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
100 visible: true, |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
101 source: new VectorSource({ wrapX: false }), |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
102 style: function(feature) { |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
103 // adapted from OpenLayer's LineString Arrow Example |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
104 var geometry = feature.getGeometry(); |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
105 var styles = [ |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
106 // linestring |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
107 new Style({ |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
108 stroke: new Stroke({ |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
109 color: "#369aca", |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
110 width: 2 |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
111 }) |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
112 }) |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
113 ]; |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
114 |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
115 if (geometry.getType() === "LineString") { |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
116 geometry.forEachSegment(function(start, end) { |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
117 var dx = end[0] - start[0]; |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
118 var dy = end[1] - start[1]; |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
119 var rotation = Math.atan2(dy, dx); |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
120 // arrows |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
121 styles.push( |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
122 new Style({ |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
123 geometry: new Point(end), |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
124 image: new Icon({ |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
125 // we need to make sure the image is loaded by Vue Loader |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
126 src: require("@/assets/linestring_arrow.png"), |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
127 // fiddling with the anchor's y value does not help to |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
128 // position the image more centered on the line ending, as the |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
129 // default line style seems to be slightly uncentered in the |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
130 // anti-aliasing, but the image is not placed with subpixel |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
131 // precision |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
132 anchor: [0.75, 0.5], |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
133 rotateWithView: true, |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
134 rotation: -rotation |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
135 }) |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
136 }) |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
137 ); |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
138 }); |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
139 } |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
140 return styles; |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
141 } |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
142 }); |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
143 |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
144 const CUTLAYER = new VectorLayer({ |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
145 id: "CUTTOOL", |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
146 label: "Cut Tool", |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
147 visible: true, |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
148 source: new VectorSource({ wrapX: false }), |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
149 style: function(feature) { |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
150 // adapted from OpenLayer's LineString Arrow Example |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
151 var geometry = feature.getGeometry(); |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
152 var styles = [ |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
153 // linestring |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
154 new Style({ |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
155 stroke: new Stroke({ |
3643
f9032442620a
client: cross profiles: improved style of arrow on the map (added white border to have higher contrast)
Markus Kottlaender <markus@intevation.de>
parents:
3548
diff
changeset
|
156 color: "#FFFFFF", |
f9032442620a
client: cross profiles: improved style of arrow on the map (added white border to have higher contrast)
Markus Kottlaender <markus@intevation.de>
parents:
3548
diff
changeset
|
157 width: 5, |
f9032442620a
client: cross profiles: improved style of arrow on the map (added white border to have higher contrast)
Markus Kottlaender <markus@intevation.de>
parents:
3548
diff
changeset
|
158 lineDash: [7, 7] |
f9032442620a
client: cross profiles: improved style of arrow on the map (added white border to have higher contrast)
Markus Kottlaender <markus@intevation.de>
parents:
3548
diff
changeset
|
159 }) |
f9032442620a
client: cross profiles: improved style of arrow on the map (added white border to have higher contrast)
Markus Kottlaender <markus@intevation.de>
parents:
3548
diff
changeset
|
160 }), |
f9032442620a
client: cross profiles: improved style of arrow on the map (added white border to have higher contrast)
Markus Kottlaender <markus@intevation.de>
parents:
3548
diff
changeset
|
161 new Style({ |
f9032442620a
client: cross profiles: improved style of arrow on the map (added white border to have higher contrast)
Markus Kottlaender <markus@intevation.de>
parents:
3548
diff
changeset
|
162 stroke: new Stroke({ |
3123
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
163 color: "#333333", |
3643
f9032442620a
client: cross profiles: improved style of arrow on the map (added white border to have higher contrast)
Markus Kottlaender <markus@intevation.de>
parents:
3548
diff
changeset
|
164 width: 3, |
3123
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
165 lineDash: [7, 7] |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
166 }) |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
167 }) |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
168 ]; |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
169 |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
170 if (geometry.getType() === "LineString") { |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
171 geometry.forEachSegment(function(start, end) { |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
172 var dx = end[0] - start[0]; |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
173 var dy = end[1] - start[1]; |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
174 var rotation = Math.atan2(dy, dx); |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
175 // arrows |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
176 styles.push( |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
177 new Style({ |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
178 geometry: new Point(end), |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
179 image: new Icon({ |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
180 // we need to make sure the image is loaded by Vue Loader |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
181 src: require("@/assets/linestring_arrow_grey.png"), |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
182 // fiddling with the anchor's y value does not help to |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
183 // position the image more centered on the line ending, as the |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
184 // default line style seems to be slightly uncentered in the |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
185 // anti-aliasing, but the image is not placed with subpixel |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
186 // precision |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
187 anchor: [0.75, 0.5], |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
188 rotateWithView: true, |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
189 rotation: -rotation |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
190 }) |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
191 }) |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
192 ); |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
193 }); |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
194 } |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
195 return styles; |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
196 } |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
197 }); |
f0af359391a0
client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents:
3102
diff
changeset
|
198 |
3685
8775bea8042a
client: layers: unset layer config on logout
Markus Kottlaender <markus@intevation.de>
parents:
3678
diff
changeset
|
199 let layerConfigs = {}; |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
200 |
3685
8775bea8042a
client: layers: unset layer config on logout
Markus Kottlaender <markus@intevation.de>
parents:
3678
diff
changeset
|
201 export const unsetLayerConfigs = function() { |
8775bea8042a
client: layers: unset layer config on logout
Markus Kottlaender <markus@intevation.de>
parents:
3678
diff
changeset
|
202 layerConfigs = {}; |
8775bea8042a
client: layers: unset layer config on logout
Markus Kottlaender <markus@intevation.de>
parents:
3678
diff
changeset
|
203 }; |
8775bea8042a
client: layers: unset layer config on logout
Markus Kottlaender <markus@intevation.de>
parents:
3678
diff
changeset
|
204 |
8775bea8042a
client: layers: unset layer config on logout
Markus Kottlaender <markus@intevation.de>
parents:
3678
diff
changeset
|
205 export const layerFactory = function(mapId) { |
3548
f3102fa16a69
client: data availability/accuracy: inject mapId into layer/styles factory to fix display issue with two maps
Markus Kottlaender <markus@intevation.de>
parents:
3547
diff
changeset
|
206 const styles = styleFactory(mapId); |
3547
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
207 // Shared feature source for layers: |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
208 // BOTTLENECKS, BOTTLENECKSTATUS and BOTTLENECKFAIRWAYAVAILABILITY |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
209 // Reduces bottlenecks_geoserver requests and number of stored feature objects. |
4336
45307cf4931a
Review of fairway dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
4292
diff
changeset
|
210 const FDREVIEWLAYER = new VectorLayer({ |
45307cf4931a
Review of fairway dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
4292
diff
changeset
|
211 id: "FDREVIEWLAYER", |
45307cf4931a
Review of fairway dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
4292
diff
changeset
|
212 label: "Review", |
45307cf4931a
Review of fairway dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
4292
diff
changeset
|
213 visible: true, |
4368
e9d2573329da
import_overview: make layer for review togglable (currently only for development visible)
Thomas Junk <thomas.junk@intevation.de>
parents:
4336
diff
changeset
|
214 source: new VectorSource({ wrapX: false }), |
4336
45307cf4931a
Review of fairway dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
4292
diff
changeset
|
215 style: styles.sections |
45307cf4931a
Review of fairway dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
4292
diff
changeset
|
216 }); |
3547
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
217 const bottlenecksSource = new VectorSource({ strategy: bboxStrategy }); |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
218 bottlenecksSource.setLoader( |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
219 buildVectorLoader( |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
220 { |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
221 featureTypes: ["bottlenecks_geoserver"], |
5142
ea22d3efa76c
client: Time based request for bottlenecks layer
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5139
diff
changeset
|
222 geometryName: "area", |
ea22d3efa76c
client: Time based request for bottlenecks layer
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5139
diff
changeset
|
223 filter: andFilter( |
ea22d3efa76c
client: Time based request for bottlenecks layer
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5139
diff
changeset
|
224 lessThanOrEqualTo( |
ea22d3efa76c
client: Time based request for bottlenecks layer
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5139
diff
changeset
|
225 "valid_from", |
ea22d3efa76c
client: Time based request for bottlenecks layer
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5139
diff
changeset
|
226 store.state.application.refreshLayersTime.toISOString() |
ea22d3efa76c
client: Time based request for bottlenecks layer
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5139
diff
changeset
|
227 ), |
ea22d3efa76c
client: Time based request for bottlenecks layer
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5139
diff
changeset
|
228 greaterThanOrEqualTo( |
ea22d3efa76c
client: Time based request for bottlenecks layer
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5139
diff
changeset
|
229 "valid_to", |
ea22d3efa76c
client: Time based request for bottlenecks layer
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5139
diff
changeset
|
230 store.state.application.refreshLayersTime.toISOString() |
ea22d3efa76c
client: Time based request for bottlenecks layer
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5139
diff
changeset
|
231 ) |
ea22d3efa76c
client: Time based request for bottlenecks layer
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5139
diff
changeset
|
232 ) |
3547
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
233 }, |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
234 bottlenecksSource, |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
235 false, |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
236 async (f, store) => { |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
237 if (f.get("fa_critical")) { |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
238 // look for fairway availability data in store. If present and |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
239 // not older than 15 min use it or fetch new data and store it. |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
240 let data = store.getters["fairwayavailability/fwLNWLOverviewData"](f); |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
241 if ( |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
242 data && |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
243 new Date().getTime() - data.createdAt.getTime() < 900000 |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
244 ) { |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
245 f.set("fa_data", data.data); |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
246 } else { |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
247 let date = new Date(); |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
248 data = await store.dispatch( |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
249 "fairwayavailability/loadAvailableFairwayDepthLNWLForMap", |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
250 { |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
251 feature: f, |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
252 from: date.toISOString().split("T")[0], |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
253 to: date.toISOString().split("T")[0], |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
254 frequency: "monthly", |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
255 LOS: 3 |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
256 } |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
257 ); |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
258 if (data) { |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
259 store.commit("fairwayavailability/addFwLNWLOverviewData", { |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
260 feature: f, |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
261 data, |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
262 createdAt: new Date() |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
263 }); |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
264 f.set("fa_data", data); |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
265 } |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
266 } |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
267 } |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
268 return f; |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
269 } |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
270 ) |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
271 ); |
47c61ea894b1
client: map layers: share same vector source object for layers that use the same geoserver view (bottlenecks_geoserver)
Markus Kottlaender <markus@intevation.de>
parents:
3507
diff
changeset
|
272 |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
273 // either use existing config or create new one |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
274 // important is only each map has its individual layer config |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
275 // but we don't want to create new layer objects each time a store value |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
276 // that is used here changes. |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
277 const config = layerConfigs.hasOwnProperty(mapId) |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
278 ? layerConfigs[mapId] |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
279 : [ |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
280 new TileLayer({ |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
281 id: "OPENSTREETMAP", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
282 label: "Open Streetmap", |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
283 visible: true, |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
284 source: new OSM() |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
285 }), |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
286 new ImageLayer({ |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
287 id: "INLANDECDIS", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
288 label: "Inland ECDIS chart Danube", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
289 visible: true, |
4022
efe0904b1d45
Change of ECDIS no longer requires reload
Thomas Junk <thomas.junk@intevation.de>
parents:
3685
diff
changeset
|
290 source: null |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
291 }), |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
292 new ImageLayer({ |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
293 id: "WATERWAYAREA", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
294 label: "Waterway Area", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
295 maxResolution: 100, |
3030
3524bbc5067e
Use dingle tile WMS for ECDIS Layer and Max resolutions for some vector layers.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3029
diff
changeset
|
296 minResolution: 0, |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
297 source: new ImageSource({ |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
298 url: window.location.origin + "/api/internal/wms", |
4942
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
299 params: { |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
300 LAYERS: "waterway_area", |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
301 VERSION: "1.1.1", |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
302 TILED: true |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
303 }, |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
304 imageLoadFunction: function(tile, src) { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
305 HTTP.get(src, { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
306 headers: { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
307 "X-Gemma-Auth": localStorage.getItem("token") |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
308 }, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
309 responseType: "blob" |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
310 }).then(response => { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
311 tile.getImage().src = URL.createObjectURL(response.data); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
312 }); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
313 } // TODO tile.setState(TileState.ERROR); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
314 }) |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
315 }), |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
316 (function() { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
317 const source = new VectorSource({ strategy: bboxStrategy }); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
318 source.setLoader( |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
319 buildVectorLoader( |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
320 { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
321 featureTypes: ["stretches_geoserver"], |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
322 geometryName: "area" |
3047
e0b77d7463e7
Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3031
diff
changeset
|
323 }, |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
324 source, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
325 true, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
326 (f, store) => { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
327 if (f.getId() === store.state.imports.selectedStretchId) { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
328 f.set("highlighted", true); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
329 } |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
330 return f; |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
331 } |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
332 ) |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
333 ); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
334 return new VectorLayer({ |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
335 id: "STRETCHES", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
336 label: "Stretches", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
337 visible: false, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
338 style: styles.stretches, |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
339 source |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
340 }); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
341 })(), |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
342 (function() { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
343 const source = new VectorSource({ strategy: bboxStrategy }); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
344 source.setLoader( |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
345 buildVectorLoader( |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
346 { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
347 featureTypes: ["sections_geoserver"], |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
348 geometryName: "area" |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
349 }, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
350 source, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
351 true, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
352 (f, store) => { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
353 if (f.getId() === store.state.imports.selectedSectionId) { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
354 f.set("highlighted", true); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
355 } |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
356 return f; |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
357 } |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
358 ) |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
359 ); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
360 return new VectorLayer({ |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
361 id: "SECTIONS", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
362 label: "Sections", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
363 visible: false, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
364 style: styles.sections, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
365 source |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
366 }); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
367 })(), |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
368 (function() { |
4600
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
369 return new VectorLayer({ |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
370 id: "BOTTLENECKS", |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
371 label: "Bottlenecks", |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
372 visible: true, |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
373 style: styles.bottleneck, |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
374 source: bottlenecksSource |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
375 }); |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
376 })(), |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
377 new TileLayer({ |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
378 id: "BOTTLENECKISOLINE", |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
379 label: "Bottleneck morphology", |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
380 visible: false, |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
381 source: new TileWMS({ |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
382 preload: 0, |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
383 projection: "EPSG:3857", |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
384 url: window.location.origin + "/api/internal/wms", |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
385 params: { |
5426
67ffa7517888
Added new group layer 'sounding_results'.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
5279
diff
changeset
|
386 LAYERS: "sounding_results", |
4600
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
387 VERSION: "1.1.1", |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
388 TILED: true |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
389 }, |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
390 tileLoadFunction: function(tile, src) { |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
391 HTTP.get(src, { |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
392 headers: { |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
393 "X-Gemma-Auth": localStorage.getItem("token") |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
394 }, |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
395 responseType: "blob" |
4867
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
396 }) |
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
397 .then(response => { |
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
398 tile.getImage().src = URL.createObjectURL(response.data); |
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
399 }) |
5457
fb3e127bccb4
fixed linting errors
Thomas Junk <thomas.junk@intevation.de>
parents:
5456
diff
changeset
|
400 .catch(() => { |
4867
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
401 store.dispatch("application/reportBackendError"); |
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
402 }); |
4600
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
403 } // TODO tile.setState(TileState.ERROR); |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
404 }) |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
405 }), |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
406 new TileLayer({ |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
407 id: "DIFFERENCES", |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
408 label: "Bottleneck Differences", |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
409 visible: false, |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
410 source: new TileWMS({ |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
411 preload: 0, |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
412 projection: "EPSG:3857", |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
413 url: window.location.origin + "/api/internal/wms", |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
414 params: { |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
415 LAYERS: "sounding_differences", |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
416 VERSION: "1.1.1", |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
417 TILED: true, |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
418 CQL_FILTER: "id=" + store.state.fairwayprofile.currentDifference |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
419 }, |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
420 tileLoadFunction: function(tile, src) { |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
421 HTTP.get(src, { |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
422 headers: { |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
423 "X-Gemma-Auth": localStorage.getItem("token") |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
424 }, |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
425 responseType: "blob" |
4867
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
426 }) |
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
427 .then(response => { |
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
428 tile.getImage().src = URL.createObjectURL(response.data); |
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
429 }) |
5457
fb3e127bccb4
fixed linting errors
Thomas Junk <thomas.junk@intevation.de>
parents:
5456
diff
changeset
|
430 .catch(() => { |
4867
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
431 store.dispatch("application/reportBackendError"); |
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
432 }); |
4600
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
433 } // TODO tile.setState(TileState.ERROR); |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
434 }) |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
435 }), |
75d1126f7299
Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents:
4580
diff
changeset
|
436 (function() { |
4261
ac99e13e9ca9
layers: BBox strategy for fairwaydimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
4241
diff
changeset
|
437 const source = new VectorSource({ strategy: bboxStrategy }); |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
438 source.setLoader( |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
439 buildVectorLoader( |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
440 { |
4261
ac99e13e9ca9
layers: BBox strategy for fairwaydimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
4241
diff
changeset
|
441 geometryName: "area", |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
442 featureTypes: ["fairway_dimensions"], |
4378
09406e3b052c
layers: only load fairwaydimensions with staging_done on map
Thomas Junk <thomas.junk@intevation.de>
parents:
4374
diff
changeset
|
443 filter: andFilter( |
09406e3b052c
layers: only load fairwaydimensions with staging_done on map
Thomas Junk <thomas.junk@intevation.de>
parents:
4374
diff
changeset
|
444 equalTo("level_of_service", 1), |
5146
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
445 equalTo("staging_done", true), |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
446 lessThanOrEqualTo( |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
447 "valid_from", |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
448 store.state.application.refreshLayersTime.toISOString() |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
449 ), |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
450 greaterThanOrEqualTo( |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
451 "valid_to", |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
452 store.state.application.refreshLayersTime.toISOString() |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
453 ) |
4378
09406e3b052c
layers: only load fairwaydimensions with staging_done on map
Thomas Junk <thomas.junk@intevation.de>
parents:
4374
diff
changeset
|
454 ) |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
455 }, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
456 source, |
4261
ac99e13e9ca9
layers: BBox strategy for fairwaydimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
4241
diff
changeset
|
457 false |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
458 ) |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
459 ); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
460 return new VectorLayer({ |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
461 id: "FAIRWAYDIMENSIONSLOS1", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
462 label: "LOS 1 Fairway Dimensions", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
463 visible: false, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
464 style: styles.fwd1, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
465 maxResolution: 80, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
466 minResolution: 0, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
467 source |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
468 }); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
469 })(), |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
470 (function() { |
4261
ac99e13e9ca9
layers: BBox strategy for fairwaydimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
4241
diff
changeset
|
471 const source = new VectorSource({ strategy: bboxStrategy }); |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
472 source.setLoader( |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
473 buildVectorLoader( |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
474 { |
4261
ac99e13e9ca9
layers: BBox strategy for fairwaydimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
4241
diff
changeset
|
475 geometryName: "area", |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
476 featureTypes: ["fairway_dimensions"], |
4378
09406e3b052c
layers: only load fairwaydimensions with staging_done on map
Thomas Junk <thomas.junk@intevation.de>
parents:
4374
diff
changeset
|
477 filter: andFilter( |
09406e3b052c
layers: only load fairwaydimensions with staging_done on map
Thomas Junk <thomas.junk@intevation.de>
parents:
4374
diff
changeset
|
478 equalTo("level_of_service", 2), |
5146
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
479 equalTo("staging_done", true), |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
480 lessThanOrEqualTo( |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
481 "valid_from", |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
482 store.state.application.refreshLayersTime.toISOString() |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
483 ), |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
484 greaterThanOrEqualTo( |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
485 "valid_to", |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
486 store.state.application.refreshLayersTime.toISOString() |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
487 ) |
4378
09406e3b052c
layers: only load fairwaydimensions with staging_done on map
Thomas Junk <thomas.junk@intevation.de>
parents:
4374
diff
changeset
|
488 ) |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
489 }, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
490 source, |
4261
ac99e13e9ca9
layers: BBox strategy for fairwaydimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
4241
diff
changeset
|
491 false |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
492 ) |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
493 ); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
494 return new VectorLayer({ |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
495 id: "FAIRWAYDIMENSIONSLOS2", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
496 label: "LOS 2 Fairway Dimensions", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
497 visible: false, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
498 style: styles.fwd2, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
499 maxResolution: 80, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
500 minResolution: 0, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
501 source |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
502 }); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
503 })(), |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
504 (function() { |
4261
ac99e13e9ca9
layers: BBox strategy for fairwaydimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
4241
diff
changeset
|
505 const source = new VectorSource({ strategy: bboxStrategy }); |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
506 source.setLoader( |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
507 buildVectorLoader( |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
508 { |
4261
ac99e13e9ca9
layers: BBox strategy for fairwaydimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
4241
diff
changeset
|
509 geometryName: "area", |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
510 featureTypes: ["fairway_dimensions"], |
4378
09406e3b052c
layers: only load fairwaydimensions with staging_done on map
Thomas Junk <thomas.junk@intevation.de>
parents:
4374
diff
changeset
|
511 filter: andFilter( |
09406e3b052c
layers: only load fairwaydimensions with staging_done on map
Thomas Junk <thomas.junk@intevation.de>
parents:
4374
diff
changeset
|
512 equalTo("level_of_service", 3), |
5146
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
513 equalTo("staging_done", true), |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
514 lessThanOrEqualTo( |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
515 "valid_from", |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
516 store.state.application.refreshLayersTime.toISOString() |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
517 ), |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
518 greaterThanOrEqualTo( |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
519 "valid_to", |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
520 store.state.application.refreshLayersTime.toISOString() |
265265725277
timeslide for fairway_dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
5142
diff
changeset
|
521 ) |
4378
09406e3b052c
layers: only load fairwaydimensions with staging_done on map
Thomas Junk <thomas.junk@intevation.de>
parents:
4374
diff
changeset
|
522 ) |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
523 }, |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
524 source, |
4261
ac99e13e9ca9
layers: BBox strategy for fairwaydimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
4241
diff
changeset
|
525 false |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
526 ) |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
527 ); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
528 return new VectorLayer({ |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
529 id: "FAIRWAYDIMENSIONSLOS3", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
530 label: "LOS 3 Fairway Dimensions", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
531 visible: true, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
532 style: styles.fwd3, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
533 maxResolution: 80, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
534 minResolution: 0, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
535 source |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
536 }); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
537 })(), |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
538 new ImageLayer({ |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
539 id: "WATERWAYAXIS", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
540 label: "Waterway Axis", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
541 source: new ImageSource({ |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
542 url: window.location.origin + "/api/internal/wms", |
4942
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
543 params: { |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
544 LAYERS: "waterway_axis", |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
545 VERSION: "1.1.1", |
5087
d77dd0220780
client: Timebased request for waterway_axis
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5085
diff
changeset
|
546 TILED: true, |
d77dd0220780
client: Timebased request for waterway_axis
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5085
diff
changeset
|
547 TIME: store.state.application.refreshLayersTime.toISOString() |
4942
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
548 }, |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
549 imageLoadFunction: function(tile, src) { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
550 HTTP.get(src, { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
551 headers: { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
552 "X-Gemma-Auth": localStorage.getItem("token") |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
553 }, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
554 responseType: "blob" |
4867
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
555 }) |
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
556 .then(response => { |
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
557 tile.getImage().src = URL.createObjectURL(response.data); |
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
558 }) |
5457
fb3e127bccb4
fixed linting errors
Thomas Junk <thomas.junk@intevation.de>
parents:
5456
diff
changeset
|
559 .catch(() => { |
4867
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
560 store.dispatch("application/reportBackendError"); |
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
561 }); |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
562 } // TODO tile.setState(TileState.ERROR); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
563 }) |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
564 }), |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
565 (function() { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
566 const source = new VectorSource({ strategy: bboxStrategy }); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
567 source.setLoader( |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
568 buildVectorLoader( |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
569 { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
570 featureTypes: ["waterway_profiles"], |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
571 geometryName: "geom" |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
572 }, |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
573 source |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
574 ) |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
575 ); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
576 return new VectorLayer({ |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
577 id: "WATERWAYPROFILES", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
578 label: "Waterway Profiles", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
579 visible: true, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
580 style: new Style({ |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
581 stroke: new Stroke({ |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
582 color: "rgba(0, 0, 255, .5)", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
583 lineDash: [5, 5], |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
584 width: 2 |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
585 }) |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
586 }), |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
587 maxResolution: 2.5, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
588 minResolution: 0, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
589 source |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
590 }); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
591 })(), |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
592 (function() { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
593 return new VectorLayer({ |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
594 id: "BOTTLENECKSTATUS", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
595 label: "Critical Bottlenecks", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
596 forLegendStyle: { point: true, resolution: 16 }, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
597 visible: true, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
598 zIndex: 1, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
599 style: styles.bottleneckStatus, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
600 source: bottlenecksSource |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
601 }); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
602 })(), |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
603 (function() { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
604 return new VectorLayer({ |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
605 id: "BOTTLENECKFAIRWAYAVAILABILITY", |
4223
a76a6b26e327
client: improve layer label
Bernhard Reiter <bernhard@intevation.de>
parents:
4022
diff
changeset
|
606 label: "Bottleneck Fairway Availability", |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
607 forLegendStyle: { point: true, resolution: 16 }, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
608 visible: false, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
609 zIndex: 1, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
610 style: styles.bottleneckFairwayAvailability, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
611 source: bottlenecksSource |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
612 }); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
613 })(), |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
614 (function() { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
615 const source = new VectorSource({ strategy: bboxStrategy }); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
616 source.setLoader( |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
617 buildVectorLoader( |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
618 { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
619 featureTypes: [ |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
620 "bottlenecks_geoserver", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
621 "gauges_geoserver", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
622 "stretches_geoserver", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
623 "sections_geoserver" |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
624 ] |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
625 }, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
626 source, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
627 true, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
628 // since we don't use bbox strategy, features will contain all features and we can use it |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
629 // to find reference gauges for bottlenecks, yeah! |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
630 async (f, store, features) => { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
631 // attach reference gauge to bottleneck |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
632 if (f.getId().indexOf("bottlenecks") > -1) { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
633 f.set( |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
634 "gauge_obj", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
635 features.find(feat => { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
636 return ( |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
637 feat.getId().indexOf("gauges") > -1 && |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
638 feat.get("objname") === f.get("gauge_objname") |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
639 ); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
640 }) |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
641 ); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
642 } |
3507
a606d003730c
client: spuc12: implemented diagram for reference gauge of bottlenecks
Markus Kottlaender <markus@intevation.de>
parents:
3501
diff
changeset
|
643 |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
644 // attach nsc data to gauge |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
645 if (f.getId().indexOf("gauges") > -1) { |
4292
18a34d9b289c
data availability layer: loader uses new cache
Thomas Junk <thomas.junk@intevation.de>
parents:
4261
diff
changeset
|
646 store |
18a34d9b289c
data availability layer: loader uses new cache
Thomas Junk <thomas.junk@intevation.de>
parents:
4261
diff
changeset
|
647 .dispatch( |
18a34d9b289c
data availability layer: loader uses new cache
Thomas Junk <thomas.junk@intevation.de>
parents:
4261
diff
changeset
|
648 "gauges/getNashSutcliffeForISRS", |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
649 f.get("isrs_code") |
4292
18a34d9b289c
data availability layer: loader uses new cache
Thomas Junk <thomas.junk@intevation.de>
parents:
4261
diff
changeset
|
650 ) |
18a34d9b289c
data availability layer: loader uses new cache
Thomas Junk <thomas.junk@intevation.de>
parents:
4261
diff
changeset
|
651 .then(response => { |
18a34d9b289c
data availability layer: loader uses new cache
Thomas Junk <thomas.junk@intevation.de>
parents:
4261
diff
changeset
|
652 f.set("nsc_data", response); |
18a34d9b289c
data availability layer: loader uses new cache
Thomas Junk <thomas.junk@intevation.de>
parents:
4261
diff
changeset
|
653 }); |
3501
c5c7cc24fe72
client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents:
3457
diff
changeset
|
654 } |
c5c7cc24fe72
client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents:
3457
diff
changeset
|
655 } |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
656 ) |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
657 ); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
658 return new VectorLayer({ |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
659 id: "DATAAVAILABILITY", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
660 label: "Data Availability/Accuracy", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
661 forLegendStyle: { point: true, resolution: 16 }, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
662 visible: false, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
663 zIndex: 1, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
664 style: styles.dataAvailability, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
665 source |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
666 }); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
667 })(), |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
668 new ImageLayer({ |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
669 id: "DISTANCEMARKS", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
670 label: "Distance Marks", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
671 maxResolution: 10, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
672 minResolution: 0, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
673 source: new ImageSource({ |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
674 url: window.location.origin + "/api/internal/wms", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
675 params: { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
676 LAYERS: "distance_marks_ashore_geoserver", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
677 VERSION: "1.1.1", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
678 TILED: true |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
679 }, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
680 imageLoadFunction: function(tile, src) { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
681 HTTP.get(src, { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
682 headers: { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
683 "X-Gemma-Auth": localStorage.getItem("token") |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
684 }, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
685 responseType: "blob" |
4867
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
686 }) |
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
687 .then(response => { |
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
688 tile.getImage().src = URL.createObjectURL(response.data); |
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
689 }) |
5457
fb3e127bccb4
fixed linting errors
Thomas Junk <thomas.junk@intevation.de>
parents:
5456
diff
changeset
|
690 .catch(() => { |
4867
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
691 store.dispatch("application/reportBackendError"); |
5555b77b8c4e
report backenderror due to failing OL loaders
Thomas Junk <thomas.junk@intevation.de>
parents:
4600
diff
changeset
|
692 }); |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
693 } // TODO tile.setState(TileState.ERROR); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
694 }) |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
695 }), |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
696 new ImageLayer({ |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
697 id: "DISTANCEMARKSAXIS", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
698 label: "Distance Marks, Axis", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
699 source: new ImageSource({ |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
700 url: window.location.origin + "/api/internal/wms", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
701 params: { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
702 LAYERS: "distance_marks_geoserver", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
703 VERSION: "1.1.1", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
704 TILED: true |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
705 }, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
706 imageLoadFunction: function(tile, src) { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
707 HTTP.get(src, { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
708 headers: { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
709 "X-Gemma-Auth": localStorage.getItem("token") |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
710 }, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
711 responseType: "blob" |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
712 }).then(response => { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
713 tile.getImage().src = URL.createObjectURL(response.data); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
714 }); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
715 } // TODO tile.setState(TileState.ERROR); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
716 }) |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
717 }), |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
718 (function() { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
719 const source = new VectorSource({ strategy: bboxStrategy }); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
720 source.setLoader( |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
721 buildVectorLoader( |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
722 { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
723 featureTypes: ["gauges_geoserver"], |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
724 geometryName: "geom" |
3081
9107c959bb3b
client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3075
diff
changeset
|
725 }, |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
726 source |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
727 ) |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
728 ); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
729 return new VectorLayer({ |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
730 id: "GAUGES", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
731 label: "Gauges", |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
732 forLegendStyle: { point: true, resolution: 8 }, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
733 visible: true, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
734 style: styles.gauge, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
735 maxResolution: 100, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
736 minResolution: 0, |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
737 source |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
738 }); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
739 })(), |
5159
e688e79a51e8
Use ImageLayer instead of TileLayer for FairwayMarks
Raimund Renkert <raimund@renkert.org>
parents:
5151
diff
changeset
|
740 new ImageLayer({ |
4942
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
741 id: "FAIRWAYMARKS", |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
742 label: "Fairway marks", |
4944
6256d1bca8f6
make fairwaymarks layer visible per default
Thomas Junk <thomas.junk@intevation.de>
parents:
4942
diff
changeset
|
743 visible: true, |
5159
e688e79a51e8
Use ImageLayer instead of TileLayer for FairwayMarks
Raimund Renkert <raimund@renkert.org>
parents:
5151
diff
changeset
|
744 source: new ImageSource({ |
4942
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
745 preload: 0, |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
746 projection: "EPSG:3857", |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
747 url: window.location.origin + "/api/internal/wms", |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
748 params: { |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
749 LAYERS: "fairway_marks", |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
750 VERSION: "1.1.1", |
5077
c9354fcf6050
add TIME-Filter to layer and GetFeatureInfo
Thomas Junk <thomas.junk@intevation.de>
parents:
5076
diff
changeset
|
751 TILED: true, |
5085
fe63733750d7
client: correct refresh layers request time
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5077
diff
changeset
|
752 TIME: store.state.application.refreshLayersTime.toISOString() |
4942
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
753 }, |
5159
e688e79a51e8
Use ImageLayer instead of TileLayer for FairwayMarks
Raimund Renkert <raimund@renkert.org>
parents:
5151
diff
changeset
|
754 imageLoadFunction: function(tile, src) { |
4942
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
755 HTTP.get(src, { |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
756 headers: { |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
757 "X-Gemma-Auth": localStorage.getItem("token") |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
758 }, |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
759 responseType: "blob" |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
760 }) |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
761 .then(response => { |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
762 tile.getImage().src = URL.createObjectURL(response.data); |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
763 }) |
5457
fb3e127bccb4
fixed linting errors
Thomas Junk <thomas.junk@intevation.de>
parents:
5456
diff
changeset
|
764 .catch(() => { |
4942
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
765 store.dispatch("application/reportBackendError"); |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
766 }); |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
767 } // TODO tile.setState(TileState.ERROR); |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
768 }) |
c4d84be3a476
add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents:
4867
diff
changeset
|
769 }), |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
770 DRAWLAYER, |
4336
45307cf4931a
Review of fairway dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
4292
diff
changeset
|
771 CUTLAYER, |
45307cf4931a
Review of fairway dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
4292
diff
changeset
|
772 FDREVIEWLAYER |
3678
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
773 ]; |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
774 |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
775 layerConfigs[mapId] = config; |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
776 |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
777 return { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
778 get(id) { |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
779 return config.find(l => l.get("id") === id); |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
780 }, |
8f58851927c0
client: make layer factory only return new layer config for individual maps
Markus Kottlaender <markus@intevation.de>
parents:
3649
diff
changeset
|
781 config |
3011
fc8fbea24568
client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
782 }; |
3685
8775bea8042a
client: layers: unset layer config on logout
Markus Kottlaender <markus@intevation.de>
parents:
3678
diff
changeset
|
783 }; |