annotate client/src/store/map.js @ 1158:da75faa8043f

added central moveMap method to pan and zoom the map on certain events it was requested to prevent zooming out if the zoomlevel is already higher then the desired default zoom (for certain zoom/pan targets) so there's a parameter preventZoomOut which, if set to true, lets this method only zoom in but not out.
author Markus Kottlaender <markus@intevation.de>
date Tue, 13 Nov 2018 14:22:35 +0100
parents 5f98d0c9d738
children 49740dcba52c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1019
ca628dce90dd Licensing information added
Thomas Junk <thomas.junk@intevation.de>
parents: 975
diff changeset
1 /*
ca628dce90dd Licensing information added
Thomas Junk <thomas.junk@intevation.de>
parents: 975
diff changeset
2 * This is Free Software under GNU Affero General Public License v >= 3.0
ca628dce90dd Licensing information added
Thomas Junk <thomas.junk@intevation.de>
parents: 975
diff changeset
3 * without warranty, see README.md and license for details.
ca628dce90dd Licensing information added
Thomas Junk <thomas.junk@intevation.de>
parents: 975
diff changeset
4 *
ca628dce90dd Licensing information added
Thomas Junk <thomas.junk@intevation.de>
parents: 975
diff changeset
5 * SPDX-License-Identifier: AGPL-3.0-or-later
ca628dce90dd Licensing information added
Thomas Junk <thomas.junk@intevation.de>
parents: 975
diff changeset
6 * License-Filename: LICENSES/AGPL-3.0.txt
ca628dce90dd Licensing information added
Thomas Junk <thomas.junk@intevation.de>
parents: 975
diff changeset
7 *
ca628dce90dd Licensing information added
Thomas Junk <thomas.junk@intevation.de>
parents: 975
diff changeset
8 * Copyright (C) 2018 by via donau
ca628dce90dd Licensing information added
Thomas Junk <thomas.junk@intevation.de>
parents: 975
diff changeset
9 * – Österreichische Wasserstraßen-Gesellschaft mbH
ca628dce90dd Licensing information added
Thomas Junk <thomas.junk@intevation.de>
parents: 975
diff changeset
10 * Software engineering by Intevation GmbH
ca628dce90dd Licensing information added
Thomas Junk <thomas.junk@intevation.de>
parents: 975
diff changeset
11 *
ca628dce90dd Licensing information added
Thomas Junk <thomas.junk@intevation.de>
parents: 975
diff changeset
12 * Author(s):
ca628dce90dd Licensing information added
Thomas Junk <thomas.junk@intevation.de>
parents: 975
diff changeset
13 * Thomas Junk <thomas.junk@intevation.de>
ca628dce90dd Licensing information added
Thomas Junk <thomas.junk@intevation.de>
parents: 975
diff changeset
14 */
ca628dce90dd Licensing information added
Thomas Junk <thomas.junk@intevation.de>
parents: 975
diff changeset
15
585
ef307bd6b5d8 refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
16 //import { HTTP } from "../lib/http";
ef307bd6b5d8 refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
17
1099
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
18 import TileWMS from "ol/source/TileWMS.js";
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
19 import { Tile as TileLayer, Vector as VectorLayer } from "ol/layer.js";
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
20 import OSM from "ol/source/OSM";
1121
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
21 import {
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
22 Icon,
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
23 Stroke,
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
24 Style,
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
25 Fill,
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
26 Text,
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
27 Circle as CircleStyle
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
28 } from "ol/style.js";
1099
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
29 import VectorSource from "ol/source/Vector.js";
1121
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
30 import Point from "ol/geom/Point.js";
1099
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
31 import { bbox as bboxStrategy } from "ol/loadingstrategy";
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
32 import { HTTP } from "../application/lib/http";
1158
da75faa8043f added central moveMap method to pan and zoom the map on certain events
Markus Kottlaender <markus@intevation.de>
parents: 1144
diff changeset
33 import { fromLonLat } from "ol/proj";
585
ef307bd6b5d8 refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
34
1114
8d12056d602a shortened store file imports
Markus Kottlaender <markus@intevation.de>
parents: 1112
diff changeset
35 export default {
585
ef307bd6b5d8 refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
36 namespaced: true,
ef307bd6b5d8 refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
37 state: {
783
ab9604a46075 client: add move after clicking search result
Bernhard Reiter <bernhard@intevation.de>
parents: 782
diff changeset
38 openLayersMap: null,
1140
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
39 identifiedFeatures: [], // map features identified by clicking on the map
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
40 currentMeasurement: null, // distance or area from drawTool
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
41 drawMode: null, // null, "LineString", "Polygon"
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
42 drawTool: null, // open layers interaction object (Draw)
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
43 cutMode: false, // true or false
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
44 cutTool: null, // open layers interaction object (Draw)
1099
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
45 layers: [
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
46 {
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
47 name: "Open Streetmap",
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
48 data: new TileLayer({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
49 source: new OSM()
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
50 }),
1121
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
51 isVisible: true,
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
52 showInLegend: true
1099
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
53 },
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
54 {
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
55 name: "Inland ECDIS chart Danube",
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
56 data: new TileLayer({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
57 source: new TileWMS({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
58 preload: 1,
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
59 url: "https://demo.d4d-portal.info/wms",
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
60 params: { LAYERS: "d4d", VERSION: "1.1.1", TILED: true }
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
61 })
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
62 }),
1121
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
63 isVisible: true,
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
64 showInLegend: true
1099
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
65 },
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
66 {
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
67 name: "Fairway Dimensions",
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
68 data: new VectorLayer({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
69 source: new VectorSource(),
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
70 style: function(feature) {
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
71 return [
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
72 new Style({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
73 stroke: new Stroke({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
74 color: "rgba(0, 0, 255, 1.0)",
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
75 width: 2
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
76 })
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
77 }),
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
78 new Style({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
79 text: new Text({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
80 font: 'bold 12px "Open Sans", "sans-serif"',
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
81 placement: "line",
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
82 fill: new Fill({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
83 color: "black"
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
84 }),
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
85 text: "LOS: " + feature.get("level_of_service").toString()
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
86 //, zIndex: 10
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
87 })
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
88 })
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
89 ];
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
90 }
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
91 }),
1121
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
92 isVisible: true,
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
93 showInLegend: true
1099
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
94 },
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
95 {
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
96 name: "Waterway Area, named",
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
97 data: new VectorLayer({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
98 source: new VectorSource({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
99 strategy: bboxStrategy
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
100 }),
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
101 style: new Style({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
102 stroke: new Stroke({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
103 color: "rgba(0, 132, 0, 1)",
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
104 width: 2
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
105 })
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
106 })
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
107 }),
1121
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
108 isVisible: false,
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
109 showInLegend: true
1099
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
110 },
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
111 {
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
112 name: "Waterway Area",
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
113 data: new VectorLayer({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
114 source: new VectorSource({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
115 strategy: bboxStrategy
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
116 }),
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
117 style: new Style({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
118 stroke: new Stroke({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
119 color: "rgba(0, 102, 0, 1)",
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
120 width: 2
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
121 })
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
122 })
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
123 }),
1121
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
124 isVisible: true,
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
125 showInLegend: true
1099
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
126 },
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
127 {
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
128 name: "Waterway Axis",
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
129 data: new VectorLayer({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
130 source: new VectorSource({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
131 strategy: bboxStrategy
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
132 }),
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
133 style: new Style({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
134 stroke: new Stroke({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
135 color: "rgba(0, 0, 255, .5)",
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
136 lineDash: [5, 5],
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
137 width: 2
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
138 })
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
139 })
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
140 }),
1121
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
141 isVisible: true,
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
142 showInLegend: true
1099
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
143 },
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
144 {
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
145 name: "Distance marks",
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
146 forLegendStyle: { point: true, resolution: 8 },
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
147 data: new VectorLayer({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
148 source: new VectorSource({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
149 strategy: bboxStrategy
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
150 })
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
151 }),
1121
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
152 isVisible: false,
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
153 showInLegend: true
1099
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
154 },
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
155 {
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
156 name: "Bottlenecks",
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
157 data: new VectorLayer({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
158 source: new VectorSource({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
159 strategy: bboxStrategy
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
160 }),
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
161 style: new Style({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
162 stroke: new Stroke({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
163 color: "rgba(230, 230, 10, .8)",
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
164 width: 4
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
165 }),
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
166 fill: new Fill({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
167 color: "rgba(230, 230, 10, .3)"
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
168 })
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
169 })
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
170 }),
1121
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
171 isVisible: true,
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
172 showInLegend: true
1099
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
173 },
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
174 {
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
175 name: "Bottleneck isolines",
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
176 data: new TileLayer({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
177 source: new TileWMS({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
178 preload: 0,
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
179 projection: "EPSG:3857",
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
180 url: window.location.origin + "/api/internal/wms",
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
181 params: {
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
182 LAYERS: "sounding_results_contour_lines_geoserver",
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
183 VERSION: "1.1.1",
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
184 TILED: true
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
185 },
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
186 tileLoadFunction: function(tile, src) {
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
187 // console.log("calling for", tile, src);
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
188 HTTP.get(src, {
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
189 headers: {
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
190 "X-Gemma-Auth": localStorage.getItem("token")
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
191 },
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
192 responseType: "blob"
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
193 }).then(response => {
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
194 tile.getImage().src = URL.createObjectURL(response.data);
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
195 });
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
196 } // TODO tile.setState(TileState.ERROR);
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
197 })
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
198 }),
1121
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
199 isVisible: false,
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
200 showInLegend: true
1099
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
201 },
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
202 {
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
203 name: "Distance marks, Axis",
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
204 forLegendStyle: { point: true, resolution: 8 },
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
205 data: new VectorLayer({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
206 source: new VectorSource({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
207 strategy: bboxStrategy
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
208 }),
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
209 style: function(feature, resolution) {
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
210 if (resolution < 10) {
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
211 var s = new Style({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
212 image: new CircleStyle({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
213 radius: 5,
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
214 fill: new Fill({ color: "rgba(255, 0, 0, 0.1)" }),
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
215 stroke: new Stroke({ color: "blue", width: 1 })
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
216 })
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
217 });
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
218 if (resolution < 6) {
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
219 s.setText(
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
220 new Text({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
221 offsetY: 12,
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
222 font: '10px "Open Sans", "sans-serif"',
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
223 fill: new Fill({
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
224 color: "black"
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
225 }),
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
226 text: (feature.get("hectometre") / 10).toString()
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
227 })
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
228 );
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
229 }
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
230 return s;
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
231 } else {
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
232 return [];
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
233 }
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
234 }
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
235 }),
1121
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
236 isVisible: true,
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
237 showInLegend: true
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
238 },
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
239 {
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
240 name: "Draw Tool",
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
241 data: new VectorLayer({
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
242 source: new VectorSource({ wrapX: false }),
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
243 style: function(feature) {
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
244 // adapted from OpenLayer's LineString Arrow Example
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
245 var geometry = feature.getGeometry();
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
246 var styles = [
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
247 // linestring
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
248 new Style({
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
249 stroke: new Stroke({
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
250 color: "#369aca",
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
251 width: 2
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
252 })
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
253 })
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
254 ];
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
255
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
256 if (geometry.getType() === "LineString") {
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
257 geometry.forEachSegment(function(start, end) {
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
258 var dx = end[0] - start[0];
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
259 var dy = end[1] - start[1];
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
260 var rotation = Math.atan2(dy, dx);
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
261 // arrows
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
262 styles.push(
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
263 new Style({
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
264 geometry: new Point(end),
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
265 image: new Icon({
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
266 // we need to make sure the image is loaded by Vue Loader
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
267 src: require("../application/assets/linestring_arrow.png"),
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
268 // fiddling with the anchor's y value does not help to
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
269 // position the image more centered on the line ending, as the
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
270 // default line style seems to be slightly uncentered in the
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
271 // anti-aliasing, but the image is not placed with subpixel
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
272 // precision
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
273 anchor: [0.75, 0.5],
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
274 rotateWithView: true,
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
275 rotation: -rotation
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
276 })
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
277 })
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
278 );
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
279 });
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
280 }
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
281 return styles;
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
282 }
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
283 }),
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
284 isVisible: true,
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
285 showInLegend: false
1140
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
286 },
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
287 {
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
288 name: "Cut Tool",
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
289 data: new VectorLayer({
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
290 source: new VectorSource({ wrapX: false }),
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
291 style: function(feature) {
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
292 // adapted from OpenLayer's LineString Arrow Example
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
293 var geometry = feature.getGeometry();
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
294 var styles = [
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
295 // linestring
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
296 new Style({
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
297 stroke: new Stroke({
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
298 color: "#369aca",
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
299 width: 2
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
300 })
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
301 })
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
302 ];
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
303
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
304 if (geometry.getType() === "LineString") {
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
305 geometry.forEachSegment(function(start, end) {
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
306 var dx = end[0] - start[0];
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
307 var dy = end[1] - start[1];
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
308 var rotation = Math.atan2(dy, dx);
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
309 // arrows
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
310 styles.push(
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
311 new Style({
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
312 geometry: new Point(end),
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
313 image: new Icon({
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
314 // we need to make sure the image is loaded by Vue Loader
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
315 src: require("../application/assets/linestring_arrow.png"),
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
316 // fiddling with the anchor's y value does not help to
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
317 // position the image more centered on the line ending, as the
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
318 // default line style seems to be slightly uncentered in the
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
319 // anti-aliasing, but the image is not placed with subpixel
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
320 // precision
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
321 anchor: [0.75, 0.5],
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
322 rotateWithView: true,
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
323 rotation: -rotation
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
324 })
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
325 })
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
326 );
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
327 });
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
328 }
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
329 return styles;
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
330 }
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
331 }),
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
332 isVisible: true,
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
333 showInLegend: false
1099
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
334 }
1f4799bab8a6 deleted layers/layers.js and moved content to map store
Markus Kottlaender <markus@intevation.de>
parents: 1096
diff changeset
335 ]
585
ef307bd6b5d8 refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
336 },
ef307bd6b5d8 refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
337 getters: {
1121
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
338 layersForLegend: state => {
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
339 return state.layers.filter(layer => layer.showInLegend);
035dc35e1dfc moved draw layer in map store's layers property
Markus Kottlaender <markus@intevation.de>
parents: 1115
diff changeset
340 },
754
105c421f99b1 refac: small improvements to code structure
Thomas Junk <thomas.junk@intevation.de>
parents: 747
diff changeset
341 getLayerByName: state => name => {
105c421f99b1 refac: small improvements to code structure
Thomas Junk <thomas.junk@intevation.de>
parents: 747
diff changeset
342 return state.layers.find(layer => layer.name === name);
585
ef307bd6b5d8 refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
343 }
ef307bd6b5d8 refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
344 },
ef307bd6b5d8 refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
345 mutations: {
ef307bd6b5d8 refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
346 toggleVisibility: (state, layer) => {
ef307bd6b5d8 refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
347 state.layers[layer].isVisible = !state.layers[layer].isVisible;
ef307bd6b5d8 refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
348 state.layers[layer].data.setVisible(state.layers[layer].isVisible);
770
c12ec7fde3f2 client: add simple identify top area box
Bernhard Reiter <bernhard@intevation.de>
parents: 754
diff changeset
349 },
783
ab9604a46075 client: add move after clicking search result
Bernhard Reiter <bernhard@intevation.de>
parents: 782
diff changeset
350 setOpenLayersMap: (state, map) => {
ab9604a46075 client: add move after clicking search result
Bernhard Reiter <bernhard@intevation.de>
parents: 782
diff changeset
351 state.openLayersMap = map;
1112
2c3d32322126 moved identifystore properties to mapstore
Markus Kottlaender <markus@intevation.de>
parents: 1099
diff changeset
352 },
2c3d32322126 moved identifystore properties to mapstore
Markus Kottlaender <markus@intevation.de>
parents: 1099
diff changeset
353 setIdentifiedFeatures: (state, identifiedFeatures) => {
2c3d32322126 moved identifystore properties to mapstore
Markus Kottlaender <markus@intevation.de>
parents: 1099
diff changeset
354 state.identifiedFeatures = identifiedFeatures;
2c3d32322126 moved identifystore properties to mapstore
Markus Kottlaender <markus@intevation.de>
parents: 1099
diff changeset
355 },
2c3d32322126 moved identifystore properties to mapstore
Markus Kottlaender <markus@intevation.de>
parents: 1099
diff changeset
356 setCurrentMeasurement: (state, measurement) => {
2c3d32322126 moved identifystore properties to mapstore
Markus Kottlaender <markus@intevation.de>
parents: 1099
diff changeset
357 state.currentMeasurement = measurement;
1115
1b160eda22cf moved drawMode to map store
Markus Kottlaender <markus@intevation.de>
parents: 1114
diff changeset
358 },
1140
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
359 drawMode: (state, mode) => {
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
360 state.drawMode = mode;
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
361 },
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
362 drawTool: (state, drawTool) => {
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
363 state.drawTool = drawTool;
1115
1b160eda22cf moved drawMode to map store
Markus Kottlaender <markus@intevation.de>
parents: 1114
diff changeset
364 },
1140
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
365 cutMode: (state, mode) => {
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
366 state.cutMode = mode;
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
367 },
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
368 cutTool: (state, cutTool) => {
2e06bc53b002 separating line/polygon/cut tools in UI
Markus Kottlaender <markus@intevation.de>
parents: 1122
diff changeset
369 state.cutTool = cutTool;
1158
da75faa8043f added central moveMap method to pan and zoom the map on certain events
Markus Kottlaender <markus@intevation.de>
parents: 1144
diff changeset
370 },
da75faa8043f added central moveMap method to pan and zoom the map on certain events
Markus Kottlaender <markus@intevation.de>
parents: 1144
diff changeset
371 moveMap: (state, { coordinates, zoom, preventZoomOut }) => {
da75faa8043f added central moveMap method to pan and zoom the map on certain events
Markus Kottlaender <markus@intevation.de>
parents: 1144
diff changeset
372 let view = state.openLayersMap.getView();
da75faa8043f added central moveMap method to pan and zoom the map on certain events
Markus Kottlaender <markus@intevation.de>
parents: 1144
diff changeset
373 const currentZoom = view.getZoom();
da75faa8043f added central moveMap method to pan and zoom the map on certain events
Markus Kottlaender <markus@intevation.de>
parents: 1144
diff changeset
374 view.animate({
da75faa8043f added central moveMap method to pan and zoom the map on certain events
Markus Kottlaender <markus@intevation.de>
parents: 1144
diff changeset
375 zoom: preventZoomOut ? Math.max(zoom, currentZoom) : zoom,
da75faa8043f added central moveMap method to pan and zoom the map on certain events
Markus Kottlaender <markus@intevation.de>
parents: 1144
diff changeset
376 center: fromLonLat(coordinates, view.getProjection()),
da75faa8043f added central moveMap method to pan and zoom the map on certain events
Markus Kottlaender <markus@intevation.de>
parents: 1144
diff changeset
377 duration: 700
da75faa8043f added central moveMap method to pan and zoom the map on certain events
Markus Kottlaender <markus@intevation.de>
parents: 1144
diff changeset
378 });
1144
5f98d0c9d738 linted code
Markus Kottlaender <markus@intevation.de>
parents: 1140
diff changeset
379 }
585
ef307bd6b5d8 refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
380 }
ef307bd6b5d8 refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
381 };