@artstesh/maps 4.0.2 → 5.0.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/dist/esm2022/map/common/destructible.component.mjs +18 -0
- package/dist/esm2022/map/common/id.generator.mjs +14 -0
- package/dist/esm2022/map/map-plate/features/markers/markers.component.mjs +42 -0
- package/dist/esm2022/map/map-plate/layers/feature-layer/feature-layer.component.mjs +52 -0
- package/dist/{esm2020 → esm2022}/map/map-plate/layers/feature-layer/feature-layer.factory.mjs +4 -4
- package/dist/{esm2020 → esm2022}/map/map-plate/layers/feature-layer/feature-layer.settings.mjs +6 -7
- package/dist/esm2022/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.mjs +57 -0
- package/dist/esm2022/map/map-plate/layers/tile-layer/tile-layer.component.mjs +17 -0
- package/dist/esm2022/map/map-plate/layers/tile-layer/tile-layer.settings.mjs +39 -0
- package/dist/esm2022/map/map-plate/map-plate.component.mjs +64 -0
- package/dist/{esm2020 → esm2022}/map/map-plate/map-plate.factory.service.mjs +4 -4
- package/dist/esm2022/map/map.module.mjs +35 -0
- package/dist/esm2022/map/messages/commands/add-layer.command.mjs +13 -0
- package/dist/esm2022/map/messages/commands/clear-layer.command.mjs +13 -0
- package/dist/esm2022/map/messages/commands/place-layer-features.command.mjs +15 -0
- package/dist/esm2022/map/messages/commands/remove-layer.command.mjs +13 -0
- package/dist/esm2022/map/messages/events/map-rendered.event.mjs +13 -0
- package/dist/esm2022/map/messages/generic-message.mjs +12 -0
- package/dist/esm2022/map/models/map-lyrs.enum.mjs +19 -0
- package/dist/esm2022/map/models/map-settings.mjs +51 -0
- package/dist/esm2022/map/models/marker-model.mjs +31 -0
- package/dist/esm2022/map/services/map-management.service.mjs +61 -0
- package/dist/esm2022/map/services/map-postboy.service.mjs +24 -0
- package/dist/esm2022/map/services/map-state.service.mjs +18 -0
- package/dist/esm2022/map/services/message-registrator.service.mjs +24 -0
- package/dist/{esm2020 → esm2022}/map/services/service.collector.mjs +4 -4
- package/dist/esm2022/src/map/common/destructible.component.mjs +18 -0
- package/dist/esm2022/src/map/common/id.generator.mjs +14 -0
- package/dist/esm2022/src/map/map-plate/features/markers/markers.component.mjs +42 -0
- package/dist/esm2022/src/map/map-plate/layers/feature-layer/feature-layer.component.mjs +52 -0
- package/dist/{esm2020 → esm2022}/src/map/map-plate/layers/feature-layer/feature-layer.factory.mjs +4 -4
- package/dist/{esm2020 → esm2022}/src/map/map-plate/layers/feature-layer/feature-layer.settings.mjs +6 -7
- package/dist/esm2022/src/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.mjs +57 -0
- package/dist/esm2022/src/map/map-plate/layers/tile-layer/tile-layer.component.mjs +17 -0
- package/dist/esm2022/src/map/map-plate/layers/tile-layer/tile-layer.settings.mjs +39 -0
- package/dist/esm2022/src/map/map-plate/map-plate.component.mjs +64 -0
- package/dist/{esm2020 → esm2022}/src/map/map-plate/map-plate.factory.service.mjs +4 -4
- package/dist/esm2022/src/map/map.module.mjs +35 -0
- package/dist/esm2022/src/map/messages/commands/add-layer.command.mjs +13 -0
- package/dist/esm2022/src/map/messages/commands/clear-layer.command.mjs +13 -0
- package/dist/esm2022/src/map/messages/commands/place-layer-features.command.mjs +15 -0
- package/dist/esm2022/src/map/messages/commands/remove-layer.command.mjs +13 -0
- package/dist/esm2022/src/map/messages/events/map-rendered.event.mjs +13 -0
- package/dist/esm2022/src/map/messages/generic-message.mjs +12 -0
- package/dist/esm2022/src/map/models/map-lyrs.enum.mjs +19 -0
- package/dist/esm2022/src/map/models/map-settings.mjs +51 -0
- package/dist/esm2022/src/map/models/marker-model.mjs +31 -0
- package/dist/esm2022/src/map/services/map-management.service.mjs +61 -0
- package/dist/esm2022/src/map/services/map-postboy.service.mjs +24 -0
- package/dist/esm2022/src/map/services/map-state.service.mjs +18 -0
- package/dist/esm2022/src/map/services/message-registrator.service.mjs +24 -0
- package/dist/{esm2020 → esm2022}/src/map/services/service.collector.mjs +4 -4
- package/dist/{fesm2020 → fesm2022}/maps-components-src-map.mjs +172 -256
- package/dist/fesm2022/maps-components-src-map.mjs.map +1 -0
- package/dist/{fesm2020 → fesm2022}/maps-components.mjs +172 -256
- package/dist/fesm2022/maps-components.mjs.map +1 -0
- package/dist/map/map-plate/features/markers/markers.component.d.ts +1 -1
- package/dist/map/map-plate/layers/feature-layer/feature-layer.component.d.ts +1 -1
- package/dist/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.d.ts +1 -1
- package/dist/map/map-plate/layers/tile-layer/tile-layer.component.d.ts +5 -14
- package/dist/map/map-plate/layers/tile-layer/tile-layer.settings.d.ts +2 -3
- package/dist/map/map-plate/map-plate.component.d.ts +1 -1
- package/dist/map/map.module.d.ts +1 -1
- package/dist/map/messages/commands/clear-layer.command.d.ts +7 -0
- package/dist/map/services/map-management.service.d.ts +1 -2
- package/dist/package.json +9 -17
- package/dist/src/map/map-plate/features/markers/markers.component.d.ts +1 -1
- package/dist/src/map/map-plate/layers/feature-layer/feature-layer.component.d.ts +1 -1
- package/dist/src/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.d.ts +1 -1
- package/dist/src/map/map-plate/layers/tile-layer/tile-layer.component.d.ts +5 -14
- package/dist/src/map/map-plate/layers/tile-layer/tile-layer.settings.d.ts +2 -3
- package/dist/src/map/map-plate/map-plate.component.d.ts +1 -1
- package/dist/src/map/map.module.d.ts +1 -1
- package/dist/src/map/messages/commands/clear-layer.command.d.ts +7 -0
- package/dist/src/map/services/map-management.service.d.ts +1 -2
- package/package.json +22 -26
- package/dist/esm2020/map/common/destructible.component.mjs +0 -19
- package/dist/esm2020/map/common/id.generator.mjs +0 -14
- package/dist/esm2020/map/map-plate/features/markers/markers.component.mjs +0 -41
- package/dist/esm2020/map/map-plate/layers/feature-layer/feature-layer.component.mjs +0 -50
- package/dist/esm2020/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.mjs +0 -55
- package/dist/esm2020/map/map-plate/layers/tile-layer/tile-layer.component.mjs +0 -49
- package/dist/esm2020/map/map-plate/layers/tile-layer/tile-layer.factory.mjs +0 -50
- package/dist/esm2020/map/map-plate/layers/tile-layer/tile-layer.settings.mjs +0 -47
- package/dist/esm2020/map/map-plate/map-plate.component.mjs +0 -59
- package/dist/esm2020/map/map.module.mjs +0 -35
- package/dist/esm2020/map/messages/commands/add-layer.command.mjs +0 -12
- package/dist/esm2020/map/messages/commands/add-tile.command.mjs +0 -12
- package/dist/esm2020/map/messages/commands/place-layer-features.command.mjs +0 -13
- package/dist/esm2020/map/messages/commands/remove-layer.command.mjs +0 -12
- package/dist/esm2020/map/messages/commands/remove-tile.command.mjs +0 -12
- package/dist/esm2020/map/messages/events/map-rendered.event.mjs +0 -12
- package/dist/esm2020/map/messages/generic-message.mjs +0 -15
- package/dist/esm2020/map/models/map-lyrs.enum.mjs +0 -19
- package/dist/esm2020/map/models/map-settings.mjs +0 -53
- package/dist/esm2020/map/models/marker-model.mjs +0 -26
- package/dist/esm2020/map/services/map-management.service.mjs +0 -70
- package/dist/esm2020/map/services/map-postboy.service.mjs +0 -26
- package/dist/esm2020/map/services/map-state.service.mjs +0 -16
- package/dist/esm2020/map/services/message-registrator.service.mjs +0 -26
- package/dist/esm2020/src/map/common/destructible.component.mjs +0 -19
- package/dist/esm2020/src/map/common/id.generator.mjs +0 -14
- package/dist/esm2020/src/map/map-plate/features/markers/markers.component.mjs +0 -41
- package/dist/esm2020/src/map/map-plate/layers/feature-layer/feature-layer.component.mjs +0 -50
- package/dist/esm2020/src/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.mjs +0 -55
- package/dist/esm2020/src/map/map-plate/layers/tile-layer/tile-layer.component.mjs +0 -49
- package/dist/esm2020/src/map/map-plate/layers/tile-layer/tile-layer.factory.mjs +0 -50
- package/dist/esm2020/src/map/map-plate/layers/tile-layer/tile-layer.settings.mjs +0 -47
- package/dist/esm2020/src/map/map-plate/map-plate.component.mjs +0 -59
- package/dist/esm2020/src/map/map.module.mjs +0 -35
- package/dist/esm2020/src/map/messages/commands/add-layer.command.mjs +0 -12
- package/dist/esm2020/src/map/messages/commands/add-tile.command.mjs +0 -12
- package/dist/esm2020/src/map/messages/commands/place-layer-features.command.mjs +0 -13
- package/dist/esm2020/src/map/messages/commands/remove-layer.command.mjs +0 -12
- package/dist/esm2020/src/map/messages/commands/remove-tile.command.mjs +0 -12
- package/dist/esm2020/src/map/messages/events/map-rendered.event.mjs +0 -12
- package/dist/esm2020/src/map/messages/generic-message.mjs +0 -15
- package/dist/esm2020/src/map/models/map-lyrs.enum.mjs +0 -19
- package/dist/esm2020/src/map/models/map-settings.mjs +0 -53
- package/dist/esm2020/src/map/models/marker-model.mjs +0 -26
- package/dist/esm2020/src/map/services/map-management.service.mjs +0 -70
- package/dist/esm2020/src/map/services/map-postboy.service.mjs +0 -26
- package/dist/esm2020/src/map/services/map-state.service.mjs +0 -16
- package/dist/esm2020/src/map/services/message-registrator.service.mjs +0 -26
- package/dist/fesm2015/maps-components-src-map.mjs +0 -800
- package/dist/fesm2015/maps-components-src-map.mjs.map +0 -1
- package/dist/fesm2015/maps-components.mjs +0 -804
- package/dist/fesm2015/maps-components.mjs.map +0 -1
- package/dist/fesm2020/maps-components-src-map.mjs.map +0 -1
- package/dist/fesm2020/maps-components.mjs.map +0 -1
- package/dist/map/map-plate/layers/tile-layer/tile-layer.factory.d.ts +0 -11
- package/dist/map/messages/commands/add-tile.command.d.ts +0 -9
- package/dist/map/messages/commands/remove-tile.command.d.ts +0 -9
- package/dist/src/map/map-plate/layers/tile-layer/tile-layer.factory.d.ts +0 -11
- package/dist/src/map/messages/commands/add-tile.command.d.ts +0 -9
- package/dist/src/map/messages/commands/remove-tile.command.d.ts +0 -9
- /package/dist/{esm2020 → esm2022}/map/helpers/index.mjs +0 -0
- /package/dist/{esm2020 → esm2022}/map/helpers/marker-style.helper.mjs +0 -0
- /package/dist/{esm2020 → esm2022}/map/map-plate/features/index.mjs +0 -0
- /package/dist/{esm2020 → esm2022}/map/map-plate/layers/index.mjs +0 -0
- /package/dist/{esm2020 → esm2022}/map/messages/index.mjs +0 -0
- /package/dist/{esm2020 → esm2022}/map/models/index.mjs +0 -0
- /package/dist/{esm2020 → esm2022}/map/public-api.mjs +0 -0
- /package/dist/{esm2020 → esm2022}/maps-components.mjs +0 -0
- /package/dist/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/dist/{esm2020 → esm2022}/src/map/helpers/index.mjs +0 -0
- /package/dist/{esm2020 → esm2022}/src/map/helpers/marker-style.helper.mjs +0 -0
- /package/dist/{esm2020 → esm2022}/src/map/map-plate/features/index.mjs +0 -0
- /package/dist/{esm2020 → esm2022}/src/map/map-plate/layers/index.mjs +0 -0
- /package/dist/{esm2020 → esm2022}/src/map/maps-components-src-map.mjs +0 -0
- /package/dist/{esm2020 → esm2022}/src/map/messages/index.mjs +0 -0
- /package/dist/{esm2020 → esm2022}/src/map/models/index.mjs +0 -0
- /package/dist/{esm2020 → esm2022}/src/map/public-api.mjs +0 -0
|
@@ -4,31 +4,30 @@ import * as i4 from '@angular/common';
|
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import { Feature } from 'ol';
|
|
6
6
|
import { Point } from 'ol/geom';
|
|
7
|
-
import { useGeographic
|
|
7
|
+
import { useGeographic } from 'ol/proj';
|
|
8
8
|
import { Subject, ReplaySubject } from 'rxjs';
|
|
9
9
|
import Map from 'ol/Map';
|
|
10
10
|
import View from 'ol/View';
|
|
11
11
|
import TileLayer from 'ol/layer/Tile';
|
|
12
12
|
import OSM from 'ol/source/OSM';
|
|
13
13
|
import { filter, first } from 'rxjs/operators';
|
|
14
|
-
import {
|
|
14
|
+
import { Vector } from 'ol/source';
|
|
15
15
|
import { Vector as Vector$1 } from 'ol/layer';
|
|
16
16
|
import Style from 'ol/style/Style';
|
|
17
17
|
import { Icon, Circle, Fill, Stroke } from 'ol/style';
|
|
18
18
|
|
|
19
19
|
class DestructibleComponent {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
20
|
+
subs = [];
|
|
21
|
+
onDestroy;
|
|
23
22
|
ngOnDestroy() {
|
|
24
23
|
this.subs.forEach((s) => s.unsubscribe());
|
|
25
24
|
if (this.onDestroy)
|
|
26
25
|
this.onDestroy();
|
|
27
26
|
}
|
|
27
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DestructibleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
28
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DestructibleComponent, selector: "ng-component", ngImport: i0, template: '', isInline: true });
|
|
28
29
|
}
|
|
29
|
-
|
|
30
|
-
DestructibleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DestructibleComponent, selector: "ng-component", ngImport: i0, template: '', isInline: true });
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DestructibleComponent, decorators: [{
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DestructibleComponent, decorators: [{
|
|
32
31
|
type: Component,
|
|
33
32
|
args: [{ template: '' }]
|
|
34
33
|
}] });
|
|
@@ -41,26 +40,24 @@ var MapLyrs;
|
|
|
41
40
|
MapLyrs[MapLyrs["Terrain"] = 4] = "Terrain";
|
|
42
41
|
})(MapLyrs || (MapLyrs = {}));
|
|
43
42
|
class MapLyrsLabel {
|
|
43
|
+
static lyrs = {
|
|
44
|
+
[MapLyrs.Hybrid]: 's,h',
|
|
45
|
+
[MapLyrs.Satellite]: 's',
|
|
46
|
+
[MapLyrs.Streets]: 'm',
|
|
47
|
+
[MapLyrs.Terrain]: 'p',
|
|
48
|
+
};
|
|
44
49
|
static get(lyrs) {
|
|
45
50
|
return MapLyrsLabel.lyrs[lyrs];
|
|
46
51
|
}
|
|
47
|
-
}
|
|
48
|
-
MapLyrsLabel.lyrs = {
|
|
49
|
-
[MapLyrs.Hybrid]: 's,h',
|
|
50
|
-
[MapLyrs.Satellite]: 's',
|
|
51
|
-
[MapLyrs.Streets]: 'm',
|
|
52
|
-
[MapLyrs.Terrain]: 'p',
|
|
53
|
-
};
|
|
52
|
+
}
|
|
54
53
|
|
|
55
54
|
class MapSettings {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
this.language = 'en';
|
|
63
|
-
}
|
|
55
|
+
center = [0, 0];
|
|
56
|
+
maxZoom = 19;
|
|
57
|
+
minZoom = 0;
|
|
58
|
+
zoom = 4;
|
|
59
|
+
lyrs = MapLyrs.Hybrid;
|
|
60
|
+
language = 'en';
|
|
64
61
|
static copy(model) {
|
|
65
62
|
const result = new MapSettings();
|
|
66
63
|
result.center = model.center;
|
|
@@ -105,6 +102,7 @@ class MapSettings {
|
|
|
105
102
|
}
|
|
106
103
|
|
|
107
104
|
class IdGenerator {
|
|
105
|
+
static collection = 'ABCDEFGHIJKLMNOPQRSTUVWXTZ0123456789'.split('');
|
|
108
106
|
static get() {
|
|
109
107
|
let result = [];
|
|
110
108
|
for (let i = 0; i < 7; i++) {
|
|
@@ -115,10 +113,13 @@ class IdGenerator {
|
|
|
115
113
|
}
|
|
116
114
|
return result.join('-');
|
|
117
115
|
}
|
|
118
|
-
}
|
|
119
|
-
IdGenerator.collection = 'ABCDEFGHIJKLMNOPQRSTUVWXTZ0123456789'.split('');
|
|
116
|
+
}
|
|
120
117
|
|
|
121
118
|
class MarkerModel {
|
|
119
|
+
lat;
|
|
120
|
+
lng;
|
|
121
|
+
id;
|
|
122
|
+
info;
|
|
122
123
|
constructor(lat, lng, id, info) {
|
|
123
124
|
this.lat = lat;
|
|
124
125
|
this.lng = lng;
|
|
@@ -128,6 +129,7 @@ class MarkerModel {
|
|
|
128
129
|
this.id = IdGenerator.get();
|
|
129
130
|
this._feature = this.getFeature();
|
|
130
131
|
}
|
|
132
|
+
_feature;
|
|
131
133
|
get feature() {
|
|
132
134
|
return this._feature;
|
|
133
135
|
}
|
|
@@ -144,11 +146,8 @@ class MarkerModel {
|
|
|
144
146
|
class GenericMessage {
|
|
145
147
|
}
|
|
146
148
|
class CallbackMessage extends GenericMessage {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
this.result$ = new Subject();
|
|
150
|
-
this.result = this.result$.asObservable();
|
|
151
|
-
}
|
|
149
|
+
result$ = new Subject();
|
|
150
|
+
result = this.result$.asObservable();
|
|
152
151
|
finish(value) {
|
|
153
152
|
this.result$.next(value);
|
|
154
153
|
this.result$.complete();
|
|
@@ -156,6 +155,8 @@ class CallbackMessage extends GenericMessage {
|
|
|
156
155
|
}
|
|
157
156
|
|
|
158
157
|
class MapRenderedEvent extends GenericMessage {
|
|
158
|
+
map;
|
|
159
|
+
static ID = 'b6121807-3b89-4cd3-82cf-089d2cefdc4f';
|
|
159
160
|
constructor(map) {
|
|
160
161
|
super();
|
|
161
162
|
this.map = map;
|
|
@@ -163,10 +164,11 @@ class MapRenderedEvent extends GenericMessage {
|
|
|
163
164
|
get id() {
|
|
164
165
|
return MapRenderedEvent.ID;
|
|
165
166
|
}
|
|
166
|
-
}
|
|
167
|
-
MapRenderedEvent.ID = 'b6121807-3b89-4cd3-82cf-089d2cefdc4f';
|
|
167
|
+
}
|
|
168
168
|
|
|
169
169
|
class AddLayerCommand extends GenericMessage {
|
|
170
|
+
layer;
|
|
171
|
+
static ID = 'd93e250f-92bc-43ac-9c6a-46c521a1aaa5';
|
|
170
172
|
constructor(layer) {
|
|
171
173
|
super();
|
|
172
174
|
this.layer = layer;
|
|
@@ -174,10 +176,12 @@ class AddLayerCommand extends GenericMessage {
|
|
|
174
176
|
get id() {
|
|
175
177
|
return AddLayerCommand.ID;
|
|
176
178
|
}
|
|
177
|
-
}
|
|
178
|
-
AddLayerCommand.ID = 'd93e250f-92bc-43ac-9c6a-46c521a1aaa5';
|
|
179
|
+
}
|
|
179
180
|
|
|
180
181
|
class PlaceLayerFeaturesCommand extends GenericMessage {
|
|
182
|
+
layer;
|
|
183
|
+
features;
|
|
184
|
+
static ID = '8caf86bc-869b-426f-b36d-4642f6b8aab0';
|
|
181
185
|
constructor(layer, features) {
|
|
182
186
|
super();
|
|
183
187
|
this.layer = layer;
|
|
@@ -186,10 +190,11 @@ class PlaceLayerFeaturesCommand extends GenericMessage {
|
|
|
186
190
|
get id() {
|
|
187
191
|
return PlaceLayerFeaturesCommand.ID;
|
|
188
192
|
}
|
|
189
|
-
}
|
|
190
|
-
PlaceLayerFeaturesCommand.ID = '8caf86bc-869b-426f-b36d-4642f6b8aab0';
|
|
193
|
+
}
|
|
191
194
|
|
|
192
195
|
class RemoveLayerCommand extends GenericMessage {
|
|
196
|
+
layer;
|
|
197
|
+
static ID = 'ab484e0e-e185-45cd-8434-12101f3c7eb1';
|
|
193
198
|
constructor(layer) {
|
|
194
199
|
super();
|
|
195
200
|
this.layer = layer;
|
|
@@ -197,35 +202,22 @@ class RemoveLayerCommand extends GenericMessage {
|
|
|
197
202
|
get id() {
|
|
198
203
|
return RemoveLayerCommand.ID;
|
|
199
204
|
}
|
|
200
|
-
}
|
|
201
|
-
RemoveLayerCommand.ID = 'ab484e0e-e185-45cd-8434-12101f3c7eb1';
|
|
202
|
-
|
|
203
|
-
class AddTileCommand extends GenericMessage {
|
|
204
|
-
constructor(layer) {
|
|
205
|
-
super();
|
|
206
|
-
this.layer = layer;
|
|
207
|
-
}
|
|
208
|
-
get id() {
|
|
209
|
-
return AddTileCommand.ID;
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
AddTileCommand.ID = '25b7df28-72ce-4453-9fe6-54285a2fdc57';
|
|
205
|
+
}
|
|
213
206
|
|
|
214
|
-
class
|
|
207
|
+
class ClearLayerCommand extends GenericMessage {
|
|
208
|
+
layer;
|
|
209
|
+
static ID = 'd02842b7-fa62-458d-b1e4-12dd814610c5';
|
|
215
210
|
constructor(layer) {
|
|
216
211
|
super();
|
|
217
212
|
this.layer = layer;
|
|
218
213
|
}
|
|
219
214
|
get id() {
|
|
220
|
-
return
|
|
215
|
+
return ClearLayerCommand.ID;
|
|
221
216
|
}
|
|
222
|
-
}
|
|
223
|
-
RemoveTileCommand.ID = 'c36ccc0b-5638-4819-b148-2de57a59a5b7';
|
|
217
|
+
}
|
|
224
218
|
|
|
225
219
|
class MapPostboyService {
|
|
226
|
-
|
|
227
|
-
this.applications = {};
|
|
228
|
-
}
|
|
220
|
+
applications = {};
|
|
229
221
|
register(id, sub) {
|
|
230
222
|
this.applications[id] = sub;
|
|
231
223
|
}
|
|
@@ -239,10 +231,10 @@ class MapPostboyService {
|
|
|
239
231
|
throw new Error(`There is no event with id ${message.id}`);
|
|
240
232
|
this.applications[message.id].next(message);
|
|
241
233
|
}
|
|
234
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapPostboyService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
235
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapPostboyService });
|
|
242
236
|
}
|
|
243
|
-
|
|
244
|
-
MapPostboyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPostboyService });
|
|
245
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPostboyService, decorators: [{
|
|
237
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapPostboyService, decorators: [{
|
|
246
238
|
type: Injectable
|
|
247
239
|
}] });
|
|
248
240
|
|
|
@@ -252,58 +244,51 @@ class MessageRegistratorService {
|
|
|
252
244
|
service.register(AddLayerCommand.ID, new Subject());
|
|
253
245
|
service.register(PlaceLayerFeaturesCommand.ID, new ReplaySubject(1));
|
|
254
246
|
service.register(RemoveLayerCommand.ID, new Subject());
|
|
255
|
-
service.register(
|
|
256
|
-
service.register(RemoveTileCommand.ID, new Subject());
|
|
247
|
+
service.register(ClearLayerCommand.ID, new Subject());
|
|
257
248
|
}
|
|
249
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageRegistratorService, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
250
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageRegistratorService });
|
|
258
251
|
}
|
|
259
|
-
|
|
260
|
-
MessageRegistratorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MessageRegistratorService });
|
|
261
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MessageRegistratorService, decorators: [{
|
|
252
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageRegistratorService, decorators: [{
|
|
262
253
|
type: Injectable
|
|
263
254
|
}], ctorParameters: function () { return [{ type: MapPostboyService }]; } });
|
|
264
255
|
|
|
265
256
|
class MapStateService {
|
|
257
|
+
postboy;
|
|
258
|
+
map;
|
|
266
259
|
constructor(postboy) {
|
|
267
260
|
this.postboy = postboy;
|
|
268
261
|
postboy.subscribe(MapRenderedEvent.ID).subscribe((m) => (this.map = m));
|
|
269
262
|
}
|
|
263
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapStateService, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
264
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapStateService });
|
|
270
265
|
}
|
|
271
|
-
|
|
272
|
-
MapStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapStateService });
|
|
273
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapStateService, decorators: [{
|
|
266
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapStateService, decorators: [{
|
|
274
267
|
type: Injectable
|
|
275
268
|
}], ctorParameters: function () { return [{ type: MapPostboyService }]; } });
|
|
276
269
|
|
|
277
270
|
class MapManagementService {
|
|
271
|
+
postboy;
|
|
272
|
+
map;
|
|
273
|
+
layers = {};
|
|
278
274
|
constructor(postboy) {
|
|
279
275
|
this.postboy = postboy;
|
|
280
|
-
this.layers = {};
|
|
281
276
|
this.observeMapRender();
|
|
282
277
|
this.observeAddLayer();
|
|
283
278
|
this.observeRemoveLayer();
|
|
284
279
|
this.observePlaceFeatures();
|
|
285
|
-
this.
|
|
286
|
-
this.observeRemoveTile();
|
|
287
|
-
}
|
|
288
|
-
observeRemoveTile() {
|
|
289
|
-
this.postboy.subscribe(RemoveTileCommand.ID).subscribe((c) => {
|
|
290
|
-
if (!this.map)
|
|
291
|
-
return;
|
|
292
|
-
this.map.removeLayer(c.layer);
|
|
293
|
-
});
|
|
294
|
-
}
|
|
295
|
-
observeAddTile() {
|
|
296
|
-
this.postboy.subscribe(AddTileCommand.ID).subscribe((c) => {
|
|
297
|
-
if (!this.map)
|
|
298
|
-
return;
|
|
299
|
-
this.map.addLayer(c.layer);
|
|
300
|
-
});
|
|
280
|
+
this.observeClearLayer();
|
|
301
281
|
}
|
|
302
282
|
observeMapRender() {
|
|
303
283
|
this.postboy.subscribe(MapRenderedEvent.ID).subscribe((m) => {
|
|
304
284
|
this.map = m.map;
|
|
305
285
|
});
|
|
306
286
|
}
|
|
287
|
+
observeClearLayer() {
|
|
288
|
+
this.postboy.subscribe(ClearLayerCommand.ID).subscribe((c) => {
|
|
289
|
+
this.layers[c.layer]?.getSource()?.clear();
|
|
290
|
+
});
|
|
291
|
+
}
|
|
307
292
|
observeAddLayer() {
|
|
308
293
|
this.postboy.subscribe(AddLayerCommand.ID).subscribe((c) => {
|
|
309
294
|
if (!this.map)
|
|
@@ -328,19 +313,19 @@ class MapManagementService {
|
|
|
328
313
|
this.map.removeLayer(c.layer);
|
|
329
314
|
});
|
|
330
315
|
}
|
|
316
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapManagementService, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
317
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapManagementService });
|
|
331
318
|
}
|
|
332
|
-
|
|
333
|
-
MapManagementService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapManagementService });
|
|
334
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapManagementService, decorators: [{
|
|
319
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapManagementService, decorators: [{
|
|
335
320
|
type: Injectable
|
|
336
321
|
}], ctorParameters: function () { return [{ type: MapPostboyService }]; } });
|
|
337
322
|
|
|
338
323
|
class ServiceCollector {
|
|
339
324
|
constructor(registrator, management, state) { }
|
|
325
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ServiceCollector, deps: [{ token: MessageRegistratorService }, { token: MapManagementService }, { token: MapStateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
326
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ServiceCollector });
|
|
340
327
|
}
|
|
341
|
-
|
|
342
|
-
ServiceCollector.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ServiceCollector });
|
|
343
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ServiceCollector, decorators: [{
|
|
328
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ServiceCollector, decorators: [{
|
|
344
329
|
type: Injectable
|
|
345
330
|
}], ctorParameters: function () { return [{ type: MessageRegistratorService }, { type: MapManagementService }, { type: MapStateService }]; } });
|
|
346
331
|
|
|
@@ -357,10 +342,10 @@ class MapPlateFactory {
|
|
|
357
342
|
layers: [],
|
|
358
343
|
});
|
|
359
344
|
}
|
|
345
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapPlateFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
346
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapPlateFactory, providedIn: 'root' });
|
|
360
347
|
}
|
|
361
|
-
|
|
362
|
-
MapPlateFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPlateFactory, providedIn: 'root' });
|
|
363
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPlateFactory, decorators: [{
|
|
348
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapPlateFactory, decorators: [{
|
|
364
349
|
type: Injectable,
|
|
365
350
|
args: [{
|
|
366
351
|
providedIn: 'root',
|
|
@@ -368,16 +353,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
368
353
|
}] });
|
|
369
354
|
|
|
370
355
|
class OsmTileLayerComponent extends DestructibleComponent {
|
|
356
|
+
layer;
|
|
371
357
|
constructor() {
|
|
372
358
|
super();
|
|
373
|
-
this._url = '';
|
|
374
359
|
}
|
|
360
|
+
_url = '';
|
|
375
361
|
set url(value) {
|
|
376
362
|
if (!value || this._url === value)
|
|
377
363
|
return;
|
|
378
364
|
this._url = value;
|
|
379
365
|
this.initLayer();
|
|
380
366
|
}
|
|
367
|
+
_map;
|
|
381
368
|
set map(value) {
|
|
382
369
|
if (!value || this._map === value)
|
|
383
370
|
return;
|
|
@@ -405,10 +392,10 @@ class OsmTileLayerComponent extends DestructibleComponent {
|
|
|
405
392
|
this.layer.set('name', 'osm-tile-layer');
|
|
406
393
|
this._map.addLayer(this.layer);
|
|
407
394
|
}
|
|
395
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OsmTileLayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
396
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: OsmTileLayerComponent, selector: "lib-osm-tile-layer", inputs: { url: "url", map: "map" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
408
397
|
}
|
|
409
|
-
|
|
410
|
-
OsmTileLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OsmTileLayerComponent, selector: "lib-osm-tile-layer", inputs: { url: "url", map: "map" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
411
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OsmTileLayerComponent, decorators: [{
|
|
398
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OsmTileLayerComponent, decorators: [{
|
|
412
399
|
type: Component,
|
|
413
400
|
args: [{ selector: 'lib-osm-tile-layer', template: '', changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
414
401
|
}], ctorParameters: function () { return []; }, propDecorators: { url: [{
|
|
@@ -418,15 +405,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
418
405
|
}] } });
|
|
419
406
|
|
|
420
407
|
class MapPlateComponent extends DestructibleComponent {
|
|
408
|
+
elementRef;
|
|
409
|
+
postboy;
|
|
410
|
+
mapFactory;
|
|
411
|
+
detector;
|
|
412
|
+
map;
|
|
413
|
+
osmUrl = '';
|
|
421
414
|
constructor(elementRef, postboy, mapFactory, registrator, detector) {
|
|
422
415
|
super();
|
|
423
416
|
this.elementRef = elementRef;
|
|
424
417
|
this.postboy = postboy;
|
|
425
418
|
this.mapFactory = mapFactory;
|
|
426
419
|
this.detector = detector;
|
|
427
|
-
this.osmUrl = '';
|
|
428
|
-
this._settings = new MapSettings();
|
|
429
420
|
}
|
|
421
|
+
_settings = new MapSettings();
|
|
430
422
|
set settings(value) {
|
|
431
423
|
if (!value || this._settings.isSame(value))
|
|
432
424
|
return;
|
|
@@ -451,154 +443,36 @@ class MapPlateComponent extends DestructibleComponent {
|
|
|
451
443
|
this.detector.detectChanges();
|
|
452
444
|
this.map.updateSize();
|
|
453
445
|
}
|
|
446
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapPlateComponent, deps: [{ token: i0.ElementRef }, { token: MapPostboyService }, { token: MapPlateFactory }, { token: ServiceCollector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
447
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MapPlateComponent, selector: "lib-map-plate", inputs: { settings: "settings" }, providers: [MessageRegistratorService, MapStateService, MapManagementService, ServiceCollector], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n<lib-osm-tile-layer *ngIf=\"osmUrl && map\" [map]=\"map\" [url]=\"osmUrl\"></lib-osm-tile-layer>\n", styles: ["lib-map-plate{position:relative;display:flex;flex-direction:column;height:100%}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OsmTileLayerComponent, selector: "lib-osm-tile-layer", inputs: ["url", "map"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
454
448
|
}
|
|
455
|
-
|
|
456
|
-
MapPlateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MapPlateComponent, selector: "lib-map-plate", inputs: { settings: "settings" }, providers: [MessageRegistratorService, MapStateService, MapManagementService, ServiceCollector], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n<lib-osm-tile-layer *ngIf=\"osmUrl && map\" [map]=\"map\" [url]=\"osmUrl\"></lib-osm-tile-layer>\n", styles: ["lib-map-plate{position:relative;display:flex;flex-direction:column;height:100%}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OsmTileLayerComponent, selector: "lib-osm-tile-layer", inputs: ["url", "map"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
457
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPlateComponent, decorators: [{
|
|
449
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapPlateComponent, decorators: [{
|
|
458
450
|
type: Component,
|
|
459
451
|
args: [{ selector: 'lib-map-plate', changeDetection: ChangeDetectionStrategy.OnPush, providers: [MessageRegistratorService, MapStateService, MapManagementService, ServiceCollector], template: "<ng-content></ng-content>\n<lib-osm-tile-layer *ngIf=\"osmUrl && map\" [map]=\"map\" [url]=\"osmUrl\"></lib-osm-tile-layer>\n", styles: ["lib-map-plate{position:relative;display:flex;flex-direction:column;height:100%}\n"] }]
|
|
460
452
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: MapPostboyService }, { type: MapPlateFactory }, { type: ServiceCollector }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { settings: [{
|
|
461
453
|
type: Input
|
|
462
454
|
}] } });
|
|
463
455
|
|
|
464
|
-
class TileLayerSettings {
|
|
465
|
-
constructor() {
|
|
466
|
-
this.maxZoom = 19;
|
|
467
|
-
this.minZoom = 0;
|
|
468
|
-
this.opacity = 0.6;
|
|
469
|
-
this.url = '';
|
|
470
|
-
this.projection = 'EPSG:3857';
|
|
471
|
-
}
|
|
472
|
-
static copy(model) {
|
|
473
|
-
const result = new TileLayerSettings();
|
|
474
|
-
result.maxZoom = model.maxZoom;
|
|
475
|
-
result.minZoom = model.minZoom;
|
|
476
|
-
result.projection = model.projection;
|
|
477
|
-
result.opacity = model.opacity;
|
|
478
|
-
result.url = model.url;
|
|
479
|
-
return result;
|
|
480
|
-
}
|
|
481
|
-
setUrl(url) {
|
|
482
|
-
return TileLayerSettings.copy({ ...this, url });
|
|
483
|
-
}
|
|
484
|
-
setMaxZoom(maxZoom) {
|
|
485
|
-
return TileLayerSettings.copy({ ...this, maxZoom });
|
|
486
|
-
}
|
|
487
|
-
setMinZoom(minZoom) {
|
|
488
|
-
return TileLayerSettings.copy({ ...this, minZoom });
|
|
489
|
-
}
|
|
490
|
-
setOpacity(opacity) {
|
|
491
|
-
return TileLayerSettings.copy({ ...this, opacity });
|
|
492
|
-
}
|
|
493
|
-
setProjection(projection) {
|
|
494
|
-
return TileLayerSettings.copy({ ...this, projection });
|
|
495
|
-
}
|
|
496
|
-
isSame(model) {
|
|
497
|
-
if (this.maxZoom !== model.maxZoom)
|
|
498
|
-
return false;
|
|
499
|
-
if (this.minZoom !== model.minZoom)
|
|
500
|
-
return false;
|
|
501
|
-
if (this.url !== model.url)
|
|
502
|
-
return false;
|
|
503
|
-
if (this.projection !== model.projection)
|
|
504
|
-
return false;
|
|
505
|
-
if (this.opacity !== model.opacity)
|
|
506
|
-
return false;
|
|
507
|
-
return true;
|
|
508
|
-
}
|
|
509
|
-
}
|
|
510
|
-
|
|
511
|
-
class TileLayerFactory {
|
|
512
|
-
build(settings) {
|
|
513
|
-
const source = new XYZ({
|
|
514
|
-
tileSize: 256,
|
|
515
|
-
maxZoom: settings.maxZoom || 14,
|
|
516
|
-
minZoom: settings.minZoom || 1,
|
|
517
|
-
projection: get(settings.projection),
|
|
518
|
-
tileUrlFunction: this.getTileFunc(settings),
|
|
519
|
-
crossOrigin: 'Anonymous',
|
|
520
|
-
});
|
|
521
|
-
return new TileLayer({ source, opacity: settings.opacity });
|
|
522
|
-
}
|
|
523
|
-
getTileFunc(settings) {
|
|
524
|
-
return (tileCoord) => {
|
|
525
|
-
const zoom = tileCoord[0];
|
|
526
|
-
const x = tileCoord[1];
|
|
527
|
-
const y = tileCoord[2];
|
|
528
|
-
const normalizedCoord = this.getNormalizedCoord({ x: x, y: y }, zoom);
|
|
529
|
-
const bound = 1 << zoom;
|
|
530
|
-
return settings.url
|
|
531
|
-
.replace('{x}', String(normalizedCoord?.x || x))
|
|
532
|
-
.replace('{z}', String(zoom))
|
|
533
|
-
.replace('{y}', String(bound - (normalizedCoord?.y || y) - 1));
|
|
534
|
-
};
|
|
535
|
-
}
|
|
536
|
-
getNormalizedCoord(coord, zoom) {
|
|
537
|
-
const y = coord.y;
|
|
538
|
-
let x = coord.x;
|
|
539
|
-
const tileRange = 1 << zoom;
|
|
540
|
-
if (y < 0 || y >= tileRange)
|
|
541
|
-
return null;
|
|
542
|
-
if (x < 0 || x >= tileRange)
|
|
543
|
-
x = ((x % tileRange) + tileRange) % tileRange;
|
|
544
|
-
return { x: x, y: y };
|
|
545
|
-
}
|
|
546
|
-
}
|
|
547
|
-
TileLayerFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TileLayerFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
548
|
-
TileLayerFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TileLayerFactory, providedIn: 'root' });
|
|
549
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TileLayerFactory, decorators: [{
|
|
550
|
-
type: Injectable,
|
|
551
|
-
args: [{
|
|
552
|
-
providedIn: 'root',
|
|
553
|
-
}]
|
|
554
|
-
}] });
|
|
555
|
-
|
|
556
456
|
class TileLayerComponent extends DestructibleComponent {
|
|
557
|
-
|
|
457
|
+
source;
|
|
458
|
+
layer;
|
|
459
|
+
constructor() {
|
|
558
460
|
super();
|
|
559
|
-
this.postboy = postboy;
|
|
560
|
-
this.factory = factory;
|
|
561
|
-
this._settings = new TileLayerSettings();
|
|
562
|
-
this.onDestroy = () => this.removeLayer();
|
|
563
|
-
}
|
|
564
|
-
ngOnInit() {
|
|
565
|
-
this.postboy
|
|
566
|
-
.subscribe(MapRenderedEvent.ID)
|
|
567
|
-
.pipe(filter((m) => !!m), first())
|
|
568
|
-
.subscribe((m) => this.initLayer());
|
|
569
|
-
}
|
|
570
|
-
set settings(value) {
|
|
571
|
-
if (!value || this._settings.isSame(value))
|
|
572
|
-
return;
|
|
573
|
-
this._settings = value;
|
|
574
|
-
this.initLayer();
|
|
575
|
-
}
|
|
576
|
-
initLayer() {
|
|
577
|
-
this.removeLayer();
|
|
578
|
-
this.layer = this.factory.build(this._settings);
|
|
579
|
-
this.postboy.fire(new AddTileCommand(this.layer));
|
|
580
|
-
}
|
|
581
|
-
removeLayer() {
|
|
582
|
-
if (this.layer)
|
|
583
|
-
this.postboy.fire(new RemoveTileCommand(this.layer));
|
|
584
461
|
}
|
|
462
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TileLayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
463
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TileLayerComponent, selector: "lib-tile-layer", usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
585
464
|
}
|
|
586
|
-
|
|
587
|
-
TileLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TileLayerComponent, selector: "lib-tile-layer", inputs: { settings: "settings" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
588
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TileLayerComponent, decorators: [{
|
|
465
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TileLayerComponent, decorators: [{
|
|
589
466
|
type: Component,
|
|
590
467
|
args: [{ selector: 'lib-tile-layer', template: '', changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
591
|
-
}], ctorParameters: function () { return [
|
|
592
|
-
type: Input
|
|
593
|
-
}] } });
|
|
468
|
+
}], ctorParameters: function () { return []; } });
|
|
594
469
|
|
|
595
470
|
class FeatureLayerSettings {
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
}
|
|
471
|
+
name = IdGenerator.get();
|
|
472
|
+
zIndex = 1;
|
|
473
|
+
maxZoom = 19;
|
|
474
|
+
minZoom = 0;
|
|
475
|
+
style;
|
|
602
476
|
static copy(model) {
|
|
603
477
|
const result = new FeatureLayerSettings();
|
|
604
478
|
result.name = model.name;
|
|
@@ -652,10 +526,10 @@ class FeatureLayerFactory {
|
|
|
652
526
|
layer.set('name', settings.name);
|
|
653
527
|
return layer;
|
|
654
528
|
}
|
|
529
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureLayerFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
530
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureLayerFactory, providedIn: 'root' });
|
|
655
531
|
}
|
|
656
|
-
|
|
657
|
-
FeatureLayerFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FeatureLayerFactory, providedIn: 'root' });
|
|
658
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FeatureLayerFactory, decorators: [{
|
|
532
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureLayerFactory, decorators: [{
|
|
659
533
|
type: Injectable,
|
|
660
534
|
args: [{
|
|
661
535
|
providedIn: 'root',
|
|
@@ -663,13 +537,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
663
537
|
}] });
|
|
664
538
|
|
|
665
539
|
class FeatureLayerComponent extends DestructibleComponent {
|
|
540
|
+
postboy;
|
|
541
|
+
factory;
|
|
542
|
+
layer = null;
|
|
666
543
|
constructor(postboy, factory) {
|
|
667
544
|
super();
|
|
668
545
|
this.postboy = postboy;
|
|
669
546
|
this.factory = factory;
|
|
670
|
-
this.layer = null;
|
|
671
|
-
this._settings = new FeatureLayerSettings();
|
|
672
|
-
this.onDestroy = () => this.removeLayer();
|
|
673
547
|
}
|
|
674
548
|
ngOnInit() {
|
|
675
549
|
this.postboy
|
|
@@ -677,12 +551,14 @@ class FeatureLayerComponent extends DestructibleComponent {
|
|
|
677
551
|
.pipe(filter((m) => !!m), first())
|
|
678
552
|
.subscribe((m) => this.initLayer());
|
|
679
553
|
}
|
|
554
|
+
_settings = new FeatureLayerSettings();
|
|
680
555
|
set settings(value) {
|
|
681
556
|
if (!value || this._settings.isSame(value))
|
|
682
557
|
return;
|
|
683
558
|
this._settings = value;
|
|
684
559
|
this.initLayer();
|
|
685
560
|
}
|
|
561
|
+
onDestroy = () => this.removeLayer();
|
|
686
562
|
initLayer() {
|
|
687
563
|
this.removeLayer();
|
|
688
564
|
this.layer = this.factory.build(this._settings);
|
|
@@ -692,10 +568,10 @@ class FeatureLayerComponent extends DestructibleComponent {
|
|
|
692
568
|
if (this.layer)
|
|
693
569
|
this.postboy.fire(new RemoveLayerCommand(this.layer));
|
|
694
570
|
}
|
|
571
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureLayerComponent, deps: [{ token: MapPostboyService }, { token: FeatureLayerFactory }], target: i0.ɵɵFactoryTarget.Component });
|
|
572
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FeatureLayerComponent, selector: "lib-feature-layer", inputs: { settings: "settings" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
695
573
|
}
|
|
696
|
-
|
|
697
|
-
FeatureLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FeatureLayerComponent, selector: "lib-feature-layer", inputs: { settings: "settings" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
698
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FeatureLayerComponent, decorators: [{
|
|
574
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureLayerComponent, decorators: [{
|
|
699
575
|
type: Component,
|
|
700
576
|
args: [{ selector: 'lib-feature-layer', template: '', changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
701
577
|
}], ctorParameters: function () { return [{ type: MapPostboyService }, { type: FeatureLayerFactory }]; }, propDecorators: { settings: [{
|
|
@@ -703,12 +579,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
703
579
|
}] } });
|
|
704
580
|
|
|
705
581
|
class MarkersComponent extends DestructibleComponent {
|
|
582
|
+
postboy;
|
|
583
|
+
layerName = '';
|
|
706
584
|
constructor(postboy) {
|
|
707
585
|
super();
|
|
708
586
|
this.postboy = postboy;
|
|
709
|
-
this.layerName = '';
|
|
710
|
-
this._markers = [];
|
|
711
587
|
}
|
|
588
|
+
_markers = [];
|
|
712
589
|
set markers(value) {
|
|
713
590
|
this._markers = value;
|
|
714
591
|
this.putMarkers();
|
|
@@ -724,10 +601,10 @@ class MarkersComponent extends DestructibleComponent {
|
|
|
724
601
|
return;
|
|
725
602
|
this.postboy.fire(new PlaceLayerFeaturesCommand(this.layerName, this._markers.map((m) => m.feature)));
|
|
726
603
|
}
|
|
604
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MarkersComponent, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Component });
|
|
605
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MarkersComponent, selector: "lib-markers", inputs: { layerName: "layerName", markers: "markers" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
727
606
|
}
|
|
728
|
-
|
|
729
|
-
MarkersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MarkersComponent, selector: "lib-markers", inputs: { layerName: "layerName", markers: "markers" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
730
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MarkersComponent, decorators: [{
|
|
607
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MarkersComponent, decorators: [{
|
|
731
608
|
type: Component,
|
|
732
609
|
args: [{ selector: 'lib-markers', template: '', changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
733
610
|
}], ctorParameters: function () { return [{ type: MapPostboyService }]; }, propDecorators: { layerName: [{
|
|
@@ -737,16 +614,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
737
614
|
}] } });
|
|
738
615
|
|
|
739
616
|
class MapModule {
|
|
617
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
618
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: MapModule, declarations: [DestructibleComponent,
|
|
619
|
+
MapPlateComponent,
|
|
620
|
+
TileLayerComponent,
|
|
621
|
+
OsmTileLayerComponent,
|
|
622
|
+
FeatureLayerComponent,
|
|
623
|
+
MarkersComponent], imports: [CommonModule], exports: [MapPlateComponent, FeatureLayerComponent, MarkersComponent] });
|
|
624
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapModule, imports: [CommonModule] });
|
|
740
625
|
}
|
|
741
|
-
|
|
742
|
-
MapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: MapModule, declarations: [DestructibleComponent,
|
|
743
|
-
MapPlateComponent,
|
|
744
|
-
TileLayerComponent,
|
|
745
|
-
OsmTileLayerComponent,
|
|
746
|
-
FeatureLayerComponent,
|
|
747
|
-
MarkersComponent], imports: [CommonModule], exports: [MapPlateComponent, FeatureLayerComponent, MarkersComponent, TileLayerComponent] });
|
|
748
|
-
MapModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapModule, imports: [CommonModule] });
|
|
749
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapModule, decorators: [{
|
|
626
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapModule, decorators: [{
|
|
750
627
|
type: NgModule,
|
|
751
628
|
args: [{
|
|
752
629
|
imports: [CommonModule],
|
|
@@ -758,10 +635,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
758
635
|
FeatureLayerComponent,
|
|
759
636
|
MarkersComponent,
|
|
760
637
|
],
|
|
761
|
-
exports: [MapPlateComponent, FeatureLayerComponent, MarkersComponent
|
|
638
|
+
exports: [MapPlateComponent, FeatureLayerComponent, MarkersComponent],
|
|
762
639
|
}]
|
|
763
640
|
}] });
|
|
764
641
|
|
|
642
|
+
class TileLayerSettings {
|
|
643
|
+
name = 'tiles';
|
|
644
|
+
maxZoom = 19;
|
|
645
|
+
minZoom = 0;
|
|
646
|
+
opacity = 1;
|
|
647
|
+
url = '';
|
|
648
|
+
static copy(model) {
|
|
649
|
+
const result = new TileLayerSettings();
|
|
650
|
+
result.name = model.name;
|
|
651
|
+
result.maxZoom = model.maxZoom;
|
|
652
|
+
result.minZoom = model.minZoom;
|
|
653
|
+
result.url = model.url;
|
|
654
|
+
return result;
|
|
655
|
+
}
|
|
656
|
+
setUrl(url) {
|
|
657
|
+
return TileLayerSettings.copy({ ...this, url });
|
|
658
|
+
}
|
|
659
|
+
setName(name) {
|
|
660
|
+
return TileLayerSettings.copy({ ...this, name });
|
|
661
|
+
}
|
|
662
|
+
setMaxZoom(maxZoom) {
|
|
663
|
+
return TileLayerSettings.copy({ ...this, maxZoom });
|
|
664
|
+
}
|
|
665
|
+
setMinZoom(minZoom) {
|
|
666
|
+
return TileLayerSettings.copy({ ...this, minZoom });
|
|
667
|
+
}
|
|
668
|
+
isSame(model) {
|
|
669
|
+
if (this.maxZoom !== model.maxZoom)
|
|
670
|
+
return false;
|
|
671
|
+
if (this.minZoom !== model.minZoom)
|
|
672
|
+
return false;
|
|
673
|
+
if (this.url !== model.url)
|
|
674
|
+
return false;
|
|
675
|
+
if (this.name !== model.name)
|
|
676
|
+
return false;
|
|
677
|
+
return true;
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
|
|
765
681
|
class MarkerStyleHelper {
|
|
766
682
|
static fromSvg(svg, size = [30, 30], zIndex = 400) {
|
|
767
683
|
let image = new Image();
|