@masterportal/masterportalapi 2.2.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +0 -1
- package/.eslintrc +4 -1
- package/CHANGELOG.md +49 -4
- package/example/config/localGeoJSON.js +24 -24
- package/example/config/portal.json +1 -1
- package/example/config/services.json +190 -1
- package/example/index.js +65 -67
- package/package.json +18 -17
- package/src/defaults.js +18 -2
- package/src/index.js +4 -0
- package/src/layer/entities.js +179 -0
- package/src/layer/geojson/index.js +7 -0
- package/src/layer/geojson/style.js +1 -0
- package/src/layer/terrain.js +1 -8
- package/src/layer/tileset.js +1 -8
- package/src/layer/vectorTile.js +3 -3
- package/src/layer/wms.js +4 -0
- package/src/layer/wmts.js +194 -0
- package/src/maps/ol/olMap.js +2 -0
- package/src/maps/olcs/3dUtils/wmsRasterSynchronizer.js +88 -52
- package/src/maps/olcs/olcsMap.js +115 -99
- package/test/layer/entities.test.js +277 -0
- package/test/layer/terrain.test.js +1 -14
- package/test/layer/tileset.test.js +3 -10
- package/test/layer/vectorTile.test.js +2 -2
- package/test/layer/wmts.test.js +26 -0
- package/test/map.test.js +34 -1
package/.eslintignore
CHANGED
package/.eslintrc
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -3,16 +3,61 @@
|
|
|
3
3
|
|
|
4
4
|
The [Semantic Versioning](https://semver.org/spec/v2.0.0.html) is used.
|
|
5
5
|
|
|
6
|
-
##
|
|
6
|
+
## 2.5.0 - 2022-08-05
|
|
7
7
|
### Added
|
|
8
|
+
- The following packages have been installed:
|
|
9
|
+
- jest-environment-jsdom: 28.1.3
|
|
8
10
|
|
|
9
11
|
### Changed
|
|
12
|
+
- The following packages have been updated:
|
|
13
|
+
- dependencies:
|
|
14
|
+
- core-js: 3.16.1 to 3.24.0
|
|
15
|
+
- ol: 6.14.1 to 6.15.1 (This also raised ol-mapbox-style from 7 to version 8)
|
|
16
|
+
- proj4: 2.7.5 to 2.8.0
|
|
17
|
+
- devDependencies:
|
|
18
|
+
- @babel/core: 7.16.7 to 7.18.9
|
|
19
|
+
- @babel/plugin-transform-modules-commonjs: 7.16.8 to 7.18.6
|
|
20
|
+
- @parcel/transformer-sass: 2.2.0 to 2.6.2
|
|
21
|
+
- canvas: 2.8.0 to 2.9.3
|
|
22
|
+
- eslint: 7.32.0 to 8.20.0
|
|
23
|
+
- husky: 7.0.1 to 8.0.1
|
|
24
|
+
- jest: 27.4.0 to 28.1.3
|
|
25
|
+
- jest-canvas-mock: 2.3.1 to 2.4.0
|
|
26
|
+
- jsdoc: 3.6.7 to 3.6.11
|
|
27
|
+
- parcel: 2.2.0 to 2.6.2
|
|
28
|
+
- sass: 1.37.5 to 1.54.0
|
|
29
|
+
- peerDependencies:
|
|
30
|
+
- cesium: 1.88.0 to 1.95.0
|
|
10
31
|
|
|
11
|
-
|
|
32
|
+
---
|
|
12
33
|
|
|
13
|
-
|
|
34
|
+
## 2.4.0 - 2022-07-06
|
|
35
|
+
### Added
|
|
36
|
+
- Issue 776: Add 3D mode for WMTS layers.
|
|
37
|
+
|
|
38
|
+
### Fixed
|
|
39
|
+
- 3D: Handling of camera parameters at olcsmap are adapted.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 2.3.0 - 2022-05-27
|
|
44
|
+
### Added
|
|
45
|
+
- Add a new layer type WMTS.
|
|
46
|
+
- A new layer typ Entities3D (e.g. layer with glb-files) is implemented and integrated into MaterportalAPI.
|
|
47
|
+
|
|
48
|
+
### Changed
|
|
49
|
+
- The following packages have been updated
|
|
50
|
+
- ol: from 6.13.0 to version 6.14.1
|
|
51
|
+
- 3D Mode:
|
|
52
|
+
- Default values are now set for the 3D Scene when creating the 3D Map.
|
|
53
|
+
- Default values for the 3D Scene can be overwritten with the attribute `sceneOptions` any.
|
|
54
|
+
- Default values of the 3D Scene are always set first. After that, attributes configured by the user are set.
|
|
14
55
|
|
|
15
56
|
### Fixed
|
|
57
|
+
- 3D Mode:
|
|
58
|
+
- Vector layers like WFS, GeoJSON or OAF (OGC API - Features) are now displayed in 3D mode.
|
|
59
|
+
- WMS layers of type `TileWMS` are now also displayed in 3D.
|
|
60
|
+
- In 3D mode a pick position is now provided for clicked billboards.
|
|
16
61
|
|
|
17
62
|
---
|
|
18
63
|
|
|
@@ -50,7 +95,7 @@
|
|
|
50
95
|
- Gazetteer search:
|
|
51
96
|
- Previous gazetteer searches can now be aborted by means of an `AbortController`.
|
|
52
97
|
- Added the possibility to use the `geographicIdentifier` to display the search result.
|
|
53
|
-
- A new layer typ OAF (OGC API
|
|
98
|
+
- A new layer typ OAF (OGC API - Features) is implemented and integrated into MaterportalAPI
|
|
54
99
|
- Features as parameter can be parsed as filter
|
|
55
100
|
- A new parameter "doNotLoadInitially" for WFS layer so that for the external filter, the filtering of feature will be first loaded
|
|
56
101
|
|
|
@@ -4,29 +4,29 @@
|
|
|
4
4
|
* @type {object} GeoJSON Feature Collection
|
|
5
5
|
*/
|
|
6
6
|
export default {
|
|
7
|
-
"type":"FeatureCollection",
|
|
8
|
-
"features":[
|
|
7
|
+
"type": "FeatureCollection",
|
|
8
|
+
"features": [
|
|
9
9
|
{
|
|
10
10
|
"type": "Feature",
|
|
11
|
-
"properties":{
|
|
11
|
+
"properties": {
|
|
12
12
|
"name": "Testmarker"
|
|
13
13
|
},
|
|
14
|
-
"geometry":{
|
|
15
|
-
"type":"Point",
|
|
16
|
-
"coordinates":[9.8436, 53.4800]
|
|
14
|
+
"geometry": {
|
|
15
|
+
"type": "Point",
|
|
16
|
+
"coordinates": [9.8436, 53.4800]
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
|
-
"type":"Feature",
|
|
21
|
-
"properties":{
|
|
22
|
-
"name":"Wilhelmsburg",
|
|
23
|
-
"cartodb_id":23,
|
|
24
|
-
"created_at":"2013-02-18T21:04:33.987Z",
|
|
25
|
-
"updated_at":"2013-02-18T21:04:34.218Z"
|
|
20
|
+
"type": "Feature",
|
|
21
|
+
"properties": {
|
|
22
|
+
"name": "Wilhelmsburg",
|
|
23
|
+
"cartodb_id": 23,
|
|
24
|
+
"created_at": "2013-02-18T21:04:33.987Z",
|
|
25
|
+
"updated_at": "2013-02-18T21:04:34.218Z"
|
|
26
26
|
},
|
|
27
|
-
"geometry":{
|
|
28
|
-
"type":"MultiPolygon",
|
|
29
|
-
"coordinates":[
|
|
27
|
+
"geometry": {
|
|
28
|
+
"type": "MultiPolygon",
|
|
29
|
+
"coordinates": [
|
|
30
30
|
[
|
|
31
31
|
[
|
|
32
32
|
[
|
|
@@ -583,16 +583,16 @@ export default {
|
|
|
583
583
|
}
|
|
584
584
|
},
|
|
585
585
|
{
|
|
586
|
-
"type":"Feature",
|
|
587
|
-
"properties":{
|
|
588
|
-
"name":"Blankenese",
|
|
589
|
-
"cartodb_id":30,
|
|
590
|
-
"created_at":"2013-02-18T21:04:33.987Z",
|
|
591
|
-
"updated_at":"2013-02-18T21:04:34.218Z"
|
|
586
|
+
"type": "Feature",
|
|
587
|
+
"properties": {
|
|
588
|
+
"name": "Blankenese",
|
|
589
|
+
"cartodb_id": 30,
|
|
590
|
+
"created_at": "2013-02-18T21:04:33.987Z",
|
|
591
|
+
"updated_at": "2013-02-18T21:04:34.218Z"
|
|
592
592
|
},
|
|
593
|
-
"geometry":{
|
|
594
|
-
"type":"MultiPolygon",
|
|
595
|
-
"coordinates":[
|
|
593
|
+
"geometry": {
|
|
594
|
+
"type": "MultiPolygon",
|
|
595
|
+
"coordinates": [
|
|
596
596
|
[
|
|
597
597
|
[
|
|
598
598
|
[
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"layers": "krankenhaeuser",
|
|
23
23
|
"format": "image/png",
|
|
24
24
|
"version": "1.3.0",
|
|
25
|
-
"singleTile":
|
|
25
|
+
"singleTile": true,
|
|
26
26
|
"transparent": true,
|
|
27
27
|
"transparency": 0,
|
|
28
28
|
"urlIsVisible": true,
|
|
@@ -62,6 +62,43 @@
|
|
|
62
62
|
"maximumScreenSpaceError": 6
|
|
63
63
|
}
|
|
64
64
|
},
|
|
65
|
+
{
|
|
66
|
+
"id": "4003",
|
|
67
|
+
"name": "EntitiesLayer",
|
|
68
|
+
"typ": "Entities3D",
|
|
69
|
+
"entities": [
|
|
70
|
+
{
|
|
71
|
+
"url": "https://daten-hamburg.de/gdi3d/datasource-data/Simple_Building.glb",
|
|
72
|
+
"attributes": {
|
|
73
|
+
"name": "einfaches Haus in Planten und Blomen"
|
|
74
|
+
},
|
|
75
|
+
"latitude": 53.5631,
|
|
76
|
+
"longitude": 9.9800,
|
|
77
|
+
"height": 16,
|
|
78
|
+
"heading": 0,
|
|
79
|
+
"pitch": 0,
|
|
80
|
+
"roll": 0,
|
|
81
|
+
"scale": 5,
|
|
82
|
+
"allowPicking": true,
|
|
83
|
+
"show": true
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"url": "https://daten-hamburg.de/gdi3d/datasource-data/Simple_Building.glb",
|
|
87
|
+
"attributes": {
|
|
88
|
+
"name": "einfaches Haus im See"
|
|
89
|
+
},
|
|
90
|
+
"latitude": 53.5622,
|
|
91
|
+
"longitude": 9.9808,
|
|
92
|
+
"height": 16,
|
|
93
|
+
"heading": 0,
|
|
94
|
+
"pitch": 0,
|
|
95
|
+
"roll": 0,
|
|
96
|
+
"scale": 2,
|
|
97
|
+
"allowPicking": true,
|
|
98
|
+
"show": true
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
},
|
|
65
102
|
{
|
|
66
103
|
"id": "5001",
|
|
67
104
|
"name": "Schulen",
|
|
@@ -104,5 +141,157 @@
|
|
|
104
141
|
],
|
|
105
142
|
"tileSize": 256,
|
|
106
143
|
"zDirection": -1
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"id": "7001",
|
|
147
|
+
"name": "TopPlusOpen",
|
|
148
|
+
"capabilitiesUrl": "https://sgx.geodatenzentrum.de/wmts_topplus_open/1.0.0/WMTSCapabilities.xml",
|
|
149
|
+
"optionsFromCapabilities": true,
|
|
150
|
+
"typ": "WMTS",
|
|
151
|
+
"layers": "web"
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"id": "7002",
|
|
155
|
+
"name": "EOC Basemap",
|
|
156
|
+
"capabilitiesUrl": "https://tiles.geoservice.dlr.de/service/wmts?SERVICE=WMTS&REQUEST=GetCapabilities",
|
|
157
|
+
"typ": "WMTS",
|
|
158
|
+
"optionsFromCapabilities": true,
|
|
159
|
+
"layers": "eoc:basemap"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"id": "7003",
|
|
163
|
+
"name": "Geoland Basemap",
|
|
164
|
+
"urls": [
|
|
165
|
+
"https://maps1.wien.gv.at/basemap/geolandbasemap/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png",
|
|
166
|
+
"https://maps2.wien.gv.at/basemap/geolandbasemap/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png",
|
|
167
|
+
"https://maps3.wien.gv.at/basemap/geolandbasemap/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png",
|
|
168
|
+
"https://maps4.wien.gv.at/basemap/geolandbasemap/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png",
|
|
169
|
+
"https://maps.wien.gv.at/basemap/geolandbasemap/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png"
|
|
170
|
+
],
|
|
171
|
+
"typ": "WMTS",
|
|
172
|
+
"layer": "geolandbasemap",
|
|
173
|
+
"version": "1.0.0",
|
|
174
|
+
"format": "image/png",
|
|
175
|
+
"style": "normal",
|
|
176
|
+
"transparent": false,
|
|
177
|
+
"tileSize": "256",
|
|
178
|
+
"minScale": "0",
|
|
179
|
+
"maxScale": "2500000",
|
|
180
|
+
"tileMatrixSet": "google3857",
|
|
181
|
+
"matrixSizes": [
|
|
182
|
+
[
|
|
183
|
+
1,
|
|
184
|
+
1
|
|
185
|
+
],
|
|
186
|
+
[
|
|
187
|
+
2,
|
|
188
|
+
2
|
|
189
|
+
],
|
|
190
|
+
[
|
|
191
|
+
4,
|
|
192
|
+
4
|
|
193
|
+
],
|
|
194
|
+
[
|
|
195
|
+
8,
|
|
196
|
+
8
|
|
197
|
+
],
|
|
198
|
+
[
|
|
199
|
+
16,
|
|
200
|
+
16
|
|
201
|
+
],
|
|
202
|
+
[
|
|
203
|
+
32,
|
|
204
|
+
32
|
|
205
|
+
],
|
|
206
|
+
[
|
|
207
|
+
64,
|
|
208
|
+
64
|
|
209
|
+
],
|
|
210
|
+
[
|
|
211
|
+
128,
|
|
212
|
+
128
|
|
213
|
+
],
|
|
214
|
+
[
|
|
215
|
+
256,
|
|
216
|
+
256
|
|
217
|
+
],
|
|
218
|
+
[
|
|
219
|
+
512,
|
|
220
|
+
512
|
|
221
|
+
],
|
|
222
|
+
[
|
|
223
|
+
1024,
|
|
224
|
+
1024
|
|
225
|
+
],
|
|
226
|
+
[
|
|
227
|
+
2048,
|
|
228
|
+
2048
|
|
229
|
+
],
|
|
230
|
+
[
|
|
231
|
+
4096,
|
|
232
|
+
4096
|
|
233
|
+
],
|
|
234
|
+
[
|
|
235
|
+
8192,
|
|
236
|
+
8192
|
|
237
|
+
],
|
|
238
|
+
[
|
|
239
|
+
16384,
|
|
240
|
+
16384
|
|
241
|
+
],
|
|
242
|
+
[
|
|
243
|
+
32768,
|
|
244
|
+
32768
|
|
245
|
+
],
|
|
246
|
+
[
|
|
247
|
+
65536,
|
|
248
|
+
65536
|
|
249
|
+
],
|
|
250
|
+
[
|
|
251
|
+
131072,
|
|
252
|
+
131072
|
|
253
|
+
],
|
|
254
|
+
[
|
|
255
|
+
262144,
|
|
256
|
+
262144
|
|
257
|
+
],
|
|
258
|
+
[
|
|
259
|
+
524288,
|
|
260
|
+
524288
|
|
261
|
+
]
|
|
262
|
+
],
|
|
263
|
+
"coordinateSystem": "EPSG:3857",
|
|
264
|
+
"layerAttribution": "nicht vorhanden",
|
|
265
|
+
"legend": false,
|
|
266
|
+
"cache": true,
|
|
267
|
+
"wrapX": true,
|
|
268
|
+
"origin": [
|
|
269
|
+
-20037508.3428,
|
|
270
|
+
20037508.3428
|
|
271
|
+
],
|
|
272
|
+
"scales": [
|
|
273
|
+
559082264.029,
|
|
274
|
+
279541132.015,
|
|
275
|
+
139770566.007,
|
|
276
|
+
69885283.0036,
|
|
277
|
+
34942641.5018,
|
|
278
|
+
17471320.7509,
|
|
279
|
+
8735660.37545,
|
|
280
|
+
4367830.18773,
|
|
281
|
+
2183915.09386,
|
|
282
|
+
1091957.54693,
|
|
283
|
+
45978.773466,
|
|
284
|
+
272989.386733,
|
|
285
|
+
136494.693366,
|
|
286
|
+
68247.3466832,
|
|
287
|
+
34123.6733416,
|
|
288
|
+
17061.8366708,
|
|
289
|
+
8530.91833540,
|
|
290
|
+
4265.45916770,
|
|
291
|
+
2132.72958385,
|
|
292
|
+
1066.36479193
|
|
293
|
+
],
|
|
294
|
+
"resLength": "20",
|
|
295
|
+
"requestEncoding": "REST"
|
|
107
296
|
}
|
|
108
297
|
]
|
package/example/index.js
CHANGED
|
@@ -17,6 +17,20 @@ window.mpapi = {
|
|
|
17
17
|
map2D: null,
|
|
18
18
|
map: null
|
|
19
19
|
};
|
|
20
|
+
//* Fake service that holds client-side prepared geojson; also nice to test automatic transformation since data is in WGS 84
|
|
21
|
+
// eslint-disable-next-line no-unused-vars
|
|
22
|
+
const hamburgServicesUrl = "https://geodienste.hamburg.de/services-internet.json",
|
|
23
|
+
localService = {
|
|
24
|
+
id: "2002",
|
|
25
|
+
typ: "GeoJSON",
|
|
26
|
+
features: localGeoJSON
|
|
27
|
+
},
|
|
28
|
+
config = {
|
|
29
|
+
...portalConfig,
|
|
30
|
+
layerConf: services
|
|
31
|
+
};
|
|
32
|
+
let map2D = null;
|
|
33
|
+
|
|
20
34
|
// */
|
|
21
35
|
//* Cleans up map before it is re-rendered (happens on every save during dev mode)
|
|
22
36
|
document.getElementById(portalConfig.target).innerHTML = "";
|
|
@@ -29,50 +43,46 @@ document.getElementById("enable").addEventListener("click", function () {
|
|
|
29
43
|
if (window.mpapi.map.mapMode === "3D") {
|
|
30
44
|
window.mpapi.map.setEnabled(false);
|
|
31
45
|
window.mpapi.map = window.mpapi.map2D;
|
|
46
|
+
window.mpapi.map.getView().setRotation(0);
|
|
32
47
|
document.getElementById("layer-visibility").style.display = "none";
|
|
33
|
-
["1001", "2001", "2002", "1002", "3001", "5001"].forEach(id => window.mpapi.map.addLayer(id));
|
|
34
48
|
}
|
|
35
49
|
else {
|
|
36
|
-
const lib = portalConfig.cesiumLib ? portalConfig.cesiumLib : "https://geoportal-hamburg.de/mastercode/cesium/
|
|
50
|
+
const lib = portalConfig.cesiumLib ? portalConfig.cesiumLib : "https://geoportal-hamburg.de/mastercode/cesium/1_95/index.js";
|
|
37
51
|
|
|
38
52
|
document.getElementById("layer-visibility").style.display = "block";
|
|
39
53
|
|
|
40
54
|
load3DScript(lib, function Loaded3DCallback () {
|
|
41
|
-
let
|
|
42
|
-
const toRemove = ["2001", "2002", "1002", "3001", "5001"];
|
|
43
|
-
|
|
44
|
-
layers2D.forEach(layer => {
|
|
45
|
-
const layerId = layer?.id || layer?.values_?.id;
|
|
46
|
-
if(toRemove.find(id => id === layerId)){
|
|
47
|
-
map2D.removeLayer(layer);
|
|
48
|
-
}
|
|
49
|
-
});
|
|
55
|
+
let tilesetLayer = null;
|
|
50
56
|
|
|
51
57
|
const settings3D = {
|
|
52
|
-
|
|
58
|
+
map2D: window.mpapi.map2D,
|
|
59
|
+
// set some options to Cesium scene
|
|
60
|
+
cesiumParameter: {
|
|
61
|
+
fxaa: true,
|
|
62
|
+
globe: {
|
|
63
|
+
enableLighting: true,
|
|
64
|
+
maximumScreenSpaceError: 2,
|
|
65
|
+
tileCacheSize: 20
|
|
66
|
+
}
|
|
67
|
+
}
|
|
53
68
|
},
|
|
54
69
|
map3D = mapsAPI.map.createMap(settings3D, "3D"),
|
|
55
70
|
rawLayerTerrain = getLayerWhere({id: "4001"}),
|
|
56
71
|
rawLayerTileset = getLayerWhere({id: "4002"}),
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
//set some options to Cesium scene
|
|
60
|
-
scene.globe.enableLighting = true;
|
|
61
|
-
scene.globe.tileCacheSize = 20;
|
|
62
|
-
scene.globe.maximumScreenSpaceError =2;
|
|
63
|
-
scene.fxaa = true;
|
|
64
|
-
scene.highDynamicRange = false;
|
|
65
|
-
scene.pickTranslucentDepth = true;
|
|
72
|
+
rawLayerEntities = getLayerWhere({id: "4003"});
|
|
66
73
|
|
|
67
74
|
window.mpapi.map = map3D;
|
|
68
75
|
tilesetLayer = new mpapi.Tileset(rawLayerTileset, window.mpapi.map);
|
|
69
76
|
tilesetLayer.setVisible(true, window.mpapi.map);
|
|
70
77
|
|
|
71
|
-
|
|
78
|
+
// entities are 2 simple buildings in the park 'planten und blomen' near Tiergartenstraße
|
|
79
|
+
mpapi.entities.createLayer(rawLayerEntities, window.mpapi.map);
|
|
80
|
+
// mpapi.entities.setVisible(true, rawLayerEntities, window.mpapi.map);
|
|
72
81
|
|
|
73
|
-
|
|
74
|
-
|
|
82
|
+
mpapi.terrain.createLayer(rawLayerTerrain, window.mpapi.map);
|
|
83
|
+
mpapi.terrain.setVisible(true, rawLayerTerrain, window.mpapi.map);
|
|
75
84
|
|
|
85
|
+
window.mpapi.map.setEnabled(true);
|
|
76
86
|
});
|
|
77
87
|
}
|
|
78
88
|
});
|
|
@@ -84,21 +94,7 @@ document.getElementById("layer-visibility").addEventListener("click", function (
|
|
|
84
94
|
});
|
|
85
95
|
});
|
|
86
96
|
|
|
87
|
-
|
|
88
|
-
// eslint-disable-next-line no-unused-vars
|
|
89
|
-
const hamburgServicesUrl = "http://geoportal-hamburg.de/lgv-config/services-internet.json",
|
|
90
|
-
localService = {
|
|
91
|
-
id: "2002",
|
|
92
|
-
typ: "GeoJSON",
|
|
93
|
-
features: localGeoJSON
|
|
94
|
-
},
|
|
95
|
-
config = {
|
|
96
|
-
...portalConfig,
|
|
97
|
-
layerConf: services
|
|
98
|
-
},
|
|
99
|
-
map2D = mapsAPI.map.createMap(config, "2D"),
|
|
100
|
-
layers2D = [];
|
|
101
|
-
|
|
97
|
+
map2D = mapsAPI.map.createMap(config, "2D");
|
|
102
98
|
services.push(localService);
|
|
103
99
|
// */
|
|
104
100
|
|
|
@@ -119,6 +115,7 @@ mpapi.geojson.setCustomStyles({
|
|
|
119
115
|
const styleWfs = function (feature, resolution) {
|
|
120
116
|
const icon = new Style({
|
|
121
117
|
image: new Icon({
|
|
118
|
+
crossOrigin: "anonymous",
|
|
122
119
|
src: "https://img.icons8.com/windows/50/000000/building.png",
|
|
123
120
|
scale: 0.5,
|
|
124
121
|
opacity: 1
|
|
@@ -136,6 +133,7 @@ services.find(({id}) => id === "3001").style = styleWfs;
|
|
|
136
133
|
const styleOaf = function (feature, resolution) {
|
|
137
134
|
const icon = new Style({
|
|
138
135
|
image: new Icon({
|
|
136
|
+
crossOrigin: "anonymous",
|
|
139
137
|
src: "https://geodienste.hamburg.de/lgv-config/img/gymnasien.svg",
|
|
140
138
|
scale: 0.5,
|
|
141
139
|
opacity: 1
|
|
@@ -151,61 +149,50 @@ services.find(({id}) => id === "5001").style = styleOaf;
|
|
|
151
149
|
window.mpapi.map = map2D;
|
|
152
150
|
|
|
153
151
|
["2001", "2002", "1002", "3001", "5001"].forEach(id => window.mpapi.map.addLayer(id));
|
|
154
|
-
map2D.getLayers().forEach(layer => {
|
|
155
|
-
layers2D.push(layer);
|
|
156
|
-
});
|
|
157
152
|
|
|
158
153
|
// */
|
|
159
154
|
|
|
160
155
|
/* ASYNCHRONOUS EXAMPLE 1: work with layerConf callback
|
|
161
156
|
document.getElementById("enable").style.display = "none";
|
|
162
|
-
mpapi.rawLayerList.initializeLayerList(
|
|
163
|
-
hamburgServicesUrl,
|
|
157
|
+
mpapi.rawLayerList.initializeLayerList(hamburgServicesUrl,
|
|
164
158
|
conf => {
|
|
165
159
|
window.mpapi.map = mapsAPI.map.createMap({
|
|
166
160
|
...portalConfig,
|
|
167
161
|
layerConf: conf,
|
|
168
162
|
layers: null
|
|
169
163
|
}, "2D");
|
|
170
|
-
["6357", "6074"].forEach(
|
|
171
|
-
|
|
172
|
-
);
|
|
173
|
-
}
|
|
174
|
-
);
|
|
164
|
+
["6357", "6074"].forEach(id => window.mpapi.map.addLayer(id));
|
|
165
|
+
});
|
|
175
166
|
//*/
|
|
176
167
|
|
|
177
168
|
/* ASYNCHRONOUS EXAMPLE 2: work with createMap callback
|
|
178
169
|
document.getElementById("enable").style.display = "none";
|
|
179
|
-
window.mpapi.map = mapsAPI.map.createMap(
|
|
180
|
-
|
|
181
|
-
{
|
|
182
|
-
{
|
|
170
|
+
window.mpapi.map = mapsAPI.map.createMap({
|
|
171
|
+
...portalConfig, layerConf: hamburgServicesUrl, layers: [
|
|
172
|
+
{id: "6357"},
|
|
173
|
+
{id: "453", transparency: 50}
|
|
183
174
|
]}, "2D",
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
id => window.mpapi.map.addLayer(id)
|
|
188
|
-
)
|
|
189
|
-
}
|
|
190
|
-
);
|
|
175
|
+
{
|
|
176
|
+
callback: () => ["6074"].forEach(id => window.mpapi.map.addLayer(id))
|
|
177
|
+
});
|
|
191
178
|
//*/
|
|
192
179
|
|
|
193
180
|
/* SEARCH FUNCTION EXAMPLE
|
|
194
181
|
// You may e.g. copy this code to the browser's console to run a search.
|
|
195
182
|
|
|
196
|
-
window.mpapi.search("Eiffe",
|
|
183
|
+
window.mpapi.search("Eiffe", {
|
|
197
184
|
map: window.mpapi.map,
|
|
198
185
|
zoom: true,
|
|
199
186
|
zoomToParams: {duration: 1000, maxZoom: 8},
|
|
200
187
|
searchStreets: true
|
|
201
|
-
}).then(x => console.log(x)).catch(e => console.error(e))
|
|
188
|
+
}).then(x => console.log(x)).catch(e => console.error(e));
|
|
202
189
|
|
|
203
|
-
window.mpapi.search("Mümmelmannsberg 72",
|
|
190
|
+
window.mpapi.search("Mümmelmannsberg 72", {
|
|
204
191
|
map: window.mpapi.map,
|
|
205
192
|
zoom: true,
|
|
206
193
|
zoomToParams: {duration: 1000, maxZoom: 8},
|
|
207
194
|
searchAddress: true
|
|
208
|
-
}).then(x => console.log(x)).catch(e => console.error(e))
|
|
195
|
+
}).then(x => console.log(x)).catch(e => console.error(e));
|
|
209
196
|
|
|
210
197
|
//*/
|
|
211
198
|
|
|
@@ -216,12 +203,23 @@ map2D.getLayers().forEach(layer => {
|
|
|
216
203
|
map2D.removeLayer(layer);
|
|
217
204
|
});
|
|
218
205
|
|
|
219
|
-
|
|
206
|
+
const vtStyleUrl = "https://dev.adv-smart.de/styles/playground/masterportal_test1.json";
|
|
220
207
|
|
|
221
208
|
fetch(vtStyleUrl)
|
|
222
209
|
.then(response => response.json())
|
|
223
210
|
.then(style => {
|
|
224
|
-
|
|
211
|
+
const vtLayer = window.mpapi.map.addLayer("6001");
|
|
212
|
+
|
|
225
213
|
mpapi.vectorTile.setStyle(vtLayer, style);
|
|
226
214
|
});
|
|
227
|
-
|
|
215
|
+
//*/
|
|
216
|
+
|
|
217
|
+
/* WMTS example */
|
|
218
|
+
/*
|
|
219
|
+
map2D.getLayers().forEach(layer => {
|
|
220
|
+
map2D.removeLayer(layer);
|
|
221
|
+
});
|
|
222
|
+
window.mpapi.map.addLayer("7001");
|
|
223
|
+
window.mpapi.map.addLayer("7002");
|
|
224
|
+
window.mpapi.map.addLayer("7003");
|
|
225
|
+
// */
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@masterportal/masterportalapi",
|
|
3
3
|
"author": "Implementierungspartnerschaft Masterportal <info@masterportal.org> (https://www.masterportal.org)",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.5.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Basic functions of the Masterportal as api",
|
|
7
7
|
"repository": {
|
|
@@ -19,33 +19,33 @@
|
|
|
19
19
|
"prepare": "husky install"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"core-js": "^3.
|
|
23
|
-
"ol": "6.
|
|
22
|
+
"core-js": "^3.24.0",
|
|
23
|
+
"ol": "6.15.1",
|
|
24
24
|
"olcs": "^2.13.0",
|
|
25
|
-
"proj4": "^2.
|
|
25
|
+
"proj4": "^2.8.0",
|
|
26
26
|
"xml2js": "^0.4.23"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@babel/core": "^7.
|
|
30
|
-
"@babel/plugin-transform-modules-commonjs": "^7.
|
|
31
|
-
"@parcel/transformer-sass": "^2.2
|
|
29
|
+
"@babel/core": "^7.18.9",
|
|
30
|
+
"@babel/plugin-transform-modules-commonjs": "^7.18.6",
|
|
31
|
+
"@parcel/transformer-sass": "^2.6.2",
|
|
32
32
|
"buffer": "^6.0.3",
|
|
33
|
-
"canvas": "^2.
|
|
34
|
-
"eslint": "^
|
|
33
|
+
"canvas": "^2.9.3",
|
|
34
|
+
"eslint": "^8.20.0",
|
|
35
35
|
"events": "^3.3.0",
|
|
36
|
-
"husky": "^
|
|
37
|
-
"jest": "^
|
|
38
|
-
"jest-canvas-mock": "^2.
|
|
39
|
-
"
|
|
40
|
-
"
|
|
36
|
+
"husky": "^8.0.1",
|
|
37
|
+
"jest": "^28.1.3",
|
|
38
|
+
"jest-canvas-mock": "^2.4.0",
|
|
39
|
+
"jest-environment-jsdom": "^28.1.3",
|
|
40
|
+
"jsdoc": "^3.6.11",
|
|
41
|
+
"parcel": "^2.6.2",
|
|
41
42
|
"process": "^0.11.10",
|
|
42
|
-
"
|
|
43
|
-
"sass": "^1.37.5",
|
|
43
|
+
"sass": "^1.54.0",
|
|
44
44
|
"stream-browserify": "^3.0.0",
|
|
45
45
|
"timers-browserify": "^2.0.12"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
|
-
"cesium": "^1.
|
|
48
|
+
"cesium": "^1.95.0"
|
|
49
49
|
},
|
|
50
50
|
"engines": {
|
|
51
51
|
"node": "^16.13.2",
|
|
@@ -53,6 +53,7 @@
|
|
|
53
53
|
},
|
|
54
54
|
"homepage": "https://bitbucket.org/geowerkstatt-hamburg/masterportalapi#readme",
|
|
55
55
|
"directories": {
|
|
56
|
+
"doc": "docs",
|
|
56
57
|
"example": "example",
|
|
57
58
|
"test": "test"
|
|
58
59
|
},
|