@artstesh/maps 4.0.6 → 4.0.7
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/helpers/index.mjs +2 -1
- package/dist/esm2020/map/helpers/marker-style.helper.mjs +5 -1
- package/dist/esm2020/map/helpers/text-style.helper.mjs +14 -0
- package/dist/esm2020/map/map-plate/layers/cluster-layer/cluster-layer-factory.service.mjs +59 -0
- package/dist/esm2020/map/map-plate/layers/cluster-layer/cluster-layer.component.mjs +50 -0
- package/dist/esm2020/map/map-plate/layers/cluster-layer/cluster-layer.manager.mjs +18 -0
- package/dist/esm2020/map/map-plate/layers/cluster-layer/cluster-layer.settings.mjs +61 -0
- package/dist/esm2020/map/map-plate/layers/index.mjs +3 -1
- package/dist/esm2020/map/map-plate/map-plate.component.mjs +4 -3
- package/dist/esm2020/map/map.module.mjs +8 -3
- package/dist/esm2020/map/messages/commands/add-layer.command.mjs +1 -1
- package/dist/esm2020/map/messages/commands/fit-to-features.command.mjs +13 -0
- package/dist/esm2020/map/messages/events/map-click.event.mjs +3 -2
- package/dist/esm2020/map/models/i-identified.mjs +2 -0
- package/dist/esm2020/map/models/map.constants.mjs +4 -0
- package/dist/esm2020/map/models/marker-model.mjs +3 -2
- package/dist/esm2020/map/services/map-click.service.mjs +7 -3
- package/dist/esm2020/map/services/map-feature.service.mjs +39 -0
- package/dist/esm2020/map/services/map-management.service.mjs +6 -3
- package/dist/esm2020/map/services/message-registrator.service.mjs +9 -6
- package/dist/esm2020/src/map/helpers/index.mjs +2 -1
- package/dist/esm2020/src/map/helpers/marker-style.helper.mjs +5 -1
- package/dist/esm2020/src/map/helpers/text-style.helper.mjs +14 -0
- package/dist/esm2020/src/map/map-plate/layers/cluster-layer/cluster-layer-factory.service.mjs +59 -0
- package/dist/esm2020/src/map/map-plate/layers/cluster-layer/cluster-layer.component.mjs +50 -0
- package/dist/esm2020/src/map/map-plate/layers/cluster-layer/cluster-layer.manager.mjs +18 -0
- package/dist/esm2020/src/map/map-plate/layers/cluster-layer/cluster-layer.settings.mjs +61 -0
- package/dist/esm2020/src/map/map-plate/layers/index.mjs +3 -1
- package/dist/esm2020/src/map/map-plate/map-plate.component.mjs +4 -3
- package/dist/esm2020/src/map/map.module.mjs +8 -3
- package/dist/esm2020/src/map/messages/commands/add-layer.command.mjs +1 -1
- package/dist/esm2020/src/map/messages/commands/fit-to-features.command.mjs +13 -0
- package/dist/esm2020/src/map/messages/events/map-click.event.mjs +3 -2
- package/dist/esm2020/src/map/models/i-identified.mjs +2 -0
- package/dist/esm2020/src/map/models/map.constants.mjs +4 -0
- package/dist/esm2020/src/map/models/marker-model.mjs +3 -2
- package/dist/esm2020/src/map/services/map-click.service.mjs +7 -3
- package/dist/esm2020/src/map/services/map-feature.service.mjs +39 -0
- package/dist/esm2020/src/map/services/map-management.service.mjs +6 -3
- package/dist/esm2020/src/map/services/message-registrator.service.mjs +9 -6
- package/dist/fesm2015/maps-components-src-map.mjs +268 -18
- package/dist/fesm2015/maps-components-src-map.mjs.map +1 -1
- package/dist/fesm2015/maps-components.mjs +268 -18
- package/dist/fesm2015/maps-components.mjs.map +1 -1
- package/dist/fesm2020/maps-components-src-map.mjs +264 -17
- package/dist/fesm2020/maps-components-src-map.mjs.map +1 -1
- package/dist/fesm2020/maps-components.mjs +264 -17
- package/dist/fesm2020/maps-components.mjs.map +1 -1
- package/dist/map/helpers/index.d.ts +1 -0
- package/dist/map/helpers/marker-style.helper.d.ts +2 -0
- package/dist/map/helpers/text-style.helper.d.ts +4 -0
- package/dist/map/map-plate/layers/cluster-layer/cluster-layer-factory.service.d.ts +11 -0
- package/dist/map/map-plate/layers/cluster-layer/cluster-layer.component.d.ts +21 -0
- package/dist/map/map-plate/layers/cluster-layer/cluster-layer.manager.d.ts +11 -0
- package/dist/map/map-plate/layers/cluster-layer/cluster-layer.settings.d.ts +20 -0
- package/dist/map/map-plate/layers/index.d.ts +2 -0
- package/dist/map/map.module.d.ts +3 -2
- package/dist/map/messages/commands/add-layer.command.d.ts +3 -2
- package/dist/map/messages/commands/fit-to-features.command.d.ts +10 -0
- package/dist/map/messages/events/map-click.event.d.ts +10 -2
- package/dist/map/models/i-identified.d.ts +3 -0
- package/dist/map/models/map.constants.d.ts +3 -0
- package/dist/map/services/map-feature.service.d.ts +14 -0
- package/dist/map/services/message-registrator.service.d.ts +2 -1
- package/dist/src/map/helpers/index.d.ts +1 -0
- package/dist/src/map/helpers/marker-style.helper.d.ts +2 -0
- package/dist/src/map/helpers/text-style.helper.d.ts +4 -0
- package/dist/src/map/map-plate/layers/cluster-layer/cluster-layer-factory.service.d.ts +11 -0
- package/dist/src/map/map-plate/layers/cluster-layer/cluster-layer.component.d.ts +21 -0
- package/dist/src/map/map-plate/layers/cluster-layer/cluster-layer.manager.d.ts +11 -0
- package/dist/src/map/map-plate/layers/cluster-layer/cluster-layer.settings.d.ts +20 -0
- package/dist/src/map/map-plate/layers/index.d.ts +2 -0
- package/dist/src/map/map.module.d.ts +3 -2
- package/dist/src/map/messages/commands/add-layer.command.d.ts +3 -2
- package/dist/src/map/messages/commands/fit-to-features.command.d.ts +10 -0
- package/dist/src/map/messages/events/map-click.event.d.ts +10 -2
- package/dist/src/map/models/i-identified.d.ts +3 -0
- package/dist/src/map/models/map.constants.d.ts +3 -0
- package/dist/src/map/services/map-feature.service.d.ts +14 -0
- package/dist/src/map/services/message-registrator.service.d.ts +2 -1
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { MapRenderedEvent } from '../messages';
|
|
3
3
|
import { MapClickEvent } from '../messages/events/map-click.event';
|
|
4
|
+
import { MapConstants } from '../models/map.constants';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "./map-postboy.service";
|
|
6
7
|
export class MapClickService {
|
|
@@ -19,7 +20,7 @@ export class MapClickService {
|
|
|
19
20
|
});
|
|
20
21
|
}
|
|
21
22
|
onClick(ev) {
|
|
22
|
-
const model = new MapClickEvent(ev.coordinate, {});
|
|
23
|
+
const model = new MapClickEvent(ev.coordinate, {}, {});
|
|
23
24
|
this.map?.forEachFeatureAtPixel(ev.pixel, (f, l) => {
|
|
24
25
|
this.getFeatureCollectionWithInner([f])
|
|
25
26
|
.filter((f) => f.getId() != null)
|
|
@@ -27,7 +28,10 @@ export class MapClickService {
|
|
|
27
28
|
let layerName = l.get('name');
|
|
28
29
|
if (!model.entities[layerName])
|
|
29
30
|
model.entities[layerName] = [];
|
|
30
|
-
model.
|
|
31
|
+
if (!model.features[layerName])
|
|
32
|
+
model.features[layerName] = [];
|
|
33
|
+
model.entities[layerName].push({ id: fs.getId(), ...fs.get(MapConstants.FeatureInfo) });
|
|
34
|
+
model.features[layerName].push(fs);
|
|
31
35
|
});
|
|
32
36
|
});
|
|
33
37
|
return model;
|
|
@@ -46,4 +50,4 @@ MapClickService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", vers
|
|
|
46
50
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapClickService, decorators: [{
|
|
47
51
|
type: Injectable
|
|
48
52
|
}], ctorParameters: function () { return [{ type: i1.MapPostboyService }]; } });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWNsaWNrLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBzLWNvbXBvbmVudHMvc3JjL21hcC9zZXJ2aWNlcy9tYXAtY2xpY2suc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFHdkQsTUFBTSxPQUFPLGVBQWU7SUFHMUIsWUFBb0IsT0FBMEI7UUFBMUIsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7SUFBRyxDQUFDO0lBRWxELEVBQUU7UUFDQSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFtQixnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM1RSxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDakIsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sQ0FBQyxFQUE0QjtRQUNsQyxNQUFNLEtBQUssR0FBa0IsSUFBSSxhQUFhLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2pELElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQXNCLENBQUMsQ0FBQztpQkFDekQsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDO2lCQUNoQyxPQUFPLENBQUMsQ0FBQyxFQUFxQixFQUFFLEVBQUU7Z0JBQ2pDLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztvQkFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDL0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO29CQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUMvRCxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3pGLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyw2QkFBNkIsQ0FBQyxRQUE2QjtRQUNqRSxNQUFNLE1BQU0sR0FBd0IsRUFBRSxDQUFDO1FBQ3ZDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN0QixNQUFNLGFBQWEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBd0IsQ0FBQztZQUMvRCxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekUsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzs2R0F6Q1UsZUFBZTtpSEFBZixlQUFlOzRGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUG9zdGJveURlcGVuZGluZ1NlcnZpY2UgfSBmcm9tICdAYXJ0c3Rlc2gvcG9zdGJveSc7XG5pbXBvcnQgeyBGZWF0dXJlLCBNYXAsIE1hcEJyb3dzZXJFdmVudCB9IGZyb20gJ29sJztcbmltcG9ydCB7IE1hcFBvc3Rib3lTZXJ2aWNlIH0gZnJvbSAnLi9tYXAtcG9zdGJveS5zZXJ2aWNlJztcbmltcG9ydCB7IE1hcFJlbmRlcmVkRXZlbnQgfSBmcm9tICcuLi9tZXNzYWdlcyc7XG5pbXBvcnQgeyBNYXBDbGlja0V2ZW50IH0gZnJvbSAnLi4vbWVzc2FnZXMvZXZlbnRzL21hcC1jbGljay5ldmVudCc7XG5pbXBvcnQgeyBHZW9tZXRyeSB9IGZyb20gJ29sL2dlb20nO1xuaW1wb3J0IHsgTWFwQ29uc3RhbnRzIH0gZnJvbSAnLi4vbW9kZWxzL21hcC5jb25zdGFudHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTWFwQ2xpY2tTZXJ2aWNlIGltcGxlbWVudHMgSVBvc3Rib3lEZXBlbmRpbmdTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBtYXA/OiBNYXA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwb3N0Ym95OiBNYXBQb3N0Ym95U2VydmljZSkge31cblxuICB1cCgpOiB2b2lkIHtcbiAgICB0aGlzLm9ic2VydmVNYXBSZW5kZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZU1hcFJlbmRlcigpIHtcbiAgICB0aGlzLnBvc3Rib3kuc3Vic2NyaWJlPE1hcFJlbmRlcmVkRXZlbnQ+KE1hcFJlbmRlcmVkRXZlbnQuSUQpLnN1YnNjcmliZSgobSkgPT4ge1xuICAgICAgdGhpcy5tYXAgPSBtLm1hcDtcbiAgICAgIHRoaXMubWFwPy5vbignc2luZ2xlY2xpY2snLCAoZSkgPT4ge1xuICAgICAgICB0aGlzLnBvc3Rib3kuZmlyZSh0aGlzLm9uQ2xpY2soZSkpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBvbkNsaWNrKGV2OiBNYXBCcm93c2VyRXZlbnQ8VUlFdmVudD4pOiBNYXBDbGlja0V2ZW50IHtcbiAgICBjb25zdCBtb2RlbDogTWFwQ2xpY2tFdmVudCA9IG5ldyBNYXBDbGlja0V2ZW50KGV2LmNvb3JkaW5hdGUsIHt9LCB7fSk7XG4gICAgdGhpcy5tYXA/LmZvckVhY2hGZWF0dXJlQXRQaXhlbChldi5waXhlbCwgKGYsIGwpID0+IHtcbiAgICAgIHRoaXMuZ2V0RmVhdHVyZUNvbGxlY3Rpb25XaXRoSW5uZXIoW2YgYXMgRmVhdHVyZTxHZW9tZXRyeT5dKVxuICAgICAgICAuZmlsdGVyKChmKSA9PiBmLmdldElkKCkgIT0gbnVsbClcbiAgICAgICAgLmZvckVhY2goKGZzOiBGZWF0dXJlPEdlb21ldHJ5PikgPT4ge1xuICAgICAgICAgIGxldCBsYXllck5hbWUgPSBsLmdldCgnbmFtZScpO1xuICAgICAgICAgIGlmICghbW9kZWwuZW50aXRpZXNbbGF5ZXJOYW1lXSkgbW9kZWwuZW50aXRpZXNbbGF5ZXJOYW1lXSA9IFtdO1xuICAgICAgICAgIGlmICghbW9kZWwuZmVhdHVyZXNbbGF5ZXJOYW1lXSkgbW9kZWwuZmVhdHVyZXNbbGF5ZXJOYW1lXSA9IFtdO1xuICAgICAgICAgIG1vZGVsLmVudGl0aWVzW2xheWVyTmFtZV0ucHVzaCh7IGlkOiBmcy5nZXRJZCgpISwgLi4uZnMuZ2V0KE1hcENvbnN0YW50cy5GZWF0dXJlSW5mbykgfSk7XG4gICAgICAgICAgbW9kZWwuZmVhdHVyZXNbbGF5ZXJOYW1lXS5wdXNoKGZzKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGZWF0dXJlQ29sbGVjdGlvbldpdGhJbm5lcihmZWF0dXJlczogRmVhdHVyZTxHZW9tZXRyeT5bXSk6IEZlYXR1cmU8R2VvbWV0cnk+W10ge1xuICAgIGNvbnN0IHJlc3VsdDogRmVhdHVyZTxHZW9tZXRyeT5bXSA9IFtdO1xuICAgIGZlYXR1cmVzPy5mb3JFYWNoKChmKSA9PiB7XG4gICAgICBjb25zdCBpbm5lckZlYXR1cmVzID0gZi5nZXQoJ2ZlYXR1cmVzJykgYXMgRmVhdHVyZTxHZW9tZXRyeT5bXTtcbiAgICAgIGlubmVyRmVhdHVyZXM/Lmxlbmd0aCA/IHJlc3VsdC5wdXNoKC4uLmlubmVyRmVhdHVyZXMpIDogcmVzdWx0LnB1c2goZik7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { MapRenderedEvent } from '../messages';
|
|
3
|
+
import { FitToFeaturesCommand } from '../messages/commands/fit-to-features.command';
|
|
4
|
+
import { createEmpty, extend } from 'ol/extent';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "./map-postboy.service";
|
|
7
|
+
export class MapFeatureService {
|
|
8
|
+
constructor(postboy) {
|
|
9
|
+
this.postboy = postboy;
|
|
10
|
+
}
|
|
11
|
+
up() {
|
|
12
|
+
this.observeMapRender();
|
|
13
|
+
this.observeFitToFeatures();
|
|
14
|
+
}
|
|
15
|
+
observeMapRender() {
|
|
16
|
+
this.postboy.subscribe(MapRenderedEvent.ID).subscribe((m) => {
|
|
17
|
+
this.map = m.map;
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
observeFitToFeatures() {
|
|
21
|
+
this.postboy.subscribe(FitToFeaturesCommand.ID).subscribe((m) => {
|
|
22
|
+
this.fitToGeometries(m.features.map((f) => f.getGeometry()), m.zoomAfter);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
fitToGeometries(geometries, zoomAfter) {
|
|
26
|
+
if (!geometries?.length || !this.map)
|
|
27
|
+
return;
|
|
28
|
+
const extent = createEmpty();
|
|
29
|
+
geometries.forEach((g) => extend(extent, g.getExtent()));
|
|
30
|
+
this.map.getView().fit(extent);
|
|
31
|
+
this.map.getView().setZoom(this.map.getView().getZoom() + zoomAfter);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
MapFeatureService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapFeatureService, deps: [{ token: i1.MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
35
|
+
MapFeatureService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapFeatureService });
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapFeatureService, decorators: [{
|
|
37
|
+
type: Injectable
|
|
38
|
+
}], ctorParameters: function () { return [{ type: i1.MapPostboyService }]; } });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWZlYXR1cmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHMtY29tcG9uZW50cy9zcmMvbWFwL3NlcnZpY2VzL21hcC1mZWF0dXJlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFcEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQUdoRCxNQUFNLE9BQU8saUJBQWlCO0lBRzVCLFlBQW9CLE9BQTBCO1FBQTFCLFlBQU8sR0FBUCxPQUFPLENBQW1CO0lBQUcsQ0FBQztJQUVsRCxFQUFFO1FBQ0EsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBbUIsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDNUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBdUIsb0JBQW9CLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDcEYsSUFBSSxDQUFDLGVBQWUsQ0FDbEIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUcsQ0FBQyxFQUN2QyxDQUFDLENBQUMsU0FBUyxDQUNaLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxlQUFlLENBQUMsVUFBc0IsRUFBRSxTQUFpQjtRQUMvRCxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTztRQUM3QyxNQUFNLE1BQU0sR0FBRyxXQUFXLEVBQUUsQ0FBQztRQUM3QixVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUN4RSxDQUFDOzsrR0EvQlUsaUJBQWlCO21IQUFqQixpQkFBaUI7NEZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElQb3N0Ym95RGVwZW5kaW5nU2VydmljZSB9IGZyb20gJ0BhcnRzdGVzaC9wb3N0Ym95JztcbmltcG9ydCB7IE1hcCB9IGZyb20gJ29sJztcbmltcG9ydCB7IE1hcFBvc3Rib3lTZXJ2aWNlIH0gZnJvbSAnLi9tYXAtcG9zdGJveS5zZXJ2aWNlJztcbmltcG9ydCB7IE1hcFJlbmRlcmVkRXZlbnQgfSBmcm9tICcuLi9tZXNzYWdlcyc7XG5pbXBvcnQgeyBGaXRUb0ZlYXR1cmVzQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL2ZpdC10by1mZWF0dXJlcy5jb21tYW5kJztcbmltcG9ydCB7IEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbSc7XG5pbXBvcnQgeyBjcmVhdGVFbXB0eSwgZXh0ZW5kIH0gZnJvbSAnb2wvZXh0ZW50JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1hcEZlYXR1cmVTZXJ2aWNlIGltcGxlbWVudHMgSVBvc3Rib3lEZXBlbmRpbmdTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBtYXA/OiBNYXA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwb3N0Ym95OiBNYXBQb3N0Ym95U2VydmljZSkge31cblxuICB1cCgpOiB2b2lkIHtcbiAgICB0aGlzLm9ic2VydmVNYXBSZW5kZXIoKTtcbiAgICB0aGlzLm9ic2VydmVGaXRUb0ZlYXR1cmVzKCk7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVNYXBSZW5kZXIoKSB7XG4gICAgdGhpcy5wb3N0Ym95LnN1YnNjcmliZTxNYXBSZW5kZXJlZEV2ZW50PihNYXBSZW5kZXJlZEV2ZW50LklEKS5zdWJzY3JpYmUoKG0pID0+IHtcbiAgICAgIHRoaXMubWFwID0gbS5tYXA7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVGaXRUb0ZlYXR1cmVzKCkge1xuICAgIHRoaXMucG9zdGJveS5zdWJzY3JpYmU8Rml0VG9GZWF0dXJlc0NvbW1hbmQ+KEZpdFRvRmVhdHVyZXNDb21tYW5kLklEKS5zdWJzY3JpYmUoKG0pID0+IHtcbiAgICAgIHRoaXMuZml0VG9HZW9tZXRyaWVzKFxuICAgICAgICBtLmZlYXR1cmVzLm1hcCgoZikgPT4gZi5nZXRHZW9tZXRyeSgpISksXG4gICAgICAgIG0uem9vbUFmdGVyLFxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZml0VG9HZW9tZXRyaWVzKGdlb21ldHJpZXM6IEdlb21ldHJ5W10sIHpvb21BZnRlcjogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKCFnZW9tZXRyaWVzPy5sZW5ndGggfHwgIXRoaXMubWFwKSByZXR1cm47XG4gICAgY29uc3QgZXh0ZW50ID0gY3JlYXRlRW1wdHkoKTtcbiAgICBnZW9tZXRyaWVzLmZvckVhY2goKGcpID0+IGV4dGVuZChleHRlbnQsIGcuZ2V0RXh0ZW50KCkpKTtcbiAgICB0aGlzLm1hcC5nZXRWaWV3KCkuZml0KGV4dGVudCk7XG4gICAgdGhpcy5tYXAuZ2V0VmlldygpLnNldFpvb20odGhpcy5tYXAuZ2V0VmlldygpLmdldFpvb20oKSEgKyB6b29tQWZ0ZXIpO1xuICB9XG59XG4iXX0=
|
|
@@ -51,8 +51,11 @@ export class MapManagementService {
|
|
|
51
51
|
this.postboy.subscribe(PlaceLayerFeaturesCommand.ID).subscribe((c) => {
|
|
52
52
|
if (!this.layers[c.layer])
|
|
53
53
|
return;
|
|
54
|
-
this.layers[c.layer]?.getSource()
|
|
55
|
-
|
|
54
|
+
let source = this.layers[c.layer]?.getSource();
|
|
55
|
+
if (!!source['getSource'])
|
|
56
|
+
source = source?.getSource();
|
|
57
|
+
source?.clear();
|
|
58
|
+
source?.addFeatures(c.features);
|
|
56
59
|
});
|
|
57
60
|
}
|
|
58
61
|
observeRemoveLayer() {
|
|
@@ -69,4 +72,4 @@ MapManagementService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0",
|
|
|
69
72
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapManagementService, decorators: [{
|
|
70
73
|
type: Injectable
|
|
71
74
|
}], ctorParameters: function () { return [{ type: i1.MapPostboyService }]; } });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLW1hbmFnZW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHMtY29tcG9uZW50cy9zcmMvbWFwL3NlcnZpY2VzL21hcC1tYW5hZ2VtZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFHL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7O0FBSzdFLE1BQU0sT0FBTyxvQkFBb0I7SUFJL0IsWUFBb0IsT0FBMEI7UUFBMUIsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFGdEMsV0FBTSxHQUEyRCxFQUFFLENBQUM7SUFFM0IsQ0FBQztJQUVsRCxFQUFFO1FBQ0EsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFvQixpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM5RSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7Z0JBQUUsT0FBTztZQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBaUIsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3hFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRztnQkFBRSxPQUFPO1lBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQW1CLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzVFLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFrQixlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDMUUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHO2dCQUFFLE9BQU87WUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDM0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBNEIseUJBQXlCLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDOUYsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFBRSxPQUFPO1lBQ2xDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDO1lBQy9DLElBQUksQ0FBQyxDQUFFLE1BQWMsQ0FBQyxXQUFXLENBQUM7Z0JBQUUsTUFBTSxHQUFJLE1BQWMsRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUMxRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDaEIsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFxQixrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNoRixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7Z0JBQUUsT0FBTztZQUN0QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztrSEEzRFUsb0JBQW9CO3NIQUFwQixvQkFBb0I7NEZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hcCB9IGZyb20gJ29sJztcbmltcG9ydCB7IE1hcFBvc3Rib3lTZXJ2aWNlIH0gZnJvbSAnLi9tYXAtcG9zdGJveS5zZXJ2aWNlJztcbmltcG9ydCB7IEFkZExheWVyQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL2FkZC1sYXllci5jb21tYW5kJztcbmltcG9ydCB7IFJlbW92ZUxheWVyQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL3JlbW92ZS1sYXllci5jb21tYW5kJztcbmltcG9ydCB7IFZlY3RvciBhcyBMYXllciB9IGZyb20gJ29sL2xheWVyJztcbmltcG9ydCBWZWN0b3JTb3VyY2UgZnJvbSAnb2wvc291cmNlL1ZlY3Rvcic7XG5pbXBvcnQgeyBNYXBSZW5kZXJlZEV2ZW50IH0gZnJvbSAnLi4vbWVzc2FnZXMnO1xuaW1wb3J0IHsgUGxhY2VMYXllckZlYXR1cmVzQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL3BsYWNlLWxheWVyLWZlYXR1cmVzLmNvbW1hbmQnO1xuaW1wb3J0IHsgQWRkVGlsZUNvbW1hbmQgfSBmcm9tICcuLi9tZXNzYWdlcy9jb21tYW5kcy9hZGQtdGlsZS5jb21tYW5kJztcbmltcG9ydCB7IFJlbW92ZVRpbGVDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvcmVtb3ZlLXRpbGUuY29tbWFuZCc7XG5pbXBvcnQgeyBJUG9zdGJveURlcGVuZGluZ1NlcnZpY2UgfSBmcm9tICdAYXJ0c3Rlc2gvcG9zdGJveSc7XG5pbXBvcnQgQ2x1c3RlciBmcm9tICdvbC9zb3VyY2UvQ2x1c3Rlcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNYXBNYW5hZ2VtZW50U2VydmljZSBpbXBsZW1lbnRzIElQb3N0Ym95RGVwZW5kaW5nU2VydmljZSB7XG4gIHByaXZhdGUgbWFwPzogTWFwO1xuICBwcml2YXRlIGxheWVyczogeyBbbmFtZTogc3RyaW5nXTogTGF5ZXI8VmVjdG9yU291cmNlPGFueT4gfCBDbHVzdGVyPiB9ID0ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwb3N0Ym95OiBNYXBQb3N0Ym95U2VydmljZSkge31cblxuICB1cCgpOiB2b2lkIHtcbiAgICB0aGlzLm9ic2VydmVNYXBSZW5kZXIoKTtcbiAgICB0aGlzLm9ic2VydmVBZGRMYXllcigpO1xuICAgIHRoaXMub2JzZXJ2ZVJlbW92ZUxheWVyKCk7XG4gICAgdGhpcy5vYnNlcnZlUGxhY2VGZWF0dXJlcygpO1xuICAgIHRoaXMub2JzZXJ2ZUFkZFRpbGUoKTtcbiAgICB0aGlzLm9ic2VydmVSZW1vdmVUaWxlKCk7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVSZW1vdmVUaWxlKCkge1xuICAgIHRoaXMucG9zdGJveS5zdWJzY3JpYmU8UmVtb3ZlVGlsZUNvbW1hbmQ+KFJlbW92ZVRpbGVDb21tYW5kLklEKS5zdWJzY3JpYmUoKGMpID0+IHtcbiAgICAgIGlmICghdGhpcy5tYXApIHJldHVybjtcbiAgICAgIHRoaXMubWFwLnJlbW92ZUxheWVyKGMubGF5ZXIpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvYnNlcnZlQWRkVGlsZSgpIHtcbiAgICB0aGlzLnBvc3Rib3kuc3Vic2NyaWJlPEFkZFRpbGVDb21tYW5kPihBZGRUaWxlQ29tbWFuZC5JRCkuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICBpZiAoIXRoaXMubWFwKSByZXR1cm47XG4gICAgICB0aGlzLm1hcC5hZGRMYXllcihjLmxheWVyKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZU1hcFJlbmRlcigpIHtcbiAgICB0aGlzLnBvc3Rib3kuc3Vic2NyaWJlPE1hcFJlbmRlcmVkRXZlbnQ+KE1hcFJlbmRlcmVkRXZlbnQuSUQpLnN1YnNjcmliZSgobSkgPT4ge1xuICAgICAgdGhpcy5tYXAgPSBtLm1hcDtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZUFkZExheWVyKCkge1xuICAgIHRoaXMucG9zdGJveS5zdWJzY3JpYmU8QWRkTGF5ZXJDb21tYW5kPihBZGRMYXllckNvbW1hbmQuSUQpLnN1YnNjcmliZSgoYykgPT4ge1xuICAgICAgaWYgKCF0aGlzLm1hcCkgcmV0dXJuO1xuICAgICAgdGhpcy5sYXllcnNbYy5sYXllci5nZXQoJ25hbWUnKV0gPSBjLmxheWVyO1xuICAgICAgdGhpcy5tYXAuYWRkTGF5ZXIoYy5sYXllcik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVQbGFjZUZlYXR1cmVzKCkge1xuICAgIHRoaXMucG9zdGJveS5zdWJzY3JpYmU8UGxhY2VMYXllckZlYXR1cmVzQ29tbWFuZD4oUGxhY2VMYXllckZlYXR1cmVzQ29tbWFuZC5JRCkuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICBpZiAoIXRoaXMubGF5ZXJzW2MubGF5ZXJdKSByZXR1cm47XG4gICAgICBsZXQgc291cmNlID0gdGhpcy5sYXllcnNbYy5sYXllcl0/LmdldFNvdXJjZSgpO1xuICAgICAgaWYgKCEhKHNvdXJjZSBhcyBhbnkpWydnZXRTb3VyY2UnXSkgc291cmNlID0gKHNvdXJjZSBhcyBhbnkpPy5nZXRTb3VyY2UoKTtcbiAgICAgIHNvdXJjZT8uY2xlYXIoKTtcbiAgICAgIHNvdXJjZT8uYWRkRmVhdHVyZXMoYy5mZWF0dXJlcyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVSZW1vdmVMYXllcigpIHtcbiAgICB0aGlzLnBvc3Rib3kuc3Vic2NyaWJlPFJlbW92ZUxheWVyQ29tbWFuZD4oUmVtb3ZlTGF5ZXJDb21tYW5kLklEKS5zdWJzY3JpYmUoKGMpID0+IHtcbiAgICAgIGlmICghdGhpcy5tYXApIHJldHVybjtcbiAgICAgIGRlbGV0ZSB0aGlzLmxheWVyc1tjLmxheWVyLmdldCgnbmFtZScpXTtcbiAgICAgIHRoaXMubWFwLnJlbW92ZUxheWVyKGMubGF5ZXIpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -8,15 +8,17 @@ import { RemoveTileCommand } from '../messages/commands/remove-tile.command';
|
|
|
8
8
|
import { PostboyAbstractRegistrator } from '@artstesh/postboy';
|
|
9
9
|
import { MapClickEvent } from '../messages/events/map-click.event';
|
|
10
10
|
import { CloseTooltipCommand } from '../messages/commands/close-tooltip.command';
|
|
11
|
+
import { FitToFeaturesCommand } from '../messages/commands/fit-to-features.command';
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
13
|
import * as i1 from "./map-postboy.service";
|
|
13
14
|
import * as i2 from "./map-management.service";
|
|
14
15
|
import * as i3 from "./map-state.service";
|
|
15
|
-
import * as i4 from "./map-
|
|
16
|
+
import * as i4 from "./map-feature.service";
|
|
17
|
+
import * as i5 from "./map-click.service";
|
|
16
18
|
export class MessageRegistratorService extends PostboyAbstractRegistrator {
|
|
17
|
-
constructor(service, management, state, interaction) {
|
|
19
|
+
constructor(service, management, state, feature, interaction) {
|
|
18
20
|
super(service);
|
|
19
|
-
this.registerServices([management, state, interaction]);
|
|
21
|
+
this.registerServices([management, state, interaction, feature]);
|
|
20
22
|
}
|
|
21
23
|
_up() {
|
|
22
24
|
this.registerReplay(MapRenderedEvent.ID);
|
|
@@ -27,11 +29,12 @@ export class MessageRegistratorService extends PostboyAbstractRegistrator {
|
|
|
27
29
|
this.registerSubject(RemoveTileCommand.ID);
|
|
28
30
|
this.registerSubject(MapClickEvent.ID);
|
|
29
31
|
this.registerSubject(CloseTooltipCommand.ID);
|
|
32
|
+
this.registerSubject(FitToFeaturesCommand.ID);
|
|
30
33
|
}
|
|
31
34
|
}
|
|
32
|
-
MessageRegistratorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MessageRegistratorService, deps: [{ token: i1.MapPostboyService }, { token: i2.MapManagementService }, { token: i3.MapStateService }, { token: i4.MapClickService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
35
|
+
MessageRegistratorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MessageRegistratorService, deps: [{ token: i1.MapPostboyService }, { token: i2.MapManagementService }, { token: i3.MapStateService }, { token: i4.MapFeatureService }, { token: i5.MapClickService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
33
36
|
MessageRegistratorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MessageRegistratorService });
|
|
34
37
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MessageRegistratorService, decorators: [{
|
|
35
38
|
type: Injectable
|
|
36
|
-
}], ctorParameters: function () { return [{ type: i1.MapPostboyService }, { type: i2.MapManagementService }, { type: i3.MapStateService }, { type: i4.MapClickService }]; } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
}], ctorParameters: function () { return [{ type: i1.MapPostboyService }, { type: i2.MapManagementService }, { type: i3.MapStateService }, { type: i4.MapFeatureService }, { type: i5.MapClickService }]; } });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1yZWdpc3RyYXRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvc2VydmljZXMvbWVzc2FnZS1yZWdpc3RyYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRWpGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7O0FBR3BGLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSwwQkFBMEI7SUFDdkUsWUFDRSxPQUEwQixFQUMxQixVQUFnQyxFQUNoQyxLQUFzQixFQUN0QixPQUEwQixFQUMxQixXQUE0QjtRQUU1QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFDUyxHQUFHO1FBQ1gsSUFBSSxDQUFDLGNBQWMsQ0FBbUIsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLGNBQWMsQ0FBNEIseUJBQXlCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLGVBQWUsQ0FBa0IsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxlQUFlLENBQXFCLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxlQUFlLENBQWlCLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsZUFBZSxDQUFvQixpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsZUFBZSxDQUFnQixhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLGVBQWUsQ0FBc0IsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGVBQWUsQ0FBdUIsb0JBQW9CLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQzs7dUhBckJVLHlCQUF5QjsySEFBekIseUJBQXlCOzRGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXBQb3N0Ym95U2VydmljZSB9IGZyb20gJy4vbWFwLXBvc3Rib3kuc2VydmljZSc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNYXBSZW5kZXJlZEV2ZW50IH0gZnJvbSAnLi4vbWVzc2FnZXMnO1xuaW1wb3J0IHsgQWRkTGF5ZXJDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvYWRkLWxheWVyLmNvbW1hbmQnO1xuaW1wb3J0IHsgUGxhY2VMYXllckZlYXR1cmVzQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL3BsYWNlLWxheWVyLWZlYXR1cmVzLmNvbW1hbmQnO1xuaW1wb3J0IHsgUmVtb3ZlTGF5ZXJDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvcmVtb3ZlLWxheWVyLmNvbW1hbmQnO1xuaW1wb3J0IHsgQWRkVGlsZUNvbW1hbmQgfSBmcm9tICcuLi9tZXNzYWdlcy9jb21tYW5kcy9hZGQtdGlsZS5jb21tYW5kJztcbmltcG9ydCB7IFJlbW92ZVRpbGVDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvcmVtb3ZlLXRpbGUuY29tbWFuZCc7XG5pbXBvcnQgeyBQb3N0Ym95QWJzdHJhY3RSZWdpc3RyYXRvciB9IGZyb20gJ0BhcnRzdGVzaC9wb3N0Ym95JztcbmltcG9ydCB7IE1hcE1hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9tYXAtbWFuYWdlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IE1hcFN0YXRlU2VydmljZSB9IGZyb20gJy4vbWFwLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFwQ2xpY2tTZXJ2aWNlIH0gZnJvbSAnLi9tYXAtY2xpY2suc2VydmljZSc7XG5pbXBvcnQgeyBNYXBDbGlja0V2ZW50IH0gZnJvbSAnLi4vbWVzc2FnZXMvZXZlbnRzL21hcC1jbGljay5ldmVudCc7XG5pbXBvcnQgeyBDbG9zZVRvb2x0aXBDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvY2xvc2UtdG9vbHRpcC5jb21tYW5kJztcbmltcG9ydCB7IE1hcEZlYXR1cmVTZXJ2aWNlIH0gZnJvbSAnLi9tYXAtZmVhdHVyZS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpdFRvRmVhdHVyZXNDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvZml0LXRvLWZlYXR1cmVzLmNvbW1hbmQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTWVzc2FnZVJlZ2lzdHJhdG9yU2VydmljZSBleHRlbmRzIFBvc3Rib3lBYnN0cmFjdFJlZ2lzdHJhdG9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgc2VydmljZTogTWFwUG9zdGJveVNlcnZpY2UsXG4gICAgbWFuYWdlbWVudDogTWFwTWFuYWdlbWVudFNlcnZpY2UsXG4gICAgc3RhdGU6IE1hcFN0YXRlU2VydmljZSxcbiAgICBmZWF0dXJlOiBNYXBGZWF0dXJlU2VydmljZSxcbiAgICBpbnRlcmFjdGlvbjogTWFwQ2xpY2tTZXJ2aWNlLFxuICApIHtcbiAgICBzdXBlcihzZXJ2aWNlKTtcbiAgICB0aGlzLnJlZ2lzdGVyU2VydmljZXMoW21hbmFnZW1lbnQsIHN0YXRlLCBpbnRlcmFjdGlvbiwgZmVhdHVyZV0pO1xuICB9XG4gIHByb3RlY3RlZCBfdXAoKTogdm9pZCB7XG4gICAgdGhpcy5yZWdpc3RlclJlcGxheTxNYXBSZW5kZXJlZEV2ZW50PihNYXBSZW5kZXJlZEV2ZW50LklEKTtcbiAgICB0aGlzLnJlZ2lzdGVyUmVwbGF5PFBsYWNlTGF5ZXJGZWF0dXJlc0NvbW1hbmQ+KFBsYWNlTGF5ZXJGZWF0dXJlc0NvbW1hbmQuSUQpO1xuICAgIHRoaXMucmVnaXN0ZXJTdWJqZWN0PEFkZExheWVyQ29tbWFuZD4oQWRkTGF5ZXJDb21tYW5kLklEKTtcbiAgICB0aGlzLnJlZ2lzdGVyU3ViamVjdDxSZW1vdmVMYXllckNvbW1hbmQ+KFJlbW92ZUxheWVyQ29tbWFuZC5JRCk7XG4gICAgdGhpcy5yZWdpc3RlclN1YmplY3Q8QWRkVGlsZUNvbW1hbmQ+KEFkZFRpbGVDb21tYW5kLklEKTtcbiAgICB0aGlzLnJlZ2lzdGVyU3ViamVjdDxSZW1vdmVUaWxlQ29tbWFuZD4oUmVtb3ZlVGlsZUNvbW1hbmQuSUQpO1xuICAgIHRoaXMucmVnaXN0ZXJTdWJqZWN0PE1hcENsaWNrRXZlbnQ+KE1hcENsaWNrRXZlbnQuSUQpO1xuICAgIHRoaXMucmVnaXN0ZXJTdWJqZWN0PENsb3NlVG9vbHRpcENvbW1hbmQ+KENsb3NlVG9vbHRpcENvbW1hbmQuSUQpO1xuICAgIHRoaXMucmVnaXN0ZXJTdWJqZWN0PEZpdFRvRmVhdHVyZXNDb21tYW5kPihGaXRUb0ZlYXR1cmVzQ29tbWFuZC5JRCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -5,7 +5,7 @@ import { CommonModule } from '@angular/common';
|
|
|
5
5
|
import { Feature } from 'ol';
|
|
6
6
|
import { Point } from 'ol/geom';
|
|
7
7
|
import { GeoJSON, WKT } from 'ol/format';
|
|
8
|
-
import { getCenter } from 'ol/extent';
|
|
8
|
+
import { getCenter, createEmpty, extend } from 'ol/extent';
|
|
9
9
|
import { useGeographic, get } from 'ol/proj';
|
|
10
10
|
import { Subject } from 'rxjs';
|
|
11
11
|
import { PostboyService, PostboyAbstractRegistrator } from '@artstesh/postboy';
|
|
@@ -17,8 +17,11 @@ import { filter, first } from 'rxjs/operators';
|
|
|
17
17
|
import { XYZ, Vector } from 'ol/source';
|
|
18
18
|
import { Vector as Vector$1 } from 'ol/layer';
|
|
19
19
|
import Overlay from 'ol/Overlay';
|
|
20
|
+
import { bbox } from 'ol/loadingstrategy';
|
|
21
|
+
import { fromExtent } from 'ol/geom/Polygon';
|
|
22
|
+
import Cluster from 'ol/source/Cluster';
|
|
20
23
|
import Style from 'ol/style/Style';
|
|
21
|
-
import { Icon, Circle, Fill, Stroke } from 'ol/style';
|
|
24
|
+
import { Icon, Circle, Fill, Stroke, Text } from 'ol/style';
|
|
22
25
|
|
|
23
26
|
class DestructibleComponent {
|
|
24
27
|
constructor() {
|
|
@@ -122,6 +125,10 @@ class IdGenerator {
|
|
|
122
125
|
}
|
|
123
126
|
IdGenerator.collection = 'ABCDEFGHIJKLMNOPQRSTUVWXTZ0123456789'.split('');
|
|
124
127
|
|
|
128
|
+
class MapConstants {
|
|
129
|
+
}
|
|
130
|
+
MapConstants.FeatureInfo = 'f-info';
|
|
131
|
+
|
|
125
132
|
class MarkerModel {
|
|
126
133
|
constructor(lat, lng, id, info) {
|
|
127
134
|
this.lat = lat;
|
|
@@ -137,7 +144,7 @@ class MarkerModel {
|
|
|
137
144
|
const feature = new Feature(new Point([this.lng, this.lat]));
|
|
138
145
|
feature.setId(this.id);
|
|
139
146
|
if (this.info)
|
|
140
|
-
feature.set(
|
|
147
|
+
feature.set(MapConstants.FeatureInfo, this.info);
|
|
141
148
|
return feature;
|
|
142
149
|
}
|
|
143
150
|
}
|
|
@@ -191,10 +198,11 @@ class MapRenderedEvent extends GenericMessage {
|
|
|
191
198
|
MapRenderedEvent.ID = 'b6121807-3b89-4cd3-82cf-089d2cefdc4f';
|
|
192
199
|
|
|
193
200
|
class MapClickEvent extends GenericMessage {
|
|
194
|
-
constructor(coordinates, entities) {
|
|
201
|
+
constructor(coordinates, entities, features) {
|
|
195
202
|
super();
|
|
196
203
|
this.coordinates = coordinates;
|
|
197
204
|
this.entities = entities;
|
|
205
|
+
this.features = features;
|
|
198
206
|
}
|
|
199
207
|
get id() {
|
|
200
208
|
return MapClickEvent.ID;
|
|
@@ -269,6 +277,18 @@ class RemoveTileCommand extends GenericMessage {
|
|
|
269
277
|
}
|
|
270
278
|
RemoveTileCommand.ID = 'c36ccc0b-5638-4819-b148-2de57a59a5b7';
|
|
271
279
|
|
|
280
|
+
class FitToFeaturesCommand extends GenericMessage {
|
|
281
|
+
constructor(features, zoomAfter = 0) {
|
|
282
|
+
super();
|
|
283
|
+
this.features = features;
|
|
284
|
+
this.zoomAfter = zoomAfter;
|
|
285
|
+
}
|
|
286
|
+
get id() {
|
|
287
|
+
return FitToFeaturesCommand.ID;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
FitToFeaturesCommand.ID = '76cdc091-3793-4b6c-82f7-1e0334cf08a8';
|
|
291
|
+
|
|
272
292
|
class MapPostboyService extends PostboyService {
|
|
273
293
|
constructor() {
|
|
274
294
|
super(...arguments);
|
|
@@ -323,11 +343,14 @@ class MapManagementService {
|
|
|
323
343
|
}
|
|
324
344
|
observePlaceFeatures() {
|
|
325
345
|
this.postboy.subscribe(PlaceLayerFeaturesCommand.ID).subscribe((c) => {
|
|
326
|
-
var _a
|
|
346
|
+
var _a;
|
|
327
347
|
if (!this.layers[c.layer])
|
|
328
348
|
return;
|
|
329
|
-
|
|
330
|
-
(
|
|
349
|
+
let source = (_a = this.layers[c.layer]) === null || _a === void 0 ? void 0 : _a.getSource();
|
|
350
|
+
if (!!source['getSource'])
|
|
351
|
+
source = source === null || source === void 0 ? void 0 : source.getSource();
|
|
352
|
+
source === null || source === void 0 ? void 0 : source.clear();
|
|
353
|
+
source === null || source === void 0 ? void 0 : source.addFeatures(c.features);
|
|
331
354
|
});
|
|
332
355
|
}
|
|
333
356
|
observeRemoveLayer() {
|
|
@@ -359,6 +382,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
359
382
|
type: Injectable
|
|
360
383
|
}], ctorParameters: function () { return [{ type: MapPostboyService }]; } });
|
|
361
384
|
|
|
385
|
+
class MapFeatureService {
|
|
386
|
+
constructor(postboy) {
|
|
387
|
+
this.postboy = postboy;
|
|
388
|
+
}
|
|
389
|
+
up() {
|
|
390
|
+
this.observeMapRender();
|
|
391
|
+
this.observeFitToFeatures();
|
|
392
|
+
}
|
|
393
|
+
observeMapRender() {
|
|
394
|
+
this.postboy.subscribe(MapRenderedEvent.ID).subscribe((m) => {
|
|
395
|
+
this.map = m.map;
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
observeFitToFeatures() {
|
|
399
|
+
this.postboy.subscribe(FitToFeaturesCommand.ID).subscribe((m) => {
|
|
400
|
+
this.fitToGeometries(m.features.map((f) => f.getGeometry()), m.zoomAfter);
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
fitToGeometries(geometries, zoomAfter) {
|
|
404
|
+
if (!(geometries === null || geometries === void 0 ? void 0 : geometries.length) || !this.map)
|
|
405
|
+
return;
|
|
406
|
+
const extent = createEmpty();
|
|
407
|
+
geometries.forEach((g) => extend(extent, g.getExtent()));
|
|
408
|
+
this.map.getView().fit(extent);
|
|
409
|
+
this.map.getView().setZoom(this.map.getView().getZoom() + zoomAfter);
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
MapFeatureService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapFeatureService, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
413
|
+
MapFeatureService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapFeatureService });
|
|
414
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapFeatureService, decorators: [{
|
|
415
|
+
type: Injectable
|
|
416
|
+
}], ctorParameters: function () { return [{ type: MapPostboyService }]; } });
|
|
417
|
+
|
|
362
418
|
class MapClickService {
|
|
363
419
|
constructor(postboy) {
|
|
364
420
|
this.postboy = postboy;
|
|
@@ -377,7 +433,7 @@ class MapClickService {
|
|
|
377
433
|
}
|
|
378
434
|
onClick(ev) {
|
|
379
435
|
var _a;
|
|
380
|
-
const model = new MapClickEvent(ev.coordinate, {});
|
|
436
|
+
const model = new MapClickEvent(ev.coordinate, {}, {});
|
|
381
437
|
(_a = this.map) === null || _a === void 0 ? void 0 : _a.forEachFeatureAtPixel(ev.pixel, (f, l) => {
|
|
382
438
|
this.getFeatureCollectionWithInner([f])
|
|
383
439
|
.filter((f) => f.getId() != null)
|
|
@@ -385,7 +441,10 @@ class MapClickService {
|
|
|
385
441
|
let layerName = l.get('name');
|
|
386
442
|
if (!model.entities[layerName])
|
|
387
443
|
model.entities[layerName] = [];
|
|
388
|
-
model.
|
|
444
|
+
if (!model.features[layerName])
|
|
445
|
+
model.features[layerName] = [];
|
|
446
|
+
model.entities[layerName].push(Object.assign({ id: fs.getId() }, fs.get(MapConstants.FeatureInfo)));
|
|
447
|
+
model.features[layerName].push(fs);
|
|
389
448
|
});
|
|
390
449
|
});
|
|
391
450
|
return model;
|
|
@@ -406,9 +465,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
406
465
|
}], ctorParameters: function () { return [{ type: MapPostboyService }]; } });
|
|
407
466
|
|
|
408
467
|
class MessageRegistratorService extends PostboyAbstractRegistrator {
|
|
409
|
-
constructor(service, management, state, interaction) {
|
|
468
|
+
constructor(service, management, state, feature, interaction) {
|
|
410
469
|
super(service);
|
|
411
|
-
this.registerServices([management, state, interaction]);
|
|
470
|
+
this.registerServices([management, state, interaction, feature]);
|
|
412
471
|
}
|
|
413
472
|
_up() {
|
|
414
473
|
this.registerReplay(MapRenderedEvent.ID);
|
|
@@ -419,13 +478,14 @@ class MessageRegistratorService extends PostboyAbstractRegistrator {
|
|
|
419
478
|
this.registerSubject(RemoveTileCommand.ID);
|
|
420
479
|
this.registerSubject(MapClickEvent.ID);
|
|
421
480
|
this.registerSubject(CloseTooltipCommand.ID);
|
|
481
|
+
this.registerSubject(FitToFeaturesCommand.ID);
|
|
422
482
|
}
|
|
423
483
|
}
|
|
424
|
-
MessageRegistratorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MessageRegistratorService, deps: [{ token: MapPostboyService }, { token: MapManagementService }, { token: MapStateService }, { token: MapClickService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
484
|
+
MessageRegistratorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MessageRegistratorService, deps: [{ token: MapPostboyService }, { token: MapManagementService }, { token: MapStateService }, { token: MapFeatureService }, { token: MapClickService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
425
485
|
MessageRegistratorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MessageRegistratorService });
|
|
426
486
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MessageRegistratorService, decorators: [{
|
|
427
487
|
type: Injectable
|
|
428
|
-
}], ctorParameters: function () { return [{ type: MapPostboyService }, { type: MapManagementService }, { type: MapStateService }, { type: MapClickService }]; } });
|
|
488
|
+
}], ctorParameters: function () { return [{ type: MapPostboyService }, { type: MapManagementService }, { type: MapStateService }, { type: MapFeatureService }, { type: MapClickService }]; } });
|
|
429
489
|
|
|
430
490
|
class MapPlateFactory {
|
|
431
491
|
build(settings) {
|
|
@@ -542,10 +602,10 @@ class MapPlateComponent extends DestructibleComponent {
|
|
|
542
602
|
}
|
|
543
603
|
}
|
|
544
604
|
MapPlateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPlateComponent, deps: [{ token: i0.ElementRef }, { token: MapPostboyService }, { token: MapPlateFactory }, { token: MessageRegistratorService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
545
|
-
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, MapClickService], 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 });
|
|
605
|
+
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, MapClickService, MapFeatureService], 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 });
|
|
546
606
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPlateComponent, decorators: [{
|
|
547
607
|
type: Component,
|
|
548
|
-
args: [{ selector: 'lib-map-plate', changeDetection: ChangeDetectionStrategy.OnPush, providers: [MessageRegistratorService, MapStateService, MapManagementService, MapClickService], 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"] }]
|
|
608
|
+
args: [{ selector: 'lib-map-plate', changeDetection: ChangeDetectionStrategy.OnPush, providers: [MessageRegistratorService, MapStateService, MapManagementService, MapClickService, MapFeatureService], 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"] }]
|
|
549
609
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: MapPostboyService }, { type: MapPlateFactory }, { type: MessageRegistratorService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { settings: [{
|
|
550
610
|
type: Input
|
|
551
611
|
}] } });
|
|
@@ -960,6 +1020,175 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
960
1020
|
type: Input
|
|
961
1021
|
}] } });
|
|
962
1022
|
|
|
1023
|
+
class ClusterLayerSettings {
|
|
1024
|
+
constructor() {
|
|
1025
|
+
this.name = IdGenerator.get();
|
|
1026
|
+
this.zIndex = 1;
|
|
1027
|
+
this.maxZoom = 19;
|
|
1028
|
+
this.minZoom = 0;
|
|
1029
|
+
this.distance = 20;
|
|
1030
|
+
this.bbox = false;
|
|
1031
|
+
}
|
|
1032
|
+
static copy(model) {
|
|
1033
|
+
const result = new ClusterLayerSettings();
|
|
1034
|
+
result.name = model.name;
|
|
1035
|
+
result.maxZoom = model.maxZoom;
|
|
1036
|
+
result.minZoom = model.minZoom;
|
|
1037
|
+
result.zIndex = model.zIndex;
|
|
1038
|
+
result.bbox = model.bbox;
|
|
1039
|
+
result.distance = model.distance;
|
|
1040
|
+
result.style = model.style;
|
|
1041
|
+
return result;
|
|
1042
|
+
}
|
|
1043
|
+
setZIndex(zIndex) {
|
|
1044
|
+
return ClusterLayerSettings.copy(Object.assign(Object.assign({}, this), { zIndex }));
|
|
1045
|
+
}
|
|
1046
|
+
setDistance(distance) {
|
|
1047
|
+
return ClusterLayerSettings.copy(Object.assign(Object.assign({}, this), { distance }));
|
|
1048
|
+
}
|
|
1049
|
+
setName(name) {
|
|
1050
|
+
return ClusterLayerSettings.copy(Object.assign(Object.assign({}, this), { name }));
|
|
1051
|
+
}
|
|
1052
|
+
setMaxZoom(maxZoom) {
|
|
1053
|
+
return ClusterLayerSettings.copy(Object.assign(Object.assign({}, this), { maxZoom }));
|
|
1054
|
+
}
|
|
1055
|
+
setMinZoom(minZoom) {
|
|
1056
|
+
return ClusterLayerSettings.copy(Object.assign(Object.assign({}, this), { minZoom }));
|
|
1057
|
+
}
|
|
1058
|
+
setBbox(bbox) {
|
|
1059
|
+
return ClusterLayerSettings.copy(Object.assign(Object.assign({}, this), { bbox }));
|
|
1060
|
+
}
|
|
1061
|
+
setStyle(style) {
|
|
1062
|
+
return ClusterLayerSettings.copy(Object.assign(Object.assign({}, this), { style }));
|
|
1063
|
+
}
|
|
1064
|
+
isSame(model) {
|
|
1065
|
+
if (this.maxZoom !== model.maxZoom)
|
|
1066
|
+
return false;
|
|
1067
|
+
if (this.minZoom !== model.minZoom)
|
|
1068
|
+
return false;
|
|
1069
|
+
if (this.zIndex !== model.zIndex)
|
|
1070
|
+
return false;
|
|
1071
|
+
if (this.name !== model.name)
|
|
1072
|
+
return false;
|
|
1073
|
+
if (this.distance !== model.distance)
|
|
1074
|
+
return false;
|
|
1075
|
+
if (this.bbox !== model.bbox)
|
|
1076
|
+
return false;
|
|
1077
|
+
if (this.style !== model.style)
|
|
1078
|
+
return false;
|
|
1079
|
+
return true;
|
|
1080
|
+
}
|
|
1081
|
+
}
|
|
1082
|
+
|
|
1083
|
+
class ClusterLayerManager {
|
|
1084
|
+
constructor(settings, layer, postboy) {
|
|
1085
|
+
this.settings = settings;
|
|
1086
|
+
this.layer = layer;
|
|
1087
|
+
this.postboy = postboy;
|
|
1088
|
+
this.observeClick();
|
|
1089
|
+
}
|
|
1090
|
+
observeClick() {
|
|
1091
|
+
this.postboy.subscribe(MapClickEvent.ID).subscribe((m) => {
|
|
1092
|
+
var _a, _b;
|
|
1093
|
+
if (((_b = (_a = m.features[this.settings.name]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 1) {
|
|
1094
|
+
this.postboy.fire(new FitToFeaturesCommand(m.features[this.settings.name], -1));
|
|
1095
|
+
}
|
|
1096
|
+
});
|
|
1097
|
+
}
|
|
1098
|
+
}
|
|
1099
|
+
|
|
1100
|
+
class ClusterLayerFactory {
|
|
1101
|
+
build(settings, postboy) {
|
|
1102
|
+
const source = new Vector({
|
|
1103
|
+
strategy: settings.bbox ? bbox : undefined,
|
|
1104
|
+
});
|
|
1105
|
+
const cluster = new Cluster({
|
|
1106
|
+
distance: settings.distance,
|
|
1107
|
+
source: source,
|
|
1108
|
+
geometryFunction: (feature) => {
|
|
1109
|
+
var _a;
|
|
1110
|
+
const geom = feature.getGeometry();
|
|
1111
|
+
if ((geom === null || geom === void 0 ? void 0 : geom.getType()) == 'Point') {
|
|
1112
|
+
return geom;
|
|
1113
|
+
}
|
|
1114
|
+
else if ((geom === null || geom === void 0 ? void 0 : geom.getType()) == 'Polygon') {
|
|
1115
|
+
return geom === null || geom === void 0 ? void 0 : geom.getInteriorPoint();
|
|
1116
|
+
}
|
|
1117
|
+
else if ((geom === null || geom === void 0 ? void 0 : geom.getType()) == 'MultiPolygon') {
|
|
1118
|
+
return (_a = fromExtent(geom.getExtent())) === null || _a === void 0 ? void 0 : _a.getInteriorPoint();
|
|
1119
|
+
}
|
|
1120
|
+
return undefined;
|
|
1121
|
+
},
|
|
1122
|
+
});
|
|
1123
|
+
const layer = new Vector$1({
|
|
1124
|
+
source: cluster,
|
|
1125
|
+
maxZoom: settings.maxZoom || undefined,
|
|
1126
|
+
minZoom: settings.minZoom || undefined,
|
|
1127
|
+
zIndex: settings.zIndex || 0,
|
|
1128
|
+
});
|
|
1129
|
+
layer.setStyle(this.styleFunc(settings));
|
|
1130
|
+
layer.set('name', settings.name);
|
|
1131
|
+
return new ClusterLayerManager(settings, layer, postboy);
|
|
1132
|
+
}
|
|
1133
|
+
styleFunc(settings) {
|
|
1134
|
+
return (feature) => {
|
|
1135
|
+
const features = feature.get('features');
|
|
1136
|
+
if (!settings.style)
|
|
1137
|
+
return undefined;
|
|
1138
|
+
return settings.style(features.map((f) => (Object.assign({ id: f.getId() }, f.get(MapConstants.FeatureInfo)))));
|
|
1139
|
+
};
|
|
1140
|
+
}
|
|
1141
|
+
}
|
|
1142
|
+
ClusterLayerFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ClusterLayerFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1143
|
+
ClusterLayerFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ClusterLayerFactory, providedIn: 'root' });
|
|
1144
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ClusterLayerFactory, decorators: [{
|
|
1145
|
+
type: Injectable,
|
|
1146
|
+
args: [{
|
|
1147
|
+
providedIn: 'root',
|
|
1148
|
+
}]
|
|
1149
|
+
}] });
|
|
1150
|
+
|
|
1151
|
+
class ClusterLayerComponent extends DestructibleComponent {
|
|
1152
|
+
constructor(postboy, factory) {
|
|
1153
|
+
super();
|
|
1154
|
+
this.postboy = postboy;
|
|
1155
|
+
this.factory = factory;
|
|
1156
|
+
this.manager = null;
|
|
1157
|
+
this._settings = new ClusterLayerSettings();
|
|
1158
|
+
this.onDestroy = () => this.removeLayer();
|
|
1159
|
+
}
|
|
1160
|
+
ngOnInit() {
|
|
1161
|
+
this.postboy
|
|
1162
|
+
.subscribe(MapRenderedEvent.ID)
|
|
1163
|
+
.pipe(filter((m) => !!m), first())
|
|
1164
|
+
.subscribe((m) => this.initLayer());
|
|
1165
|
+
}
|
|
1166
|
+
set settings(value) {
|
|
1167
|
+
if (!value || this._settings.isSame(value))
|
|
1168
|
+
return;
|
|
1169
|
+
this._settings = value;
|
|
1170
|
+
this.initLayer();
|
|
1171
|
+
}
|
|
1172
|
+
initLayer() {
|
|
1173
|
+
this.removeLayer();
|
|
1174
|
+
this.manager = this.factory.build(this._settings, this.postboy);
|
|
1175
|
+
this.postboy.fire(new AddLayerCommand(this.manager.layer));
|
|
1176
|
+
}
|
|
1177
|
+
removeLayer() {
|
|
1178
|
+
var _a;
|
|
1179
|
+
if ((_a = this.manager) === null || _a === void 0 ? void 0 : _a.layer)
|
|
1180
|
+
this.postboy.fire(new RemoveLayerCommand(this.manager.layer));
|
|
1181
|
+
}
|
|
1182
|
+
}
|
|
1183
|
+
ClusterLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ClusterLayerComponent, deps: [{ token: MapPostboyService }, { token: ClusterLayerFactory }], target: i0.ɵɵFactoryTarget.Component });
|
|
1184
|
+
ClusterLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ClusterLayerComponent, selector: "lib-cluster-layer", inputs: { settings: "settings" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1185
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ClusterLayerComponent, decorators: [{
|
|
1186
|
+
type: Component,
|
|
1187
|
+
args: [{ selector: 'lib-cluster-layer', template: '', changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
1188
|
+
}], ctorParameters: function () { return [{ type: MapPostboyService }, { type: ClusterLayerFactory }]; }, propDecorators: { settings: [{
|
|
1189
|
+
type: Input
|
|
1190
|
+
}] } });
|
|
1191
|
+
|
|
963
1192
|
class MapModule {
|
|
964
1193
|
}
|
|
965
1194
|
MapModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
@@ -970,12 +1199,14 @@ MapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.
|
|
|
970
1199
|
FeatureLayerComponent,
|
|
971
1200
|
MarkersComponent,
|
|
972
1201
|
TooltipComponent,
|
|
973
|
-
PolygonsComponent
|
|
1202
|
+
PolygonsComponent,
|
|
1203
|
+
ClusterLayerComponent], imports: [CommonModule], exports: [MapPlateComponent,
|
|
974
1204
|
FeatureLayerComponent,
|
|
975
1205
|
MarkersComponent,
|
|
976
1206
|
TileLayerComponent,
|
|
977
1207
|
TooltipComponent,
|
|
978
|
-
PolygonsComponent
|
|
1208
|
+
PolygonsComponent,
|
|
1209
|
+
ClusterLayerComponent] });
|
|
979
1210
|
MapModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapModule, imports: [CommonModule] });
|
|
980
1211
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapModule, decorators: [{
|
|
981
1212
|
type: NgModule,
|
|
@@ -990,6 +1221,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
990
1221
|
MarkersComponent,
|
|
991
1222
|
TooltipComponent,
|
|
992
1223
|
PolygonsComponent,
|
|
1224
|
+
ClusterLayerComponent,
|
|
993
1225
|
],
|
|
994
1226
|
exports: [
|
|
995
1227
|
MapPlateComponent,
|
|
@@ -998,6 +1230,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
998
1230
|
TileLayerComponent,
|
|
999
1231
|
TooltipComponent,
|
|
1000
1232
|
PolygonsComponent,
|
|
1233
|
+
ClusterLayerComponent,
|
|
1001
1234
|
],
|
|
1002
1235
|
}]
|
|
1003
1236
|
}] });
|
|
@@ -1023,6 +1256,10 @@ class MarkerStyleHelper {
|
|
|
1023
1256
|
}),
|
|
1024
1257
|
});
|
|
1025
1258
|
}
|
|
1259
|
+
static withText(style, text) {
|
|
1260
|
+
style.setText(text);
|
|
1261
|
+
return style;
|
|
1262
|
+
}
|
|
1026
1263
|
}
|
|
1027
1264
|
|
|
1028
1265
|
class PolygonStyleHelper {
|
|
@@ -1039,6 +1276,19 @@ class PolygonStyleHelper {
|
|
|
1039
1276
|
}
|
|
1040
1277
|
}
|
|
1041
1278
|
|
|
1279
|
+
class TextStyleHelper {
|
|
1280
|
+
static get(text, font, color) {
|
|
1281
|
+
return new Text({
|
|
1282
|
+
text: text,
|
|
1283
|
+
font: font,
|
|
1284
|
+
textAlign: 'center',
|
|
1285
|
+
fill: new Fill({
|
|
1286
|
+
color: color,
|
|
1287
|
+
}),
|
|
1288
|
+
});
|
|
1289
|
+
}
|
|
1290
|
+
}
|
|
1291
|
+
|
|
1042
1292
|
/*
|
|
1043
1293
|
* Public API Surface of maps
|
|
1044
1294
|
*/
|
|
@@ -1047,5 +1297,5 @@ class PolygonStyleHelper {
|
|
|
1047
1297
|
* Generated bundle index. Do not edit.
|
|
1048
1298
|
*/
|
|
1049
1299
|
|
|
1050
|
-
export { CallbackMessage, CloseTooltipCommand, FeatureLayerComponent, FeatureLayerSettings, GenericMessage, MapClickEvent, MapLyrs, MapLyrsLabel, MapModule, MapPlateComponent, MapPostboyService, MapRenderedEvent, MapSettings, MarkerModel, MarkerStyleHelper, MarkersComponent, MessageRegistratorService, OsmTileLayerComponent, PolygonModel, PolygonStyleHelper, PolygonsComponent, TileLayerComponent, TileLayerSettings, TooltipComponent, TooltipSettings };
|
|
1300
|
+
export { CallbackMessage, CloseTooltipCommand, ClusterLayerComponent, ClusterLayerSettings, FeatureLayerComponent, FeatureLayerSettings, GenericMessage, MapClickEvent, MapLyrs, MapLyrsLabel, MapModule, MapPlateComponent, MapPostboyService, MapRenderedEvent, MapSettings, MarkerModel, MarkerStyleHelper, MarkersComponent, MessageRegistratorService, OsmTileLayerComponent, PolygonModel, PolygonStyleHelper, PolygonsComponent, TextStyleHelper, TileLayerComponent, TileLayerSettings, TooltipComponent, TooltipSettings };
|
|
1051
1301
|
//# sourceMappingURL=maps-components-src-map.mjs.map
|