annotate client/src/components/map/layers.js @ 3548:f3102fa16a69

client: data availability/accuracy: inject mapId into layer/styles factory to fix display issue with two maps This layer displays features based on which other layers are visible. To detect those other layers visibility realiably, the layer needs to be aware about the map it belongs to.
author Markus Kottlaender <markus@intevation.de>
date Fri, 31 May 2019 12:45:30 +0200
parents 47c61ea894b1
children 32d7bb1afdc9 f9032442620a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
1 import TileWMS from "ol/source/TileWMS";
3031
f99f0cbb843f client:linting
Fadi Abbud <fadi.abbud@intevation.de>
parents: 3030
diff changeset
2 import {
f99f0cbb843f client:linting
Fadi Abbud <fadi.abbud@intevation.de>
parents: 3030
diff changeset
3 Tile as TileLayer,
f99f0cbb843f client:linting
Fadi Abbud <fadi.abbud@intevation.de>
parents: 3030
diff changeset
4 Vector as VectorLayer,
f99f0cbb843f client:linting
Fadi Abbud <fadi.abbud@intevation.de>
parents: 3030
diff changeset
5 Image as ImageLayer
f99f0cbb843f client:linting
Fadi Abbud <fadi.abbud@intevation.de>
parents: 3030
diff changeset
6 } from "ol/layer";
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
7 import { Icon, Stroke, Style } from "ol/style";
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
8 import VectorSource from "ol/source/Vector";
3029
81c2e561fe03 Use distance marks an axis via WMS. Added legend and featureinfo.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3021
diff changeset
9 import { ImageWMS as ImageSource } from "ol/source";
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
10 import Point from "ol/geom/Point";
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
11 import { bbox as bboxStrategy } from "ol/loadingstrategy";
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
12 import { WFS, GeoJSON } from "ol/format";
3270
d7bc51fd50b0 client: map layers: integrated osm layer into main layer configuration file
Markus Kottlaender <markus@intevation.de>
parents: 3123
diff changeset
13 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
14 import { equalTo } from "ol/format/filter";
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
15 import { HTTP } from "@/lib/http";
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
16 import styleFactory from "./styles";
3271
b74e9768231d client: map layers: added support for vuex store in layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 3270
diff changeset
17 import store from "@/store/index";
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
18
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
19 const buildVectorLoader = (
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
20 featureRequestOptions,
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
21 vectorSource,
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
22 bboxStrategyDisabled,
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
23 featurePostProcessor
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
24 ) => {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
25 // 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
26 // 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
27 // 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
28 // 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
29 // bboxStrategy (default) is used
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
30 featureRequestOptions.featureNS = "gemma";
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
31 featureRequestOptions.featurePrefix = "gemma";
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
32 featureRequestOptions.outputFormat = "application/json";
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
33 return (extent, resolution, projection) => {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
34 if (!bboxStrategyDisabled) {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
35 featureRequestOptions.bbox = extent;
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
36 }
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
37 featureRequestOptions.srsName = projection.getCode();
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
38 HTTP.post(
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
39 "/internal/wfs",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
40 new XMLSerializer().serializeToString(
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
41 new WFS().writeGetFeature(featureRequestOptions)
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 {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
44 headers: {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
45 "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
46 "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
47 }
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
48 }
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
49 )
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
50 .then(response => {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
51 const features = new GeoJSON().readFeatures(
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
52 JSON.stringify(response.data)
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
53 );
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
54 if (featurePostProcessor) {
3507
a606d003730c client: spuc12: implemented diagram for reference gauge of bottlenecks
Markus Kottlaender <markus@intevation.de>
parents: 3501
diff changeset
55 features.map(f => featurePostProcessor(f, store, features));
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
56 }
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
57 vectorSource.addFeatures(features);
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
58 })
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
59 .catch(() => {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
60 vectorSource.removeLoadedExtent(extent);
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
61 });
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
62 };
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
63 };
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
64
3123
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
65 // SHARED LAYERS:
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
66 // 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
67 // 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
68 // 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
69 // 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
70 const DRAWLAYER = new VectorLayer({
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
71 id: "DRAWTOOL",
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
72 label: "Draw Tool",
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
73 visible: true,
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
74 source: new VectorSource({ wrapX: false }),
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
75 style: function(feature) {
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
76 // 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
77 var geometry = feature.getGeometry();
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
78 var styles = [
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
79 // linestring
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
80 new Style({
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
81 stroke: new Stroke({
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
82 color: "#369aca",
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
83 width: 2
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
84 })
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
85 })
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
86 ];
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
87
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
88 if (geometry.getType() === "LineString") {
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
89 geometry.forEachSegment(function(start, end) {
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
90 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
91 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
92 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
93 // arrows
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
94 styles.push(
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
95 new Style({
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
96 geometry: new Point(end),
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
97 image: new Icon({
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
98 // 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
99 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
100 // 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
101 // 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
102 // 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
103 // 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
104 // precision
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
105 anchor: [0.75, 0.5],
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
106 rotateWithView: true,
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
107 rotation: -rotation
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
108 })
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
109 })
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
110 );
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 return styles;
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 });
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
116
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
117 const CUTLAYER = new VectorLayer({
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
118 id: "CUTTOOL",
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
119 label: "Cut Tool",
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
120 visible: true,
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
121 source: new VectorSource({ wrapX: false }),
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
122 style: function(feature) {
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
123 // 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
124 var geometry = feature.getGeometry();
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
125 var styles = [
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
126 // linestring
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
127 new Style({
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
128 stroke: new Stroke({
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
129 color: "#333333",
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
130 width: 2,
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
131 lineDash: [7, 7]
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
132 })
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
133 })
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
134 ];
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 if (geometry.getType() === "LineString") {
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
137 geometry.forEachSegment(function(start, end) {
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
138 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
139 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
140 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
141 // arrows
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
142 styles.push(
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
143 new Style({
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
144 geometry: new Point(end),
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
145 image: new Icon({
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
146 // 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
147 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
148 // 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
149 // 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
150 // 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
151 // 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
152 // precision
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
153 anchor: [0.75, 0.5],
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
154 rotateWithView: true,
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
155 rotation: -rotation
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
156 })
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
157 })
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
158 );
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
159 });
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
160 }
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
161 return styles;
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
162 }
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
163 });
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
164
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
165 export default function(mapId) {
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
166 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
167 // 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
168 // 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
169 // Reduces bottlenecks_geoserver requests and number of stored feature objects.
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
170 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
171 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
172 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
173 {
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
174 featureTypes: ["bottlenecks_geoserver"],
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
175 geometryName: "area"
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
176 },
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
177 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
178 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
179 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
180 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
181 // 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
182 // 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
183 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
184 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
185 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
186 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
187 ) {
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
188 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
189 } 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
190 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
191 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
192 "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
193 {
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
194 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
195 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
196 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
197 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
198 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
199 }
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
200 );
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
201 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
202 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
203 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
204 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
205 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
206 });
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 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
208 }
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 }
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
210 }
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
211 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
212 }
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
213 )
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
214 );
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
215
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
216 return {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
217 get(id) {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
218 return this.config.find(l => l.get("id") === id);
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
219 },
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
220 config: [
3270
d7bc51fd50b0 client: map layers: integrated osm layer into main layer configuration file
Markus Kottlaender <markus@intevation.de>
parents: 3123
diff changeset
221 new TileLayer({
d7bc51fd50b0 client: map layers: integrated osm layer into main layer configuration file
Markus Kottlaender <markus@intevation.de>
parents: 3123
diff changeset
222 id: "OPENSTREETMAP",
d7bc51fd50b0 client: map layers: integrated osm layer into main layer configuration file
Markus Kottlaender <markus@intevation.de>
parents: 3123
diff changeset
223 label: "Open Streetmap",
d7bc51fd50b0 client: map layers: integrated osm layer into main layer configuration file
Markus Kottlaender <markus@intevation.de>
parents: 3123
diff changeset
224 visible: true,
d7bc51fd50b0 client: map layers: integrated osm layer into main layer configuration file
Markus Kottlaender <markus@intevation.de>
parents: 3123
diff changeset
225 source: new OSM()
d7bc51fd50b0 client: map layers: integrated osm layer into main layer configuration file
Markus Kottlaender <markus@intevation.de>
parents: 3123
diff changeset
226 }),
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
227 new ImageLayer({
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
228 id: "INLANDECDIS",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
229 label: "Inland ECDIS chart Danube",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
230 visible: true,
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
231 source: new ImageSource({
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
232 preload: 1,
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
233 url: "https://service.d4d-portal.info/wms/",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
234 crossOrigin: "anonymous",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
235 params: { LAYERS: "d4d", VERSION: "1.1.1", TILED: true }
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
236 })
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
237 }),
3047
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
238 new ImageLayer({
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
239 id: "WATERWAYAREA",
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
240 label: "Waterway Area",
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
241 maxResolution: 100,
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
242 minResolution: 0,
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
243 source: new ImageSource({
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
244 url: window.location.origin + "/api/internal/wms",
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
245 params: { LAYERS: "waterway_area", VERSION: "1.1.1", TILED: true },
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
246 imageLoadFunction: function(tile, src) {
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
247 HTTP.get(src, {
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
248 headers: {
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
249 "X-Gemma-Auth": localStorage.getItem("token")
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
250 },
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
251 responseType: "blob"
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
252 }).then(response => {
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
253 tile.getImage().src = URL.createObjectURL(response.data);
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
254 });
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
255 } // TODO tile.setState(TileState.ERROR);
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
256 })
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
257 }),
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
258 (function() {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
259 const source = new VectorSource({ strategy: bboxStrategy });
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
260 source.setLoader(
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
261 buildVectorLoader(
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
262 {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
263 featureTypes: ["stretches_geoserver"],
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
264 geometryName: "area"
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
265 },
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
266 source,
3271
b74e9768231d client: map layers: added support for vuex store in layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 3270
diff changeset
267 true,
b74e9768231d client: map layers: added support for vuex store in layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 3270
diff changeset
268 (f, store) => {
b74e9768231d client: map layers: added support for vuex store in layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 3270
diff changeset
269 if (f.getId() === store.state.imports.selectedStretchId) {
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
270 f.set("highlighted", true);
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
271 }
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
272 return f;
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
273 }
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
274 )
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
275 );
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
276 return new VectorLayer({
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
277 id: "STRETCHES",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
278 label: "Stretches",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
279 visible: false,
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
280 style: styles.stretches,
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
281 source
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
282 });
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
283 })(),
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
284 (function() {
3309
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
285 const source = new VectorSource({ strategy: bboxStrategy });
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
286 source.setLoader(
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
287 buildVectorLoader(
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
288 {
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
289 featureTypes: ["sections_geoserver"],
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
290 geometryName: "area"
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
291 },
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
292 source,
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
293 true,
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
294 (f, store) => {
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
295 if (f.getId() === store.state.imports.selectedSectionId) {
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
296 f.set("highlighted", true);
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
297 }
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
298 return f;
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
299 }
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
300 )
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
301 );
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
302 return new VectorLayer({
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
303 id: "SECTIONS",
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
304 label: "Sections",
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
305 visible: false,
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
306 style: styles.sections,
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
307 source
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
308 });
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
309 })(),
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3271
diff changeset
310 (function() {
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
311 const source = new VectorSource();
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
312 source.setLoader(
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
313 buildVectorLoader(
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
314 {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
315 featureTypes: ["fairway_dimensions"],
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
316 filter: equalTo("level_of_service", 1)
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
317 },
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
318 source,
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
319 true
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
320 )
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
321 );
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
322 return new VectorLayer({
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
323 id: "FAIRWAYDIMENSIONSLOS1",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
324 label: "LOS 1 Fairway Dimensions",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
325 visible: false,
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
326 style: styles.fwd1,
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
327 maxResolution: 80,
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
328 minResolution: 0,
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
329 source
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
330 });
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
331 })(),
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
332 (function() {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
333 const source = new VectorSource();
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
334 source.setLoader(
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
335 buildVectorLoader(
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
336 {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
337 featureTypes: ["fairway_dimensions"],
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
338 filter: equalTo("level_of_service", 2)
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
339 },
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
340 source,
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
341 true
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
342 )
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
343 );
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
344 return new VectorLayer({
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
345 id: "FAIRWAYDIMENSIONSLOS2",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
346 label: "LOS 2 Fairway Dimensions",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
347 visible: false,
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
348 style: styles.fwd2,
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
349 maxResolution: 80,
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
350 minResolution: 0,
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
351 source
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
352 });
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
353 })(),
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
354 (function() {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
355 const source = new VectorSource();
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
356 source.setLoader(
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
357 buildVectorLoader(
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
358 {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
359 featureTypes: ["fairway_dimensions"],
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
360 filter: equalTo("level_of_service", 3)
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
361 },
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
362 source,
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
363 true
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
364 )
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
365 );
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
366 return new VectorLayer({
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
367 id: "FAIRWAYDIMENSIONSLOS3",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
368 label: "LOS 3 Fairway Dimensions",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
369 visible: true,
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
370 style: styles.fwd3,
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
371 maxResolution: 80,
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
372 minResolution: 0,
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
373 source
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
374 });
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
375 })(),
3047
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
376 new ImageLayer({
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
377 id: "WATERWAYAXIS",
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
378 label: "Waterway Axis",
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
379 source: new ImageSource({
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
380 url: window.location.origin + "/api/internal/wms",
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
381 params: { LAYERS: "waterway_axis", VERSION: "1.1.1", TILED: true },
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
382 imageLoadFunction: function(tile, src) {
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
383 HTTP.get(src, {
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
384 headers: {
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
385 "X-Gemma-Auth": localStorage.getItem("token")
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
386 },
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
387 responseType: "blob"
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
388 }).then(response => {
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
389 tile.getImage().src = URL.createObjectURL(response.data);
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
390 });
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
391 } // TODO tile.setState(TileState.ERROR);
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
392 })
e0b77d7463e7 Changed Waterway axis and area layer to WMS.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3031
diff changeset
393 }),
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
394 (function() {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
395 const source = new VectorSource({ strategy: bboxStrategy });
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
396 source.setLoader(
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
397 buildVectorLoader(
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
398 {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
399 featureTypes: ["waterway_profiles"],
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
400 geometryName: "geom"
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
401 },
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
402 source
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
403 )
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
404 );
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
405 return new VectorLayer({
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
406 id: "WATERWAYPROFILES",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
407 label: "Waterway Profiles",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
408 visible: true,
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
409 style: new Style({
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
410 stroke: new Stroke({
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
411 color: "rgba(0, 0, 255, .5)",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
412 lineDash: [5, 5],
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
413 width: 2
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
414 })
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
415 }),
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
416 maxResolution: 2.5,
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
417 minResolution: 0,
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
418 source
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
419 });
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
420 })(),
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
421 (function() {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
422 return new VectorLayer({
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
423 id: "BOTTLENECKS",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
424 label: "Bottlenecks",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
425 visible: true,
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
426 style: styles.bottleneck,
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
427 source: bottlenecksSource
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
428 });
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
429 })(),
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
430 new TileLayer({
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
431 id: "BOTTLENECKISOLINE",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
432 label: "Bottleneck isolines",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
433 visible: false,
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
434 source: new TileWMS({
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
435 preload: 0,
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
436 projection: "EPSG:3857",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
437 url: window.location.origin + "/api/internal/wms",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
438 params: {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
439 LAYERS: "sounding_results_contour_lines_geoserver",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
440 VERSION: "1.1.1",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
441 TILED: true
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
442 },
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
443 tileLoadFunction: function(tile, src) {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
444 // console.log("calling for", tile, src);
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
445 HTTP.get(src, {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
446 headers: {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
447 "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
448 },
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
449 responseType: "blob"
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
450 }).then(response => {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
451 tile.getImage().src = URL.createObjectURL(response.data);
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
452 });
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
453 } // TODO tile.setState(TileState.ERROR);
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
454 })
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
455 }),
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
456 new TileLayer({
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
457 id: "DIFFERENCES",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
458 label: "Bottleneck Differences",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
459 visible: false,
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
460 source: new TileWMS({
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
461 preload: 0,
3075
3cf7189fa93e Changed projection for sounding differences layer. Fixes font size.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3073
diff changeset
462 projection: "EPSG:3857",
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
463 url: window.location.origin + "/api/internal/wms",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
464 params: {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
465 LAYERS: "sounding_differences",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
466 VERSION: "1.1.1",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
467 TILED: true
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
468 },
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
469 tileLoadFunction: function(tile, src) {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
470 // console.log("calling for", tile, src);
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
471 HTTP.get(src, {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
472 headers: {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
473 "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
474 },
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
475 responseType: "blob"
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
476 }).then(response => {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
477 tile.getImage().src = URL.createObjectURL(response.data);
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
478 });
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
479 } // TODO tile.setState(TileState.ERROR);
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
480 })
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
481 }),
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
482 (function() {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
483 return new VectorLayer({
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
484 id: "BOTTLENECKSTATUS",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
485 label: "Critical Bottlenecks",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
486 forLegendStyle: { point: true, resolution: 16 },
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
487 visible: true,
3073
0cb180676722 client: map layers: changed z-index of critical bottleneck layer to be always on top
Markus Kottlaender <markus@intevation.de>
parents: 3047
diff changeset
488 zIndex: 1,
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
489 style: styles.bottleneckStatus,
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
490 source: bottlenecksSource
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
491 });
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
492 })(),
3335
59db0b5921c5 client: added layer for fairway availability diagrams with demo diagrams
Markus Kottlaender <markus@intevation.de>
parents: 3309
diff changeset
493 (function() {
59db0b5921c5 client: added layer for fairway availability diagrams with demo diagrams
Markus Kottlaender <markus@intevation.de>
parents: 3309
diff changeset
494 return new VectorLayer({
59db0b5921c5 client: added layer for fairway availability diagrams with demo diagrams
Markus Kottlaender <markus@intevation.de>
parents: 3309
diff changeset
495 id: "BOTTLENECKFAIRWAYAVAILABILITY",
59db0b5921c5 client: added layer for fairway availability diagrams with demo diagrams
Markus Kottlaender <markus@intevation.de>
parents: 3309
diff changeset
496 label: "Bottlenecks Fairway Availability",
59db0b5921c5 client: added layer for fairway availability diagrams with demo diagrams
Markus Kottlaender <markus@intevation.de>
parents: 3309
diff changeset
497 forLegendStyle: { point: true, resolution: 16 },
59db0b5921c5 client: added layer for fairway availability diagrams with demo diagrams
Markus Kottlaender <markus@intevation.de>
parents: 3309
diff changeset
498 visible: false,
59db0b5921c5 client: added layer for fairway availability diagrams with demo diagrams
Markus Kottlaender <markus@intevation.de>
parents: 3309
diff changeset
499 zIndex: 1,
59db0b5921c5 client: added layer for fairway availability diagrams with demo diagrams
Markus Kottlaender <markus@intevation.de>
parents: 3309
diff changeset
500 style: styles.bottleneckFairwayAvailability,
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
501 source: bottlenecksSource
3335
59db0b5921c5 client: added layer for fairway availability diagrams with demo diagrams
Markus Kottlaender <markus@intevation.de>
parents: 3309
diff changeset
502 });
59db0b5921c5 client: added layer for fairway availability diagrams with demo diagrams
Markus Kottlaender <markus@intevation.de>
parents: 3309
diff changeset
503 })(),
3434
9fba1be118e7 client: data accuracy: Show diagrams for gauges, bottlenecks and stretches on map.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3433
diff changeset
504 (function() {
9fba1be118e7 client: data accuracy: Show diagrams for gauges, bottlenecks and stretches on map.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3433
diff changeset
505 const source = new VectorSource({ strategy: bboxStrategy });
9fba1be118e7 client: data accuracy: Show diagrams for gauges, bottlenecks and stretches on map.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3433
diff changeset
506 source.setLoader(
9fba1be118e7 client: data accuracy: Show diagrams for gauges, bottlenecks and stretches on map.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3433
diff changeset
507 buildVectorLoader(
9fba1be118e7 client: data accuracy: Show diagrams for gauges, bottlenecks and stretches on map.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3433
diff changeset
508 {
3436
d6532429e703 client: linting
Markus Kottlaender <markus@intevation.de>
parents: 3434
diff changeset
509 featureTypes: [
d6532429e703 client: linting
Markus Kottlaender <markus@intevation.de>
parents: 3434
diff changeset
510 "bottlenecks_geoserver",
d6532429e703 client: linting
Markus Kottlaender <markus@intevation.de>
parents: 3434
diff changeset
511 "gauges_geoserver",
3444
1559566662f5 client: data accuracy: Add diagram for sections.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3436
diff changeset
512 "stretches_geoserver",
1559566662f5 client: data accuracy: Add diagram for sections.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3436
diff changeset
513 "sections_geoserver"
3436
d6532429e703 client: linting
Markus Kottlaender <markus@intevation.de>
parents: 3434
diff changeset
514 ]
3434
9fba1be118e7 client: data accuracy: Show diagrams for gauges, bottlenecks and stretches on map.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3433
diff changeset
515 },
9fba1be118e7 client: data accuracy: Show diagrams for gauges, bottlenecks and stretches on map.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3433
diff changeset
516 source,
3501
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
517 true,
3507
a606d003730c client: spuc12: implemented diagram for reference gauge of bottlenecks
Markus Kottlaender <markus@intevation.de>
parents: 3501
diff changeset
518 // since we don't use bbox strategy, features will contain all features and we can use it
a606d003730c client: spuc12: implemented diagram for reference gauge of bottlenecks
Markus Kottlaender <markus@intevation.de>
parents: 3501
diff changeset
519 // to find reference gauges for bottlenecks, yeah!
a606d003730c client: spuc12: implemented diagram for reference gauge of bottlenecks
Markus Kottlaender <markus@intevation.de>
parents: 3501
diff changeset
520 async (f, store, features) => {
a606d003730c client: spuc12: implemented diagram for reference gauge of bottlenecks
Markus Kottlaender <markus@intevation.de>
parents: 3501
diff changeset
521 // attach reference gauge to bottleneck
a606d003730c client: spuc12: implemented diagram for reference gauge of bottlenecks
Markus Kottlaender <markus@intevation.de>
parents: 3501
diff changeset
522 if (f.getId().indexOf("bottlenecks") > -1) {
a606d003730c client: spuc12: implemented diagram for reference gauge of bottlenecks
Markus Kottlaender <markus@intevation.de>
parents: 3501
diff changeset
523 f.set(
a606d003730c client: spuc12: implemented diagram for reference gauge of bottlenecks
Markus Kottlaender <markus@intevation.de>
parents: 3501
diff changeset
524 "gauge_obj",
a606d003730c client: spuc12: implemented diagram for reference gauge of bottlenecks
Markus Kottlaender <markus@intevation.de>
parents: 3501
diff changeset
525 features.find(feat => {
a606d003730c client: spuc12: implemented diagram for reference gauge of bottlenecks
Markus Kottlaender <markus@intevation.de>
parents: 3501
diff changeset
526 return (
a606d003730c client: spuc12: implemented diagram for reference gauge of bottlenecks
Markus Kottlaender <markus@intevation.de>
parents: 3501
diff changeset
527 feat.getId().indexOf("gauges") > -1 &&
a606d003730c client: spuc12: implemented diagram for reference gauge of bottlenecks
Markus Kottlaender <markus@intevation.de>
parents: 3501
diff changeset
528 feat.get("objname") === f.get("gauge_objname")
a606d003730c client: spuc12: implemented diagram for reference gauge of bottlenecks
Markus Kottlaender <markus@intevation.de>
parents: 3501
diff changeset
529 );
a606d003730c client: spuc12: implemented diagram for reference gauge of bottlenecks
Markus Kottlaender <markus@intevation.de>
parents: 3501
diff changeset
530 })
a606d003730c client: spuc12: implemented diagram for reference gauge of bottlenecks
Markus Kottlaender <markus@intevation.de>
parents: 3501
diff changeset
531 );
a606d003730c client: spuc12: implemented diagram for reference gauge of bottlenecks
Markus Kottlaender <markus@intevation.de>
parents: 3501
diff changeset
532 }
a606d003730c client: spuc12: implemented diagram for reference gauge of bottlenecks
Markus Kottlaender <markus@intevation.de>
parents: 3501
diff changeset
533
a606d003730c client: spuc12: implemented diagram for reference gauge of bottlenecks
Markus Kottlaender <markus@intevation.de>
parents: 3501
diff changeset
534 // attach nsc data to gauge
3501
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
535 if (f.getId().indexOf("gauges") > -1) {
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
536 // look for nashSutcliffeOverview in store. If present and
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
537 // not older than 15 min use it or fetch new data and store it.
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
538 let data = store.getters["gauges/nashSutcliffeOverview"](f);
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
539 if (
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
540 data &&
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
541 new Date().getTime() - data.createdAt.getTime() < 900000
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
542 ) {
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
543 f.set("nsc_data", data.data);
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
544 } else {
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
545 data = await store.dispatch(
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
546 "gauges/loadNashSutcliffeForOverview",
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
547 f.get("isrs_code")
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
548 );
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
549 if (data) {
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
550 store.commit("gauges/addNashSutcliffeOverviewEntry", {
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
551 feature: f,
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
552 data,
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
553 createdAt: new Date()
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
554 });
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
555 f.set("nsc_data", data);
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
556 }
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
557 }
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
558 }
c5c7cc24fe72 client: spuc12: implemented nash sutcliffe for forcast vs reality accuracy indicator
Markus Kottlaender <markus@intevation.de>
parents: 3457
diff changeset
559 }
3434
9fba1be118e7 client: data accuracy: Show diagrams for gauges, bottlenecks and stretches on map.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3433
diff changeset
560 )
9fba1be118e7 client: data accuracy: Show diagrams for gauges, bottlenecks and stretches on map.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3433
diff changeset
561 );
9fba1be118e7 client: data accuracy: Show diagrams for gauges, bottlenecks and stretches on map.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3433
diff changeset
562 return new VectorLayer({
9fba1be118e7 client: data accuracy: Show diagrams for gauges, bottlenecks and stretches on map.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3433
diff changeset
563 id: "DATAAVAILABILITY",
9fba1be118e7 client: data accuracy: Show diagrams for gauges, bottlenecks and stretches on map.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3433
diff changeset
564 label: "Data Availability/Accuracy",
9fba1be118e7 client: data accuracy: Show diagrams for gauges, bottlenecks and stretches on map.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3433
diff changeset
565 forLegendStyle: { point: true, resolution: 16 },
9fba1be118e7 client: data accuracy: Show diagrams for gauges, bottlenecks and stretches on map.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3433
diff changeset
566 visible: false,
9fba1be118e7 client: data accuracy: Show diagrams for gauges, bottlenecks and stretches on map.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3433
diff changeset
567 zIndex: 1,
9fba1be118e7 client: data accuracy: Show diagrams for gauges, bottlenecks and stretches on map.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3433
diff changeset
568 style: styles.dataAvailability,
9fba1be118e7 client: data accuracy: Show diagrams for gauges, bottlenecks and stretches on map.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3433
diff changeset
569 source
9fba1be118e7 client: data accuracy: Show diagrams for gauges, bottlenecks and stretches on map.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3433
diff changeset
570 });
9fba1be118e7 client: data accuracy: Show diagrams for gauges, bottlenecks and stretches on map.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3433
diff changeset
571 })(),
3081
9107c959bb3b client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3075
diff changeset
572 new ImageLayer({
9107c959bb3b client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3075
diff changeset
573 id: "DISTANCEMARKS",
9107c959bb3b client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3075
diff changeset
574 label: "Distance Marks",
9107c959bb3b client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3075
diff changeset
575 maxResolution: 10,
9107c959bb3b client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3075
diff changeset
576 minResolution: 0,
9107c959bb3b client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3075
diff changeset
577 source: new ImageSource({
9107c959bb3b client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3075
diff changeset
578 url: window.location.origin + "/api/internal/wms",
9107c959bb3b client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3075
diff changeset
579 params: {
9107c959bb3b client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3075
diff changeset
580 LAYERS: "distance_marks_ashore_geoserver",
9107c959bb3b client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3075
diff changeset
581 VERSION: "1.1.1",
9107c959bb3b client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3075
diff changeset
582 TILED: true
9107c959bb3b client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3075
diff changeset
583 },
9107c959bb3b client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3075
diff changeset
584 imageLoadFunction: function(tile, src) {
9107c959bb3b client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3075
diff changeset
585 HTTP.get(src, {
9107c959bb3b client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3075
diff changeset
586 headers: {
9107c959bb3b client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3075
diff changeset
587 "X-Gemma-Auth": localStorage.getItem("token")
9107c959bb3b client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3075
diff changeset
588 },
9107c959bb3b client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3075
diff changeset
589 responseType: "blob"
9107c959bb3b client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3075
diff changeset
590 }).then(response => {
9107c959bb3b client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3075
diff changeset
591 tile.getImage().src = URL.createObjectURL(response.data);
9107c959bb3b client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3075
diff changeset
592 });
9107c959bb3b client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3075
diff changeset
593 } // TODO tile.setState(TileState.ERROR);
9107c959bb3b client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3075
diff changeset
594 })
9107c959bb3b client: Changed distance marks ashore to WMS layer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3075
diff changeset
595 }),
3029
81c2e561fe03 Use distance marks an axis via WMS. Added legend and featureinfo.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3021
diff changeset
596 new ImageLayer({
81c2e561fe03 Use distance marks an axis via WMS. Added legend and featureinfo.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3021
diff changeset
597 id: "DISTANCEMARKSAXIS",
81c2e561fe03 Use distance marks an axis via WMS. Added legend and featureinfo.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3021
diff changeset
598 label: "Distance Marks, Axis",
81c2e561fe03 Use distance marks an axis via WMS. Added legend and featureinfo.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3021
diff changeset
599 source: new ImageSource({
81c2e561fe03 Use distance marks an axis via WMS. Added legend and featureinfo.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3021
diff changeset
600 url: window.location.origin + "/api/internal/wms",
3031
f99f0cbb843f client:linting
Fadi Abbud <fadi.abbud@intevation.de>
parents: 3030
diff changeset
601 params: {
f99f0cbb843f client:linting
Fadi Abbud <fadi.abbud@intevation.de>
parents: 3030
diff changeset
602 LAYERS: "distance_marks_geoserver",
f99f0cbb843f client:linting
Fadi Abbud <fadi.abbud@intevation.de>
parents: 3030
diff changeset
603 VERSION: "1.1.1",
f99f0cbb843f client:linting
Fadi Abbud <fadi.abbud@intevation.de>
parents: 3030
diff changeset
604 TILED: true
f99f0cbb843f client:linting
Fadi Abbud <fadi.abbud@intevation.de>
parents: 3030
diff changeset
605 },
3029
81c2e561fe03 Use distance marks an axis via WMS. Added legend and featureinfo.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3021
diff changeset
606 imageLoadFunction: function(tile, src) {
81c2e561fe03 Use distance marks an axis via WMS. Added legend and featureinfo.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3021
diff changeset
607 HTTP.get(src, {
81c2e561fe03 Use distance marks an axis via WMS. Added legend and featureinfo.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3021
diff changeset
608 headers: {
81c2e561fe03 Use distance marks an axis via WMS. Added legend and featureinfo.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3021
diff changeset
609 "X-Gemma-Auth": localStorage.getItem("token")
81c2e561fe03 Use distance marks an axis via WMS. Added legend and featureinfo.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3021
diff changeset
610 },
81c2e561fe03 Use distance marks an axis via WMS. Added legend and featureinfo.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3021
diff changeset
611 responseType: "blob"
81c2e561fe03 Use distance marks an axis via WMS. Added legend and featureinfo.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3021
diff changeset
612 }).then(response => {
81c2e561fe03 Use distance marks an axis via WMS. Added legend and featureinfo.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3021
diff changeset
613 tile.getImage().src = URL.createObjectURL(response.data);
81c2e561fe03 Use distance marks an axis via WMS. Added legend and featureinfo.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3021
diff changeset
614 });
81c2e561fe03 Use distance marks an axis via WMS. Added legend and featureinfo.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3021
diff changeset
615 } // TODO tile.setState(TileState.ERROR);
81c2e561fe03 Use distance marks an axis via WMS. Added legend and featureinfo.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3021
diff changeset
616 })
81c2e561fe03 Use distance marks an axis via WMS. Added legend and featureinfo.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3021
diff changeset
617 }),
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
618 (function() {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
619 const source = new VectorSource({ strategy: bboxStrategy });
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
620 source.setLoader(
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
621 buildVectorLoader(
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
622 {
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
623 featureTypes: ["gauges_geoserver"],
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
624 geometryName: "geom"
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
625 },
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
626 source
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
627 )
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
628 );
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
629 return new VectorLayer({
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
630 id: "GAUGES",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
631 label: "Gauges",
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
632 forLegendStyle: { point: true, resolution: 8 },
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
633 visible: true,
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
634 style: styles.gauge,
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
635 maxResolution: 100,
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
636 minResolution: 0,
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
637 source
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
638 });
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
639 })(),
3123
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
640 DRAWLAYER,
f0af359391a0 client: map layers: share certain layer objects across map
Markus Kottlaender <markus@intevation.de>
parents: 3102
diff changeset
641 CUTLAYER
3011
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
642 ]
fc8fbea24568 client: moved map component, layer factory and styles to own subdirectory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
643 };
3021
2e2a271c1026 client: fixed layer factory to actually serve different objects
Markus Kottlaender <markus@intevation.de>
parents: 3011
diff changeset
644 }