@artstesh/maps 4.0.0 → 4.0.2
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/esm2020/map/map-plate/layers/tile-layer/tile-layer.component.mjs +40 -6
- package/dist/esm2020/map/map-plate/layers/tile-layer/tile-layer.factory.mjs +50 -0
- package/dist/esm2020/map/map-plate/layers/tile-layer/tile-layer.settings.mjs +14 -8
- package/dist/esm2020/map/map.module.mjs +3 -3
- package/dist/esm2020/map/messages/commands/add-tile.command.mjs +12 -0
- package/dist/esm2020/map/messages/commands/remove-tile.command.mjs +12 -0
- package/dist/esm2020/map/services/map-management.service.mjs +19 -8
- package/dist/esm2020/map/services/message-registrator.service.mjs +5 -3
- package/dist/esm2020/src/map/map-plate/layers/tile-layer/tile-layer.component.mjs +40 -6
- package/dist/esm2020/src/map/map-plate/layers/tile-layer/tile-layer.factory.mjs +50 -0
- package/dist/esm2020/src/map/map-plate/layers/tile-layer/tile-layer.settings.mjs +14 -8
- package/dist/esm2020/src/map/map.module.mjs +3 -3
- package/dist/esm2020/src/map/messages/commands/add-tile.command.mjs +12 -0
- package/dist/esm2020/src/map/messages/commands/remove-tile.command.mjs +12 -0
- package/dist/esm2020/src/map/services/map-management.service.mjs +19 -8
- package/dist/esm2020/src/map/services/message-registrator.service.mjs +5 -3
- package/dist/fesm2015/maps-components-src-map.mjs +159 -60
- package/dist/fesm2015/maps-components-src-map.mjs.map +1 -1
- package/dist/fesm2015/maps-components.mjs +159 -60
- package/dist/fesm2015/maps-components.mjs.map +1 -1
- package/dist/fesm2020/maps-components-src-map.mjs +159 -59
- package/dist/fesm2020/maps-components-src-map.mjs.map +1 -1
- package/dist/fesm2020/maps-components.mjs +159 -59
- package/dist/fesm2020/maps-components.mjs.map +1 -1
- package/dist/map/map-plate/layers/tile-layer/tile-layer.component.d.ts +14 -5
- package/dist/map/map-plate/layers/tile-layer/tile-layer.factory.d.ts +11 -0
- package/dist/map/map-plate/layers/tile-layer/tile-layer.settings.d.ts +3 -2
- package/dist/map/map.module.d.ts +1 -1
- package/dist/map/messages/commands/add-tile.command.d.ts +9 -0
- package/dist/map/messages/commands/remove-tile.command.d.ts +9 -0
- package/dist/map/services/map-management.service.d.ts +2 -1
- package/dist/src/map/map-plate/layers/tile-layer/tile-layer.component.d.ts +14 -5
- package/dist/src/map/map-plate/layers/tile-layer/tile-layer.factory.d.ts +11 -0
- package/dist/src/map/map-plate/layers/tile-layer/tile-layer.settings.d.ts +3 -2
- package/dist/src/map/map.module.d.ts +1 -1
- package/dist/src/map/messages/commands/add-tile.command.d.ts +9 -0
- package/dist/src/map/messages/commands/remove-tile.command.d.ts +9 -0
- package/dist/src/map/services/map-management.service.d.ts +2 -1
- package/package.json +1 -1
- package/dist/esm2020/map/messages/commands/clear-layer.command.mjs +0 -12
- package/dist/esm2020/src/map/messages/commands/clear-layer.command.mjs +0 -12
- package/dist/map/messages/commands/clear-layer.command.d.ts +0 -7
- package/dist/src/map/messages/commands/clear-layer.command.d.ts +0 -7
|
@@ -15,7 +15,7 @@ MapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.
|
|
|
15
15
|
TileLayerComponent,
|
|
16
16
|
OsmTileLayerComponent,
|
|
17
17
|
FeatureLayerComponent,
|
|
18
|
-
MarkersComponent], imports: [CommonModule], exports: [MapPlateComponent, FeatureLayerComponent, MarkersComponent] });
|
|
18
|
+
MarkersComponent], imports: [CommonModule], exports: [MapPlateComponent, FeatureLayerComponent, MarkersComponent, TileLayerComponent] });
|
|
19
19
|
MapModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapModule, imports: [CommonModule] });
|
|
20
20
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapModule, decorators: [{
|
|
21
21
|
type: NgModule,
|
|
@@ -29,7 +29,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
29
29
|
FeatureLayerComponent,
|
|
30
30
|
MarkersComponent,
|
|
31
31
|
],
|
|
32
|
-
exports: [MapPlateComponent, FeatureLayerComponent, MarkersComponent],
|
|
32
|
+
exports: [MapPlateComponent, FeatureLayerComponent, MarkersComponent, TileLayerComponent],
|
|
33
33
|
}]
|
|
34
34
|
}] });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHMtY29tcG9uZW50cy9zcmMvbWFwL21hcC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDeEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDbkcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7O0FBY2xGLE1BQU0sT0FBTyxTQUFTOzt1R0FBVCxTQUFTO3dHQUFULFNBQVMsaUJBVGxCLHFCQUFxQjtRQUNyQixpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLHFCQUFxQjtRQUNyQixxQkFBcUI7UUFDckIsZ0JBQWdCLGFBUFIsWUFBWSxhQVNaLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLGtCQUFrQjt3R0FFN0UsU0FBUyxZQVhWLFlBQVk7NEZBV1gsU0FBUztrQkFackIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFlBQVksRUFBRTt3QkFDWixxQkFBcUI7d0JBQ3JCLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsZ0JBQWdCO3FCQUNqQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQztpQkFDMUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERlc3RydWN0aWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tbW9uL2Rlc3RydWN0aWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWFwUGxhdGVDb21wb25lbnQgfSBmcm9tICcuL21hcC1wbGF0ZS9tYXAtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRpbGVMYXllckNvbXBvbmVudCB9IGZyb20gJy4vbWFwLXBsYXRlL2xheWVycy90aWxlLWxheWVyL3RpbGUtbGF5ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE9zbVRpbGVMYXllckNvbXBvbmVudCB9IGZyb20gJy4vbWFwLXBsYXRlL2xheWVycy9vc20tdGlsZS1sYXllci9vc20tdGlsZS1sYXllci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmVhdHVyZUxheWVyQ29tcG9uZW50IH0gZnJvbSAnLi9tYXAtcGxhdGUvbGF5ZXJzL2ZlYXR1cmUtbGF5ZXIvZmVhdHVyZS1sYXllci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWFya2Vyc0NvbXBvbmVudCB9IGZyb20gJy4vbWFwLXBsYXRlL2ZlYXR1cmVzL21hcmtlcnMvbWFya2Vycy5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRGVzdHJ1Y3RpYmxlQ29tcG9uZW50LFxuICAgIE1hcFBsYXRlQ29tcG9uZW50LFxuICAgIFRpbGVMYXllckNvbXBvbmVudCxcbiAgICBPc21UaWxlTGF5ZXJDb21wb25lbnQsXG4gICAgRmVhdHVyZUxheWVyQ29tcG9uZW50LFxuICAgIE1hcmtlcnNDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtNYXBQbGF0ZUNvbXBvbmVudCwgRmVhdHVyZUxheWVyQ29tcG9uZW50LCBNYXJrZXJzQ29tcG9uZW50LCBUaWxlTGF5ZXJDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBNYXBNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { GenericMessage } from '../generic-message';
|
|
2
|
+
export class AddTileCommand extends GenericMessage {
|
|
3
|
+
constructor(layer) {
|
|
4
|
+
super();
|
|
5
|
+
this.layer = layer;
|
|
6
|
+
}
|
|
7
|
+
get id() {
|
|
8
|
+
return AddTileCommand.ID;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
AddTileCommand.ID = '25b7df28-72ce-4453-9fe6-54285a2fdc57';
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXRpbGUuY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHMtY29tcG9uZW50cy9zcmMvbWFwL21lc3NhZ2VzL2NvbW1hbmRzL2FkZC10aWxlLmNvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBTXBELE1BQU0sT0FBTyxjQUFlLFNBQVEsY0FBYztJQUdoRCxZQUFtQixLQUFxQjtRQUN0QyxLQUFLLEVBQUUsQ0FBQztRQURTLFVBQUssR0FBTCxLQUFLLENBQWdCO0lBRXhDLENBQUM7SUFFRCxJQUFXLEVBQUU7UUFDWCxPQUFPLGNBQWMsQ0FBQyxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7QUFSc0IsaUJBQUUsR0FBRyxzQ0FBc0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdlbmVyaWNNZXNzYWdlIH0gZnJvbSAnLi4vZ2VuZXJpYy1tZXNzYWdlJztcbmltcG9ydCB7IFZlY3RvciBhcyBMYXllciB9IGZyb20gJ29sL2xheWVyJztcbmltcG9ydCBWZWN0b3JTb3VyY2UgZnJvbSAnb2wvc291cmNlL1ZlY3Rvcic7XG5pbXBvcnQgVGlsZUxheWVyIGZyb20gJ29sL2xheWVyL1RpbGUnO1xuaW1wb3J0IHsgWFlaIH0gZnJvbSAnb2wvc291cmNlJztcblxuZXhwb3J0IGNsYXNzIEFkZFRpbGVDb21tYW5kIGV4dGVuZHMgR2VuZXJpY01lc3NhZ2Uge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IElEID0gJzI1YjdkZjI4LTcyY2UtNDQ1My05ZmU2LTU0Mjg1YTJmZGM1Nyc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGxheWVyOiBUaWxlTGF5ZXI8WFlaPikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEFkZFRpbGVDb21tYW5kLklEO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { GenericMessage } from '../generic-message';
|
|
2
|
+
export class RemoveTileCommand extends GenericMessage {
|
|
3
|
+
constructor(layer) {
|
|
4
|
+
super();
|
|
5
|
+
this.layer = layer;
|
|
6
|
+
}
|
|
7
|
+
get id() {
|
|
8
|
+
return RemoveTileCommand.ID;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
RemoveTileCommand.ID = 'c36ccc0b-5638-4819-b148-2de57a59a5b7';
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLXRpbGUuY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHMtY29tcG9uZW50cy9zcmMvbWFwL21lc3NhZ2VzL2NvbW1hbmRzL3JlbW92ZS10aWxlLmNvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBS3BELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxjQUFjO0lBR25ELFlBQW1CLEtBQXFCO1FBQ3RDLEtBQUssRUFBRSxDQUFDO1FBRFMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7SUFFeEMsQ0FBQztJQUVELElBQVcsRUFBRTtRQUNYLE9BQU8saUJBQWlCLENBQUMsRUFBRSxDQUFDO0lBQzlCLENBQUM7O0FBUnNCLG9CQUFFLEdBQUcsc0NBQXNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZW5lcmljTWVzc2FnZSB9IGZyb20gJy4uL2dlbmVyaWMtbWVzc2FnZSc7XG5pbXBvcnQgQmFzZUxheWVyIGZyb20gJ29sL2xheWVyL0Jhc2UnO1xuaW1wb3J0IFRpbGVMYXllciBmcm9tICdvbC9sYXllci9UaWxlJztcbmltcG9ydCB7IFhZWiB9IGZyb20gJ29sL3NvdXJjZSc7XG5cbmV4cG9ydCBjbGFzcyBSZW1vdmVUaWxlQ29tbWFuZCBleHRlbmRzIEdlbmVyaWNNZXNzYWdlIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBJRCA9ICdjMzZjY2MwYi01NjM4LTQ4MTktYjE0OC0yZGU1N2E1OWE1YjcnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBsYXllcjogVGlsZUxheWVyPFhZWj4pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBSZW1vdmVUaWxlQ29tbWFuZC5JRDtcbiAgfVxufVxuIl19
|
|
@@ -3,7 +3,8 @@ import { AddLayerCommand } from '../messages/commands/add-layer.command';
|
|
|
3
3
|
import { RemoveLayerCommand } from '../messages/commands/remove-layer.command';
|
|
4
4
|
import { MapRenderedEvent } from '../messages';
|
|
5
5
|
import { PlaceLayerFeaturesCommand } from '../messages/commands/place-layer-features.command';
|
|
6
|
-
import {
|
|
6
|
+
import { AddTileCommand } from '../messages/commands/add-tile.command';
|
|
7
|
+
import { RemoveTileCommand } from '../messages/commands/remove-tile.command';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
import * as i1 from "./map-postboy.service";
|
|
9
10
|
export class MapManagementService {
|
|
@@ -14,18 +15,28 @@ export class MapManagementService {
|
|
|
14
15
|
this.observeAddLayer();
|
|
15
16
|
this.observeRemoveLayer();
|
|
16
17
|
this.observePlaceFeatures();
|
|
17
|
-
this.
|
|
18
|
+
this.observeAddTile();
|
|
19
|
+
this.observeRemoveTile();
|
|
20
|
+
}
|
|
21
|
+
observeRemoveTile() {
|
|
22
|
+
this.postboy.subscribe(RemoveTileCommand.ID).subscribe((c) => {
|
|
23
|
+
if (!this.map)
|
|
24
|
+
return;
|
|
25
|
+
this.map.removeLayer(c.layer);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
observeAddTile() {
|
|
29
|
+
this.postboy.subscribe(AddTileCommand.ID).subscribe((c) => {
|
|
30
|
+
if (!this.map)
|
|
31
|
+
return;
|
|
32
|
+
this.map.addLayer(c.layer);
|
|
33
|
+
});
|
|
18
34
|
}
|
|
19
35
|
observeMapRender() {
|
|
20
36
|
this.postboy.subscribe(MapRenderedEvent.ID).subscribe((m) => {
|
|
21
37
|
this.map = m.map;
|
|
22
38
|
});
|
|
23
39
|
}
|
|
24
|
-
observeClearLayer() {
|
|
25
|
-
this.postboy.subscribe(ClearLayerCommand.ID).subscribe((c) => {
|
|
26
|
-
this.layers[c.layer]?.getSource()?.clear();
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
40
|
observeAddLayer() {
|
|
30
41
|
this.postboy.subscribe(AddLayerCommand.ID).subscribe((c) => {
|
|
31
42
|
if (!this.map)
|
|
@@ -56,4 +67,4 @@ MapManagementService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0",
|
|
|
56
67
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapManagementService, decorators: [{
|
|
57
68
|
type: Injectable
|
|
58
69
|
}], ctorParameters: function () { return [{ type: i1.MapPostboyService }]; } });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLW1hbmFnZW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHMtY29tcG9uZW50cy9zcmMvbWFwL3NlcnZpY2VzL21hcC1tYW5hZ2VtZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFHL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7O0FBRzdFLE1BQU0sT0FBTyxvQkFBb0I7SUFJL0IsWUFBb0IsT0FBMEI7UUFBMUIsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFGdEMsV0FBTSxHQUFpRCxFQUFFLENBQUM7UUFHaEUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFvQixpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM5RSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7Z0JBQUUsT0FBTztZQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBaUIsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3hFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRztnQkFBRSxPQUFPO1lBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQW1CLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzVFLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFrQixlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDMUUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHO2dCQUFFLE9BQU87WUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDM0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBNEIseUJBQXlCLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDOUYsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFBRSxPQUFPO1lBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFxQixrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNoRixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7Z0JBQUUsT0FBTztZQUN0QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztrSEF2RFUsb0JBQW9CO3NIQUFwQixvQkFBb0I7NEZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hcCB9IGZyb20gJ29sJztcbmltcG9ydCB7IE1hcFBvc3Rib3lTZXJ2aWNlIH0gZnJvbSAnLi9tYXAtcG9zdGJveS5zZXJ2aWNlJztcbmltcG9ydCB7IEFkZExheWVyQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL2FkZC1sYXllci5jb21tYW5kJztcbmltcG9ydCB7IFJlbW92ZUxheWVyQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL3JlbW92ZS1sYXllci5jb21tYW5kJztcbmltcG9ydCB7IFZlY3RvciBhcyBMYXllciB9IGZyb20gJ29sL2xheWVyJztcbmltcG9ydCBWZWN0b3JTb3VyY2UgZnJvbSAnb2wvc291cmNlL1ZlY3Rvcic7XG5pbXBvcnQgeyBNYXBSZW5kZXJlZEV2ZW50IH0gZnJvbSAnLi4vbWVzc2FnZXMnO1xuaW1wb3J0IHsgUGxhY2VMYXllckZlYXR1cmVzQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL3BsYWNlLWxheWVyLWZlYXR1cmVzLmNvbW1hbmQnO1xuaW1wb3J0IHsgQWRkVGlsZUNvbW1hbmQgfSBmcm9tICcuLi9tZXNzYWdlcy9jb21tYW5kcy9hZGQtdGlsZS5jb21tYW5kJztcbmltcG9ydCB7IFJlbW92ZVRpbGVDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvcmVtb3ZlLXRpbGUuY29tbWFuZCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNYXBNYW5hZ2VtZW50U2VydmljZSB7XG4gIHByaXZhdGUgbWFwPzogTWFwO1xuICBwcml2YXRlIGxheWVyczogeyBbbmFtZTogc3RyaW5nXTogTGF5ZXI8VmVjdG9yU291cmNlPGFueT4+IH0gPSB7fTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBvc3Rib3k6IE1hcFBvc3Rib3lTZXJ2aWNlKSB7XG4gICAgdGhpcy5vYnNlcnZlTWFwUmVuZGVyKCk7XG4gICAgdGhpcy5vYnNlcnZlQWRkTGF5ZXIoKTtcbiAgICB0aGlzLm9ic2VydmVSZW1vdmVMYXllcigpO1xuICAgIHRoaXMub2JzZXJ2ZVBsYWNlRmVhdHVyZXMoKTtcbiAgICB0aGlzLm9ic2VydmVBZGRUaWxlKCk7XG4gICAgdGhpcy5vYnNlcnZlUmVtb3ZlVGlsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvYnNlcnZlUmVtb3ZlVGlsZSgpIHtcbiAgICB0aGlzLnBvc3Rib3kuc3Vic2NyaWJlPFJlbW92ZVRpbGVDb21tYW5kPihSZW1vdmVUaWxlQ29tbWFuZC5JRCkuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICBpZiAoIXRoaXMubWFwKSByZXR1cm47XG4gICAgICB0aGlzLm1hcC5yZW1vdmVMYXllcihjLmxheWVyKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZUFkZFRpbGUoKSB7XG4gICAgdGhpcy5wb3N0Ym95LnN1YnNjcmliZTxBZGRUaWxlQ29tbWFuZD4oQWRkVGlsZUNvbW1hbmQuSUQpLnN1YnNjcmliZSgoYykgPT4ge1xuICAgICAgaWYgKCF0aGlzLm1hcCkgcmV0dXJuO1xuICAgICAgdGhpcy5tYXAuYWRkTGF5ZXIoYy5sYXllcik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVNYXBSZW5kZXIoKSB7XG4gICAgdGhpcy5wb3N0Ym95LnN1YnNjcmliZTxNYXBSZW5kZXJlZEV2ZW50PihNYXBSZW5kZXJlZEV2ZW50LklEKS5zdWJzY3JpYmUoKG0pID0+IHtcbiAgICAgIHRoaXMubWFwID0gbS5tYXA7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVBZGRMYXllcigpIHtcbiAgICB0aGlzLnBvc3Rib3kuc3Vic2NyaWJlPEFkZExheWVyQ29tbWFuZD4oQWRkTGF5ZXJDb21tYW5kLklEKS5zdWJzY3JpYmUoKGMpID0+IHtcbiAgICAgIGlmICghdGhpcy5tYXApIHJldHVybjtcbiAgICAgIHRoaXMubGF5ZXJzW2MubGF5ZXIuZ2V0KCduYW1lJyldID0gYy5sYXllcjtcbiAgICAgIHRoaXMubWFwLmFkZExheWVyKGMubGF5ZXIpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvYnNlcnZlUGxhY2VGZWF0dXJlcygpIHtcbiAgICB0aGlzLnBvc3Rib3kuc3Vic2NyaWJlPFBsYWNlTGF5ZXJGZWF0dXJlc0NvbW1hbmQ+KFBsYWNlTGF5ZXJGZWF0dXJlc0NvbW1hbmQuSUQpLnN1YnNjcmliZSgoYykgPT4ge1xuICAgICAgaWYgKCF0aGlzLmxheWVyc1tjLmxheWVyXSkgcmV0dXJuO1xuICAgICAgdGhpcy5sYXllcnNbYy5sYXllcl0/LmdldFNvdXJjZSgpPy5jbGVhcigpO1xuICAgICAgdGhpcy5sYXllcnNbYy5sYXllcl0uZ2V0U291cmNlKCk/LmFkZEZlYXR1cmVzKGMuZmVhdHVyZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvYnNlcnZlUmVtb3ZlTGF5ZXIoKSB7XG4gICAgdGhpcy5wb3N0Ym95LnN1YnNjcmliZTxSZW1vdmVMYXllckNvbW1hbmQ+KFJlbW92ZUxheWVyQ29tbWFuZC5JRCkuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICBpZiAoIXRoaXMubWFwKSByZXR1cm47XG4gICAgICBkZWxldGUgdGhpcy5sYXllcnNbYy5sYXllci5nZXQoJ25hbWUnKV07XG4gICAgICB0aGlzLm1hcC5yZW1vdmVMYXllcihjLmxheWVyKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -4,7 +4,8 @@ import { MapRenderedEvent } from '../messages';
|
|
|
4
4
|
import { AddLayerCommand } from '../messages/commands/add-layer.command';
|
|
5
5
|
import { PlaceLayerFeaturesCommand } from '../messages/commands/place-layer-features.command';
|
|
6
6
|
import { RemoveLayerCommand } from '../messages/commands/remove-layer.command';
|
|
7
|
-
import {
|
|
7
|
+
import { AddTileCommand } from '../messages/commands/add-tile.command';
|
|
8
|
+
import { RemoveTileCommand } from '../messages/commands/remove-tile.command';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
import * as i1 from "./map-postboy.service";
|
|
10
11
|
export class MessageRegistratorService {
|
|
@@ -13,7 +14,8 @@ export class MessageRegistratorService {
|
|
|
13
14
|
service.register(AddLayerCommand.ID, new Subject());
|
|
14
15
|
service.register(PlaceLayerFeaturesCommand.ID, new ReplaySubject(1));
|
|
15
16
|
service.register(RemoveLayerCommand.ID, new Subject());
|
|
16
|
-
service.register(
|
|
17
|
+
service.register(AddTileCommand.ID, new Subject());
|
|
18
|
+
service.register(RemoveTileCommand.ID, new Subject());
|
|
17
19
|
}
|
|
18
20
|
}
|
|
19
21
|
MessageRegistratorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MessageRegistratorService, deps: [{ token: i1.MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -21,4 +23,4 @@ MessageRegistratorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.
|
|
|
21
23
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MessageRegistratorService, decorators: [{
|
|
22
24
|
type: Injectable
|
|
23
25
|
}], ctorParameters: function () { return [{ type: i1.MapPostboyService }]; } });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1yZWdpc3RyYXRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvc2VydmljZXMvbWVzc2FnZS1yZWdpc3RyYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7OztBQUc3RSxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQVksT0FBMEI7UUFDcEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsSUFBSSxhQUFhLENBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLElBQUksT0FBTyxFQUFtQixDQUFDLENBQUM7UUFDckUsT0FBTyxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxhQUFhLENBQTRCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsSUFBSSxPQUFPLEVBQXNCLENBQUMsQ0FBQztRQUMzRSxPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxPQUFPLEVBQWtCLENBQUMsQ0FBQztRQUNuRSxPQUFPLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLE9BQU8sRUFBcUIsQ0FBQyxDQUFDO0lBQzNFLENBQUM7O3VIQVJVLHlCQUF5QjsySEFBekIseUJBQXlCOzRGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXBQb3N0Ym95U2VydmljZSB9IGZyb20gJy4vbWFwLXBvc3Rib3kuc2VydmljZSc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNYXBSZW5kZXJlZEV2ZW50IH0gZnJvbSAnLi4vbWVzc2FnZXMnO1xuaW1wb3J0IHsgQWRkTGF5ZXJDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvYWRkLWxheWVyLmNvbW1hbmQnO1xuaW1wb3J0IHsgUGxhY2VMYXllckZlYXR1cmVzQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL3BsYWNlLWxheWVyLWZlYXR1cmVzLmNvbW1hbmQnO1xuaW1wb3J0IHsgUmVtb3ZlTGF5ZXJDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvcmVtb3ZlLWxheWVyLmNvbW1hbmQnO1xuaW1wb3J0IHsgQWRkVGlsZUNvbW1hbmQgfSBmcm9tICcuLi9tZXNzYWdlcy9jb21tYW5kcy9hZGQtdGlsZS5jb21tYW5kJztcbmltcG9ydCB7IFJlbW92ZVRpbGVDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvcmVtb3ZlLXRpbGUuY29tbWFuZCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNZXNzYWdlUmVnaXN0cmF0b3JTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3Ioc2VydmljZTogTWFwUG9zdGJveVNlcnZpY2UpIHtcbiAgICBzZXJ2aWNlLnJlZ2lzdGVyKE1hcFJlbmRlcmVkRXZlbnQuSUQsIG5ldyBSZXBsYXlTdWJqZWN0PE1hcFJlbmRlcmVkRXZlbnQ+KDEpKTtcbiAgICBzZXJ2aWNlLnJlZ2lzdGVyKEFkZExheWVyQ29tbWFuZC5JRCwgbmV3IFN1YmplY3Q8QWRkTGF5ZXJDb21tYW5kPigpKTtcbiAgICBzZXJ2aWNlLnJlZ2lzdGVyKFBsYWNlTGF5ZXJGZWF0dXJlc0NvbW1hbmQuSUQsIG5ldyBSZXBsYXlTdWJqZWN0PFBsYWNlTGF5ZXJGZWF0dXJlc0NvbW1hbmQ+KDEpKTtcbiAgICBzZXJ2aWNlLnJlZ2lzdGVyKFJlbW92ZUxheWVyQ29tbWFuZC5JRCwgbmV3IFN1YmplY3Q8UmVtb3ZlTGF5ZXJDb21tYW5kPigpKTtcbiAgICBzZXJ2aWNlLnJlZ2lzdGVyKEFkZFRpbGVDb21tYW5kLklELCBuZXcgU3ViamVjdDxBZGRUaWxlQ29tbWFuZD4oKSk7XG4gICAgc2VydmljZS5yZWdpc3RlcihSZW1vdmVUaWxlQ29tbWFuZC5JRCwgbmV3IFN1YmplY3Q8UmVtb3ZlVGlsZUNvbW1hbmQ+KCkpO1xuICB9XG59XG4iXX0=
|
|
@@ -4,14 +4,14 @@ 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 } from 'ol/proj';
|
|
7
|
+
import { useGeographic, get } 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 { Vector } from 'ol/source';
|
|
14
|
+
import { XYZ, 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';
|
|
@@ -200,16 +200,27 @@ class RemoveLayerCommand extends GenericMessage {
|
|
|
200
200
|
}
|
|
201
201
|
RemoveLayerCommand.ID = 'ab484e0e-e185-45cd-8434-12101f3c7eb1';
|
|
202
202
|
|
|
203
|
-
class
|
|
203
|
+
class AddTileCommand extends GenericMessage {
|
|
204
204
|
constructor(layer) {
|
|
205
205
|
super();
|
|
206
206
|
this.layer = layer;
|
|
207
207
|
}
|
|
208
208
|
get id() {
|
|
209
|
-
return
|
|
209
|
+
return AddTileCommand.ID;
|
|
210
210
|
}
|
|
211
211
|
}
|
|
212
|
-
|
|
212
|
+
AddTileCommand.ID = '25b7df28-72ce-4453-9fe6-54285a2fdc57';
|
|
213
|
+
|
|
214
|
+
class RemoveTileCommand extends GenericMessage {
|
|
215
|
+
constructor(layer) {
|
|
216
|
+
super();
|
|
217
|
+
this.layer = layer;
|
|
218
|
+
}
|
|
219
|
+
get id() {
|
|
220
|
+
return RemoveTileCommand.ID;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
RemoveTileCommand.ID = 'c36ccc0b-5638-4819-b148-2de57a59a5b7';
|
|
213
224
|
|
|
214
225
|
class MapPostboyService {
|
|
215
226
|
constructor() {
|
|
@@ -241,7 +252,8 @@ class MessageRegistratorService {
|
|
|
241
252
|
service.register(AddLayerCommand.ID, new Subject());
|
|
242
253
|
service.register(PlaceLayerFeaturesCommand.ID, new ReplaySubject(1));
|
|
243
254
|
service.register(RemoveLayerCommand.ID, new Subject());
|
|
244
|
-
service.register(
|
|
255
|
+
service.register(AddTileCommand.ID, new Subject());
|
|
256
|
+
service.register(RemoveTileCommand.ID, new Subject());
|
|
245
257
|
}
|
|
246
258
|
}
|
|
247
259
|
MessageRegistratorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MessageRegistratorService, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -270,19 +282,28 @@ class MapManagementService {
|
|
|
270
282
|
this.observeAddLayer();
|
|
271
283
|
this.observeRemoveLayer();
|
|
272
284
|
this.observePlaceFeatures();
|
|
273
|
-
this.
|
|
285
|
+
this.observeAddTile();
|
|
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
|
+
});
|
|
274
301
|
}
|
|
275
302
|
observeMapRender() {
|
|
276
303
|
this.postboy.subscribe(MapRenderedEvent.ID).subscribe((m) => {
|
|
277
304
|
this.map = m.map;
|
|
278
305
|
});
|
|
279
306
|
}
|
|
280
|
-
observeClearLayer() {
|
|
281
|
-
this.postboy.subscribe(ClearLayerCommand.ID).subscribe((c) => {
|
|
282
|
-
var _a, _b;
|
|
283
|
-
(_b = (_a = this.layers[c.layer]) === null || _a === void 0 ? void 0 : _a.getSource()) === null || _b === void 0 ? void 0 : _b.clear();
|
|
284
|
-
});
|
|
285
|
-
}
|
|
286
307
|
observeAddLayer() {
|
|
287
308
|
this.postboy.subscribe(AddLayerCommand.ID).subscribe((c) => {
|
|
288
309
|
if (!this.map)
|
|
@@ -442,17 +463,136 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
442
463
|
type: Input
|
|
443
464
|
}] } });
|
|
444
465
|
|
|
445
|
-
class
|
|
466
|
+
class TileLayerSettings {
|
|
446
467
|
constructor() {
|
|
468
|
+
this.maxZoom = 19;
|
|
469
|
+
this.minZoom = 0;
|
|
470
|
+
this.opacity = 0.6;
|
|
471
|
+
this.url = '';
|
|
472
|
+
this.projection = 'EPSG:3857';
|
|
473
|
+
}
|
|
474
|
+
static copy(model) {
|
|
475
|
+
const result = new TileLayerSettings();
|
|
476
|
+
result.maxZoom = model.maxZoom;
|
|
477
|
+
result.minZoom = model.minZoom;
|
|
478
|
+
result.projection = model.projection;
|
|
479
|
+
result.opacity = model.opacity;
|
|
480
|
+
result.url = model.url;
|
|
481
|
+
return result;
|
|
482
|
+
}
|
|
483
|
+
setUrl(url) {
|
|
484
|
+
return TileLayerSettings.copy(Object.assign(Object.assign({}, this), { url }));
|
|
485
|
+
}
|
|
486
|
+
setMaxZoom(maxZoom) {
|
|
487
|
+
return TileLayerSettings.copy(Object.assign(Object.assign({}, this), { maxZoom }));
|
|
488
|
+
}
|
|
489
|
+
setMinZoom(minZoom) {
|
|
490
|
+
return TileLayerSettings.copy(Object.assign(Object.assign({}, this), { minZoom }));
|
|
491
|
+
}
|
|
492
|
+
setOpacity(opacity) {
|
|
493
|
+
return TileLayerSettings.copy(Object.assign(Object.assign({}, this), { opacity }));
|
|
494
|
+
}
|
|
495
|
+
setProjection(projection) {
|
|
496
|
+
return TileLayerSettings.copy(Object.assign(Object.assign({}, this), { projection }));
|
|
497
|
+
}
|
|
498
|
+
isSame(model) {
|
|
499
|
+
if (this.maxZoom !== model.maxZoom)
|
|
500
|
+
return false;
|
|
501
|
+
if (this.minZoom !== model.minZoom)
|
|
502
|
+
return false;
|
|
503
|
+
if (this.url !== model.url)
|
|
504
|
+
return false;
|
|
505
|
+
if (this.projection !== model.projection)
|
|
506
|
+
return false;
|
|
507
|
+
if (this.opacity !== model.opacity)
|
|
508
|
+
return false;
|
|
509
|
+
return true;
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
class TileLayerFactory {
|
|
514
|
+
build(settings) {
|
|
515
|
+
const source = new XYZ({
|
|
516
|
+
tileSize: 256,
|
|
517
|
+
maxZoom: settings.maxZoom || 14,
|
|
518
|
+
minZoom: settings.minZoom || 1,
|
|
519
|
+
projection: get(settings.projection),
|
|
520
|
+
tileUrlFunction: this.getTileFunc(settings),
|
|
521
|
+
crossOrigin: 'Anonymous',
|
|
522
|
+
});
|
|
523
|
+
return new TileLayer({ source, opacity: settings.opacity });
|
|
524
|
+
}
|
|
525
|
+
getTileFunc(settings) {
|
|
526
|
+
return (tileCoord) => {
|
|
527
|
+
const zoom = tileCoord[0];
|
|
528
|
+
const x = tileCoord[1];
|
|
529
|
+
const y = tileCoord[2];
|
|
530
|
+
const normalizedCoord = this.getNormalizedCoord({ x: x, y: y }, zoom);
|
|
531
|
+
const bound = 1 << zoom;
|
|
532
|
+
return settings.url
|
|
533
|
+
.replace('{x}', String((normalizedCoord === null || normalizedCoord === void 0 ? void 0 : normalizedCoord.x) || x))
|
|
534
|
+
.replace('{z}', String(zoom))
|
|
535
|
+
.replace('{y}', String(bound - ((normalizedCoord === null || normalizedCoord === void 0 ? void 0 : normalizedCoord.y) || y) - 1));
|
|
536
|
+
};
|
|
537
|
+
}
|
|
538
|
+
getNormalizedCoord(coord, zoom) {
|
|
539
|
+
const y = coord.y;
|
|
540
|
+
let x = coord.x;
|
|
541
|
+
const tileRange = 1 << zoom;
|
|
542
|
+
if (y < 0 || y >= tileRange)
|
|
543
|
+
return null;
|
|
544
|
+
if (x < 0 || x >= tileRange)
|
|
545
|
+
x = ((x % tileRange) + tileRange) % tileRange;
|
|
546
|
+
return { x: x, y: y };
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
TileLayerFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TileLayerFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
550
|
+
TileLayerFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TileLayerFactory, providedIn: 'root' });
|
|
551
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TileLayerFactory, decorators: [{
|
|
552
|
+
type: Injectable,
|
|
553
|
+
args: [{
|
|
554
|
+
providedIn: 'root',
|
|
555
|
+
}]
|
|
556
|
+
}] });
|
|
557
|
+
|
|
558
|
+
class TileLayerComponent extends DestructibleComponent {
|
|
559
|
+
constructor(postboy, factory) {
|
|
447
560
|
super();
|
|
561
|
+
this.postboy = postboy;
|
|
562
|
+
this.factory = factory;
|
|
563
|
+
this._settings = new TileLayerSettings();
|
|
564
|
+
this.onDestroy = () => this.removeLayer();
|
|
565
|
+
}
|
|
566
|
+
ngOnInit() {
|
|
567
|
+
this.postboy
|
|
568
|
+
.subscribe(MapRenderedEvent.ID)
|
|
569
|
+
.pipe(filter((m) => !!m), first())
|
|
570
|
+
.subscribe((m) => this.initLayer());
|
|
571
|
+
}
|
|
572
|
+
set settings(value) {
|
|
573
|
+
if (!value || this._settings.isSame(value))
|
|
574
|
+
return;
|
|
575
|
+
this._settings = value;
|
|
576
|
+
this.initLayer();
|
|
577
|
+
}
|
|
578
|
+
initLayer() {
|
|
579
|
+
this.removeLayer();
|
|
580
|
+
this.layer = this.factory.build(this._settings);
|
|
581
|
+
this.postboy.fire(new AddTileCommand(this.layer));
|
|
582
|
+
}
|
|
583
|
+
removeLayer() {
|
|
584
|
+
if (this.layer)
|
|
585
|
+
this.postboy.fire(new RemoveTileCommand(this.layer));
|
|
448
586
|
}
|
|
449
587
|
}
|
|
450
|
-
TileLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TileLayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
451
|
-
TileLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TileLayerComponent, selector: "lib-tile-layer", usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
588
|
+
TileLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TileLayerComponent, deps: [{ token: MapPostboyService }, { token: TileLayerFactory }], target: i0.ɵɵFactoryTarget.Component });
|
|
589
|
+
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 });
|
|
452
590
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TileLayerComponent, decorators: [{
|
|
453
591
|
type: Component,
|
|
454
592
|
args: [{ selector: 'lib-tile-layer', template: '', changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
455
|
-
}], ctorParameters: function () { return []; }
|
|
593
|
+
}], ctorParameters: function () { return [{ type: MapPostboyService }, { type: TileLayerFactory }]; }, propDecorators: { settings: [{
|
|
594
|
+
type: Input
|
|
595
|
+
}] } });
|
|
456
596
|
|
|
457
597
|
class FeatureLayerSettings {
|
|
458
598
|
constructor() {
|
|
@@ -607,7 +747,7 @@ MapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.
|
|
|
607
747
|
TileLayerComponent,
|
|
608
748
|
OsmTileLayerComponent,
|
|
609
749
|
FeatureLayerComponent,
|
|
610
|
-
MarkersComponent], imports: [CommonModule], exports: [MapPlateComponent, FeatureLayerComponent, MarkersComponent] });
|
|
750
|
+
MarkersComponent], imports: [CommonModule], exports: [MapPlateComponent, FeatureLayerComponent, MarkersComponent, TileLayerComponent] });
|
|
611
751
|
MapModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapModule, imports: [CommonModule] });
|
|
612
752
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapModule, decorators: [{
|
|
613
753
|
type: NgModule,
|
|
@@ -621,51 +761,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
621
761
|
FeatureLayerComponent,
|
|
622
762
|
MarkersComponent,
|
|
623
763
|
],
|
|
624
|
-
exports: [MapPlateComponent, FeatureLayerComponent, MarkersComponent],
|
|
764
|
+
exports: [MapPlateComponent, FeatureLayerComponent, MarkersComponent, TileLayerComponent],
|
|
625
765
|
}]
|
|
626
766
|
}] });
|
|
627
767
|
|
|
628
|
-
class TileLayerSettings {
|
|
629
|
-
constructor() {
|
|
630
|
-
this.name = 'tiles';
|
|
631
|
-
this.maxZoom = 19;
|
|
632
|
-
this.minZoom = 0;
|
|
633
|
-
this.opacity = 1;
|
|
634
|
-
this.url = '';
|
|
635
|
-
}
|
|
636
|
-
static copy(model) {
|
|
637
|
-
const result = new TileLayerSettings();
|
|
638
|
-
result.name = model.name;
|
|
639
|
-
result.maxZoom = model.maxZoom;
|
|
640
|
-
result.minZoom = model.minZoom;
|
|
641
|
-
result.url = model.url;
|
|
642
|
-
return result;
|
|
643
|
-
}
|
|
644
|
-
setUrl(url) {
|
|
645
|
-
return TileLayerSettings.copy(Object.assign(Object.assign({}, this), { url }));
|
|
646
|
-
}
|
|
647
|
-
setName(name) {
|
|
648
|
-
return TileLayerSettings.copy(Object.assign(Object.assign({}, this), { name }));
|
|
649
|
-
}
|
|
650
|
-
setMaxZoom(maxZoom) {
|
|
651
|
-
return TileLayerSettings.copy(Object.assign(Object.assign({}, this), { maxZoom }));
|
|
652
|
-
}
|
|
653
|
-
setMinZoom(minZoom) {
|
|
654
|
-
return TileLayerSettings.copy(Object.assign(Object.assign({}, this), { minZoom }));
|
|
655
|
-
}
|
|
656
|
-
isSame(model) {
|
|
657
|
-
if (this.maxZoom !== model.maxZoom)
|
|
658
|
-
return false;
|
|
659
|
-
if (this.minZoom !== model.minZoom)
|
|
660
|
-
return false;
|
|
661
|
-
if (this.url !== model.url)
|
|
662
|
-
return false;
|
|
663
|
-
if (this.name !== model.name)
|
|
664
|
-
return false;
|
|
665
|
-
return true;
|
|
666
|
-
}
|
|
667
|
-
}
|
|
668
|
-
|
|
669
768
|
class MarkerStyleHelper {
|
|
670
769
|
static fromSvg(svg, size = [30, 30], zIndex = 400) {
|
|
671
770
|
let image = new Image();
|