@artstesh/maps 5.0.8 → 5.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm2022/map/helpers/index.mjs +2 -1
- package/dist/esm2022/map/helpers/stringify-feature.helper.mjs +58 -0
- package/dist/esm2022/map/map-plate/map-plate.component.mjs +4 -1
- package/dist/esm2022/map/messages/queries/generate-draw.query.mjs +17 -0
- package/dist/esm2022/map/models/drawing-type.enum.mjs +2 -1
- package/dist/esm2022/map/services/drawing/drawing-generation.service.mjs +29 -0
- package/dist/esm2022/map/services/drawing/drawing.service.mjs +13 -13
- package/dist/esm2022/map/services/message-registrator.service.mjs +8 -5
- package/dist/esm2022/src/map/helpers/index.mjs +2 -1
- package/dist/esm2022/src/map/helpers/stringify-feature.helper.mjs +58 -0
- package/dist/esm2022/src/map/map-plate/map-plate.component.mjs +4 -1
- package/dist/esm2022/src/map/messages/queries/generate-draw.query.mjs +17 -0
- package/dist/esm2022/src/map/models/drawing-type.enum.mjs +2 -1
- package/dist/esm2022/src/map/services/drawing/drawing-generation.service.mjs +29 -0
- package/dist/esm2022/src/map/services/drawing/drawing.service.mjs +13 -13
- package/dist/esm2022/src/map/services/message-registrator.service.mjs +8 -5
- package/dist/fesm2022/maps-components-src-map.mjs +113 -18
- package/dist/fesm2022/maps-components-src-map.mjs.map +1 -1
- package/dist/fesm2022/maps-components.mjs +113 -18
- package/dist/fesm2022/maps-components.mjs.map +1 -1
- package/dist/map/helpers/index.d.ts +1 -0
- package/dist/map/helpers/stringify-feature.helper.d.ts +8 -0
- package/dist/map/messages/queries/generate-draw.query.d.ts +14 -0
- package/dist/map/models/drawing-type.enum.d.ts +2 -1
- package/dist/map/services/drawing/drawing-generation.service.d.ts +10 -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/stringify-feature.helper.d.ts +8 -0
- package/dist/src/map/messages/queries/generate-draw.query.d.ts +14 -0
- package/dist/src/map/models/drawing-type.enum.d.ts +2 -1
- package/dist/src/map/services/drawing/drawing-generation.service.d.ts +10 -0
- package/dist/src/map/services/message-registrator.service.d.ts +2 -1
- package/package.json +1 -1
|
@@ -7,9 +7,9 @@ import { MapRenderedEvent } from '../../messages';
|
|
|
7
7
|
import { GetLayerQuery } from '../../messages/queries/get-layer.query';
|
|
8
8
|
import { MapConstants } from '../../models/map.constants';
|
|
9
9
|
import { Vector as Source } from 'ol/source';
|
|
10
|
-
import {
|
|
11
|
-
import { DrawingType, FeatureOutputFormat } from '../../models';
|
|
10
|
+
import { FeatureOutputFormat } from '../../models';
|
|
12
11
|
import { GeoJSON, WKT } from 'ol/format';
|
|
12
|
+
import { GenerateDrawQuery } from '../../messages/queries/generate-draw.query';
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
14
14
|
import * as i1 from "../map-postboy.service";
|
|
15
15
|
export class DrawingService {
|
|
@@ -26,17 +26,17 @@ export class DrawingService {
|
|
|
26
26
|
this.clearInteraction(l);
|
|
27
27
|
return;
|
|
28
28
|
}
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
this.onEnd(evt, ev, l);
|
|
29
|
+
const drawQuery = new GenerateDrawQuery(l, ev.style, ev.type);
|
|
30
|
+
drawQuery.result.subscribe((draw) => {
|
|
31
|
+
const cancelSub = this.observeCancelation(ev, l);
|
|
32
|
+
this.drawInteraction = draw;
|
|
33
|
+
this.map?.addInteraction(this.drawInteraction);
|
|
34
|
+
this.drawInteraction.on('drawend', (evt) => {
|
|
35
|
+
cancelSub.unsubscribe();
|
|
36
|
+
this.onEnd(evt, ev, l);
|
|
37
|
+
});
|
|
39
38
|
});
|
|
39
|
+
this.postboy.fire(drawQuery);
|
|
40
40
|
});
|
|
41
41
|
});
|
|
42
42
|
this.observeMapRender();
|
|
@@ -79,4 +79,4 @@ export class DrawingService {
|
|
|
79
79
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrawingService, decorators: [{
|
|
80
80
|
type: Injectable
|
|
81
81
|
}], ctorParameters: function () { return [{ type: i1.MapPostboyService }]; } });
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2luZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvc2VydmljZXMvZHJhd2luZy9kcmF3aW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFcEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUcxRCxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUU3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7OztBQUcvRSxNQUFNLE9BQU8sY0FBYztJQUlMO0lBSFosZUFBZSxDQUFRO0lBQ3ZCLEdBQUcsQ0FBTztJQUVsQixZQUFvQixPQUEwQjtRQUExQixZQUFPLEdBQVAsT0FBTyxDQUFtQjtJQUFHLENBQUM7SUFFbEQsRUFBRTtRQUNBLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFzQixtQkFBbUIsQ0FBQyxFQUFFLENB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LENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFxQztRQUM1RCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQzFCLElBQUksQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2xELEtBQUssRUFBRSxTQUFTLENBQUMsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNsQztRQUNELFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLG9CQUFvQixFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN2RSxDQUFDO3dHQWxFVSxjQUFjOzRHQUFkLGNBQWM7OzRGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUG9zdGJveURlcGVuZGluZ1NlcnZpY2UgfSBmcm9tICdAYXJ0c3Rlc2gvcG9zdGJveSc7XG5pbXBvcnQgeyBNYXBQb3N0Ym95U2VydmljZSB9IGZyb20gJy4uL21hcC1wb3N0Ym95LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RhcnREcmF3aW5nQ29tbWFuZCB9IGZyb20gJy4uLy4uL21lc3NhZ2VzL2NvbW1hbmRzL3N0YXJ0LWRyYXdpbmcuY29tbWFuZCc7XG5pbXBvcnQgeyBDYW5jZWxEcmF3aW5nQ29tbWFuZCB9IGZyb20gJy4uLy4uL21lc3NhZ2VzL2NvbW1hbmRzL2NhbmNlbC1kcmF3aW5nLmNvbW1hbmQnO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEcmF3aW5nRmluaXNoZWRFdmVudCB9IGZyb20gJy4uLy4uL21lc3NhZ2VzL2V2ZW50cy9kcmF3aW5nLWZpbmlzaGVkLmV2ZW50JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWFwUmVuZGVyZWRFdmVudCB9IGZyb20gJy4uLy4uL21lc3NhZ2VzJztcbmltcG9ydCB7IEdldExheWVyUXVlcnkgfSBmcm9tICcuLi8uLi9tZXNzYWdlcy9xdWVyaWVzL2dldC1sYXllci5xdWVyeSc7XG5pbXBvcnQgeyBNYXBDb25zdGFudHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvbWFwLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBWZWN0b3IgYXMgTGF5ZXIgfSBmcm9tICdvbC9sYXllcic7XG5pbXBvcnQgVmVjdG9yU291cmNlIGZyb20gJ29sL3NvdXJjZS9WZWN0b3InO1xuaW1wb3J0IHsgVmVjdG9yIGFzIFNvdXJjZSB9IGZyb20gJ29sL3NvdXJjZSc7XG5pbXBvcnQgeyBEcmF3IH0gZnJvbSAnb2wvaW50ZXJhY3Rpb24nO1xuaW1wb3J0IHsgRmVhdHVyZU91dHB1dEZvcm1hdCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBNYXAgfSBmcm9tICdvbCc7XG5pbXBvcnQgeyBEcmF3RXZlbnQgfSBmcm9tICdvbC9pbnRlcmFjdGlvbi9EcmF3JztcbmltcG9ydCB7IEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbSc7XG5pbXBvcnQgeyBHZW9KU09OLCBXS1QgfSBmcm9tICdvbC9mb3JtYXQnO1xuaW1wb3J0IHsgR2VuZXJhdGVEcmF3UXVlcnkgfSBmcm9tICcuLi8uLi9tZXNzYWdlcy9xdWVyaWVzL2dlbmVyYXRlLWRyYXcucXVlcnknO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRHJhd2luZ1NlcnZpY2UgaW1wbGVtZW50cyBJUG9zdGJveURlcGVuZGluZ1NlcnZpY2Uge1xuICBwcml2YXRlIGRyYXdJbnRlcmFjdGlvbj86IERyYXc7XG4gIHByaXZhdGUgbWFwPzogTWFwO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcG9zdGJveTogTWFwUG9zdGJveVNlcnZpY2UpIHt9XG5cbiAgdXAoKTogdm9pZCB7XG4gICAgdGhpcy5wb3N0Ym95LnN1YnNjcmliZTxTdGFydERyYXdpbmdDb21tYW5kPihTdGFydERyYXdpbmdDb21tYW5kLklEKS5zdWJzY3JpYmUoKGV2KSA9PiB7XG4gICAgICB0aGlzLmRyYXcoKGwpID0+IHtcbiAgICAgICAgaWYgKCFsIHx8ICF0aGlzLm1hcCkge1xuICAgICAgICAgIHRoaXMuY2xlYXJJbnRlcmFjdGlvbihsKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZHJhd1F1ZXJ5ID0gbmV3IEdlbmVyYXRlRHJhd1F1ZXJ5KGwsIGV2LnN0eWxlLCBldi50eXBlKTtcbiAgICAgICAgZHJhd1F1ZXJ5LnJlc3VsdC5zdWJzY3JpYmUoKGRyYXcpID0+IHtcbiAgICAgICAgICBjb25zdCBjYW5jZWxTdWIgPSB0aGlzLm9ic2VydmVDYW5jZWxhdGlvbihldiwgbCk7XG4gICAgICAgICAgdGhpcy5kcmF3SW50ZXJhY3Rpb24gPSBkcmF3O1xuICAgICAgICAgIHRoaXMubWFwPy5hZGRJbnRlcmFjdGlvbih0aGlzLmRyYXdJbnRlcmFjdGlvbik7XG4gICAgICAgICAgdGhpcy5kcmF3SW50ZXJhY3Rpb24ub24oJ2RyYXdlbmQnLCAoZXZ0OiBEcmF3RXZlbnQpID0+IHtcbiAgICAgICAgICAgIGNhbmNlbFN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5vbkVuZChldnQsIGV2LCBsKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucG9zdGJveS5maXJlKGRyYXdRdWVyeSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICB0aGlzLm9ic2VydmVNYXBSZW5kZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgb25FbmQoZXZ0OiBEcmF3RXZlbnQsIGNvbW1hbmQ6IFN0YXJ0RHJhd2luZ0NvbW1hbmQsIGxheWVyOiBMYXllcjxWZWN0b3JTb3VyY2U8R2VvbWV0cnk+Pik6IHZvaWQge1xuICAgIGNvbW1hbmQuZmluaXNoKFxuICAgICAgY29tbWFuZC5mb3JtYXQgPT09IEZlYXR1cmVPdXRwdXRGb3JtYXQuR2VvSnNvblxuICAgICAgICA/IG5ldyBHZW9KU09OKCkud3JpdGVGZWF0dXJlKGV2dC5mZWF0dXJlKVxuICAgICAgICA6IG5ldyBXS1QoKS53cml0ZUZlYXR1cmUoZXZ0LmZlYXR1cmUpLFxuICAgICk7XG4gICAgdGhpcy5jbGVhckludGVyYWN0aW9uKGxheWVyKTtcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZU1hcFJlbmRlcigpIHtcbiAgICB0aGlzLnBvc3Rib3kuc3Vic2NyaWJlPE1hcFJlbmRlcmVkRXZlbnQ+KE1hcFJlbmRlcmVkRXZlbnQuSUQpLnN1YnNjcmliZSgobSkgPT4ge1xuICAgICAgdGhpcy5tYXAgPSBtLm1hcDtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZHJhdyhhY3Rpb246IChsYXllcjogTGF5ZXI8VmVjdG9yU291cmNlPGFueT4+IHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIGNvbnN0IHF1ZXJ5ID0gbmV3IEdldExheWVyUXVlcnkoTWFwQ29uc3RhbnRzLkRyYXdpbmdMYXllcklkKTtcbiAgICBxdWVyeS5yZXN1bHQuc3Vic2NyaWJlKChsKSA9PiBhY3Rpb24obCkpO1xuICAgIHRoaXMucG9zdGJveS5maXJlKHF1ZXJ5KTtcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZUNhbmNlbGF0aW9uKGV2OiBTdGFydERyYXdpbmdDb21tYW5kLCBsYXllcjogTGF5ZXI8VmVjdG9yU291cmNlPGFueT4+IHwgbnVsbCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMucG9zdGJveVxuICAgICAgLnN1YnNjcmliZTxDYW5jZWxEcmF3aW5nQ29tbWFuZD4oQ2FuY2VsRHJhd2luZ0NvbW1hbmQuSUQpXG4gICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGV2LmZpbmlzaChudWxsKTtcbiAgICAgICAgdGhpcy5jbGVhckludGVyYWN0aW9uKGxheWVyKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckludGVyYWN0aW9uKGxheWVyOiBMYXllcjxTb3VyY2U8R2VvbWV0cnk+PiB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAoISF0aGlzLmRyYXdJbnRlcmFjdGlvbikge1xuICAgICAgdGhpcy5tYXA/LnJlbW92ZUludGVyYWN0aW9uKHRoaXMuZHJhd0ludGVyYWN0aW9uKTtcbiAgICAgIGxheWVyPy5zZXRTb3VyY2UobmV3IFNvdXJjZSh7fSkpO1xuICAgIH1cbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucG9zdGJveS5maXJlKG5ldyBEcmF3aW5nRmluaXNoZWRFdmVudCgpKSwgMzAwKTtcbiAgfVxufVxuIl19
|
|
@@ -14,6 +14,7 @@ import { CancelDrawingCommand } from '../messages/commands/cancel-drawing.comman
|
|
|
14
14
|
import { StartDrawingCommand } from '../messages/commands/start-drawing.command';
|
|
15
15
|
import { GetLayerQuery } from '../messages/queries/get-layer.query';
|
|
16
16
|
import { DrawingFinishedEvent } from '../messages/events/drawing-finished.event';
|
|
17
|
+
import { GenerateDrawQuery } from '../messages/queries/generate-draw.query';
|
|
17
18
|
import * as i0 from "@angular/core";
|
|
18
19
|
import * as i1 from "./map-postboy.service";
|
|
19
20
|
import * as i2 from "./map-management.service";
|
|
@@ -21,10 +22,11 @@ import * as i3 from "./map-state.service";
|
|
|
21
22
|
import * as i4 from "./map-feature.service";
|
|
22
23
|
import * as i5 from "./map-click.service";
|
|
23
24
|
import * as i6 from "./drawing/drawing.service";
|
|
25
|
+
import * as i7 from "./drawing/drawing-generation.service";
|
|
24
26
|
export class MessageRegistratorService extends PostboyAbstractRegistrator {
|
|
25
|
-
constructor(service, management, state, feature, interaction, drawing) {
|
|
27
|
+
constructor(service, management, state, feature, interaction, drawing, drawGenerator) {
|
|
26
28
|
super(service);
|
|
27
|
-
this.registerServices([management, state, interaction, feature, drawing]);
|
|
29
|
+
this.registerServices([management, state, interaction, feature, drawing, drawGenerator]);
|
|
28
30
|
}
|
|
29
31
|
_up() {
|
|
30
32
|
this.registerReplay(MapRenderedEvent.ID);
|
|
@@ -41,11 +43,12 @@ export class MessageRegistratorService extends PostboyAbstractRegistrator {
|
|
|
41
43
|
this.registerSubject(StartDrawingCommand.ID);
|
|
42
44
|
this.registerSubject(GetLayerQuery.ID);
|
|
43
45
|
this.registerSubject(DrawingFinishedEvent.ID);
|
|
46
|
+
this.registerSubject(GenerateDrawQuery.ID);
|
|
44
47
|
}
|
|
45
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageRegistratorService, deps: [{ token: i1.MapPostboyService }, { token: i2.MapManagementService }, { token: i3.MapStateService }, { token: i4.MapFeatureService }, { token: i5.MapClickService }, { token: i6.DrawingService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
48
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageRegistratorService, deps: [{ token: i1.MapPostboyService }, { token: i2.MapManagementService }, { token: i3.MapStateService }, { token: i4.MapFeatureService }, { token: i5.MapClickService }, { token: i6.DrawingService }, { token: i7.DrawingGenerationService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
46
49
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageRegistratorService });
|
|
47
50
|
}
|
|
48
51
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageRegistratorService, decorators: [{
|
|
49
52
|
type: Injectable
|
|
50
|
-
}], ctorParameters: function () { return [{ type: i1.MapPostboyService }, { type: i2.MapManagementService }, { type: i3.MapStateService }, { type: i4.MapFeatureService }, { type: i5.MapClickService }, { type: i6.DrawingService }]; } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
}], ctorParameters: function () { return [{ type: i1.MapPostboyService }, { type: i2.MapManagementService }, { type: i3.MapStateService }, { type: i4.MapFeatureService }, { type: i5.MapClickService }, { type: i6.DrawingService }, { type: i7.DrawingGenerationService }]; } });
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1yZWdpc3RyYXRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvc2VydmljZXMvbWVzc2FnZS1yZWdpc3RyYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRWpGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUVqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDakYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7Ozs7OztBQUk1RSxNQUFNLE9BQU8seUJBQTBCLFNBQVEsMEJBQTBCO0lBQ3ZFLFlBQ0UsT0FBMEIsRUFDMUIsVUFBZ0MsRUFDaEMsS0FBc0IsRUFDdEIsT0FBMEIsRUFDMUIsV0FBNEIsRUFDNUIsT0FBdUIsRUFDdkIsYUFBdUM7UUFFdkMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFDUyxHQUFHO1FBQ1gsSUFBSSxDQUFDLGNBQWMsQ0FBbUIsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLGNBQWMsQ0FBNEIseUJBQXlCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLGVBQWUsQ0FBa0IsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxlQUFlLENBQXFCLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxlQUFlLENBQWlCLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsZUFBZSxDQUFvQixpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsZUFBZSxDQUFnQixhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLGVBQWUsQ0FBc0IsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGVBQWUsQ0FBdUIsb0JBQW9CLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLGVBQWUsQ0FBa0IsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxlQUFlLENBQXVCLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxlQUFlLENBQXNCLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxlQUFlLENBQWdCLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsZUFBZSxDQUF1QixvQkFBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsZUFBZSxDQUFvQixpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO3dHQTdCVSx5QkFBeUI7NEdBQXpCLHlCQUF5Qjs7NEZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hcFBvc3Rib3lTZXJ2aWNlIH0gZnJvbSAnLi9tYXAtcG9zdGJveS5zZXJ2aWNlJztcbmltcG9ydCB7IE1hcFJlbmRlcmVkRXZlbnQgfSBmcm9tICcuLi9tZXNzYWdlcyc7XG5pbXBvcnQgeyBBZGRMYXllckNvbW1hbmQgfSBmcm9tICcuLi9tZXNzYWdlcy9jb21tYW5kcy9hZGQtbGF5ZXIuY29tbWFuZCc7XG5pbXBvcnQgeyBQbGFjZUxheWVyRmVhdHVyZXNDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvcGxhY2UtbGF5ZXItZmVhdHVyZXMuY29tbWFuZCc7XG5pbXBvcnQgeyBSZW1vdmVMYXllckNvbW1hbmQgfSBmcm9tICcuLi9tZXNzYWdlcy9jb21tYW5kcy9yZW1vdmUtbGF5ZXIuY29tbWFuZCc7XG5pbXBvcnQgeyBBZGRUaWxlQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL2FkZC10aWxlLmNvbW1hbmQnO1xuaW1wb3J0IHsgUmVtb3ZlVGlsZUNvbW1hbmQgfSBmcm9tICcuLi9tZXNzYWdlcy9jb21tYW5kcy9yZW1vdmUtdGlsZS5jb21tYW5kJztcbmltcG9ydCB7IFBvc3Rib3lBYnN0cmFjdFJlZ2lzdHJhdG9yIH0gZnJvbSAnQGFydHN0ZXNoL3Bvc3Rib3knO1xuaW1wb3J0IHsgTWFwTWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tICcuL21hcC1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFwU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9tYXAtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBNYXBDbGlja1NlcnZpY2UgfSBmcm9tICcuL21hcC1jbGljay5zZXJ2aWNlJztcbmltcG9ydCB7IE1hcENsaWNrRXZlbnQgfSBmcm9tICcuLi9tZXNzYWdlcy9ldmVudHMvbWFwLWNsaWNrLmV2ZW50JztcbmltcG9ydCB7IENsb3NlVG9vbHRpcENvbW1hbmQgfSBmcm9tICcuLi9tZXNzYWdlcy9jb21tYW5kcy9jbG9zZS10b29sdGlwLmNvbW1hbmQnO1xuaW1wb3J0IHsgTWFwRmVhdHVyZVNlcnZpY2UgfSBmcm9tICcuL21hcC1mZWF0dXJlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRml0VG9GZWF0dXJlc0NvbW1hbmQgfSBmcm9tICcuLi9tZXNzYWdlcy9jb21tYW5kcy9maXQtdG8tZmVhdHVyZXMuY29tbWFuZCc7XG5pbXBvcnQgeyBNYXBNb3ZlRW5kRXZlbnQgfSBmcm9tICcuLi9tZXNzYWdlcy9ldmVudHMvbWFwLW1vdmUtZW5kLmV2ZW50JztcbmltcG9ydCB7IENhbmNlbERyYXdpbmdDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvY2FuY2VsLWRyYXdpbmcuY29tbWFuZCc7XG5pbXBvcnQgeyBTdGFydERyYXdpbmdDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvc3RhcnQtZHJhd2luZy5jb21tYW5kJztcbmltcG9ydCB7IERyYXdpbmdTZXJ2aWNlIH0gZnJvbSAnLi9kcmF3aW5nL2RyYXdpbmcuc2VydmljZSc7XG5pbXBvcnQgeyBHZXRMYXllclF1ZXJ5IH0gZnJvbSAnLi4vbWVzc2FnZXMvcXVlcmllcy9nZXQtbGF5ZXIucXVlcnknO1xuaW1wb3J0IHsgRHJhd2luZ0ZpbmlzaGVkRXZlbnQgfSBmcm9tICcuLi9tZXNzYWdlcy9ldmVudHMvZHJhd2luZy1maW5pc2hlZC5ldmVudCc7XG5pbXBvcnQgeyBHZW5lcmF0ZURyYXdRdWVyeSB9IGZyb20gJy4uL21lc3NhZ2VzL3F1ZXJpZXMvZ2VuZXJhdGUtZHJhdy5xdWVyeSc7XG5pbXBvcnQgeyBEcmF3aW5nR2VuZXJhdGlvblNlcnZpY2UgfSBmcm9tICcuL2RyYXdpbmcvZHJhd2luZy1nZW5lcmF0aW9uLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTWVzc2FnZVJlZ2lzdHJhdG9yU2VydmljZSBleHRlbmRzIFBvc3Rib3lBYnN0cmFjdFJlZ2lzdHJhdG9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgc2VydmljZTogTWFwUG9zdGJveVNlcnZpY2UsXG4gICAgbWFuYWdlbWVudDogTWFwTWFuYWdlbWVudFNlcnZpY2UsXG4gICAgc3RhdGU6IE1hcFN0YXRlU2VydmljZSxcbiAgICBmZWF0dXJlOiBNYXBGZWF0dXJlU2VydmljZSxcbiAgICBpbnRlcmFjdGlvbjogTWFwQ2xpY2tTZXJ2aWNlLFxuICAgIGRyYXdpbmc6IERyYXdpbmdTZXJ2aWNlLFxuICAgIGRyYXdHZW5lcmF0b3I6IERyYXdpbmdHZW5lcmF0aW9uU2VydmljZSxcbiAgKSB7XG4gICAgc3VwZXIoc2VydmljZSk7XG4gICAgdGhpcy5yZWdpc3RlclNlcnZpY2VzKFttYW5hZ2VtZW50LCBzdGF0ZSwgaW50ZXJhY3Rpb24sIGZlYXR1cmUsIGRyYXdpbmcsIGRyYXdHZW5lcmF0b3JdKTtcbiAgfVxuICBwcm90ZWN0ZWQgX3VwKCk6IHZvaWQge1xuICAgIHRoaXMucmVnaXN0ZXJSZXBsYXk8TWFwUmVuZGVyZWRFdmVudD4oTWFwUmVuZGVyZWRFdmVudC5JRCk7XG4gICAgdGhpcy5yZWdpc3RlclJlcGxheTxQbGFjZUxheWVyRmVhdHVyZXNDb21tYW5kPihQbGFjZUxheWVyRmVhdHVyZXNDb21tYW5kLklEKTtcbiAgICB0aGlzLnJlZ2lzdGVyU3ViamVjdDxBZGRMYXllckNvbW1hbmQ+KEFkZExheWVyQ29tbWFuZC5JRCk7XG4gICAgdGhpcy5yZWdpc3RlclN1YmplY3Q8UmVtb3ZlTGF5ZXJDb21tYW5kPihSZW1vdmVMYXllckNvbW1hbmQuSUQpO1xuICAgIHRoaXMucmVnaXN0ZXJTdWJqZWN0PEFkZFRpbGVDb21tYW5kPihBZGRUaWxlQ29tbWFuZC5JRCk7XG4gICAgdGhpcy5yZWdpc3RlclN1YmplY3Q8UmVtb3ZlVGlsZUNvbW1hbmQ+KFJlbW92ZVRpbGVDb21tYW5kLklEKTtcbiAgICB0aGlzLnJlZ2lzdGVyU3ViamVjdDxNYXBDbGlja0V2ZW50PihNYXBDbGlja0V2ZW50LklEKTtcbiAgICB0aGlzLnJlZ2lzdGVyU3ViamVjdDxDbG9zZVRvb2x0aXBDb21tYW5kPihDbG9zZVRvb2x0aXBDb21tYW5kLklEKTtcbiAgICB0aGlzLnJlZ2lzdGVyU3ViamVjdDxGaXRUb0ZlYXR1cmVzQ29tbWFuZD4oRml0VG9GZWF0dXJlc0NvbW1hbmQuSUQpO1xuICAgIHRoaXMucmVnaXN0ZXJTdWJqZWN0PE1hcE1vdmVFbmRFdmVudD4oTWFwTW92ZUVuZEV2ZW50LklEKTtcbiAgICB0aGlzLnJlZ2lzdGVyU3ViamVjdDxDYW5jZWxEcmF3aW5nQ29tbWFuZD4oQ2FuY2VsRHJhd2luZ0NvbW1hbmQuSUQpO1xuICAgIHRoaXMucmVnaXN0ZXJTdWJqZWN0PFN0YXJ0RHJhd2luZ0NvbW1hbmQ+KFN0YXJ0RHJhd2luZ0NvbW1hbmQuSUQpO1xuICAgIHRoaXMucmVnaXN0ZXJTdWJqZWN0PEdldExheWVyUXVlcnk+KEdldExheWVyUXVlcnkuSUQpO1xuICAgIHRoaXMucmVnaXN0ZXJTdWJqZWN0PERyYXdpbmdGaW5pc2hlZEV2ZW50PihEcmF3aW5nRmluaXNoZWRFdmVudC5JRCk7XG4gICAgdGhpcy5yZWdpc3RlclN1YmplY3Q8R2VuZXJhdGVEcmF3UXVlcnk+KEdlbmVyYXRlRHJhd1F1ZXJ5LklEKTtcbiAgfVxufVxuIl19
|
|
@@ -3,19 +3,20 @@ import { Component, Injectable, ChangeDetectionStrategy, Input, ViewChild, NgMod
|
|
|
3
3
|
import * as i4 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import { Feature } from 'ol';
|
|
6
|
-
import { Point } from 'ol/geom';
|
|
6
|
+
import { Point, LineString } from 'ol/geom';
|
|
7
7
|
import { GeoJSON, WKT } from 'ol/format';
|
|
8
8
|
import { getCenter, createEmpty, extend } from 'ol/extent';
|
|
9
|
-
import { get, useGeographic } from 'ol/proj';
|
|
9
|
+
import { get, useGeographic, transform } from 'ol/proj';
|
|
10
10
|
import { PostboyGenericMessage, PostboyCallbackMessage, PostboyService, PostboyAbstractRegistrator } from '@artstesh/postboy';
|
|
11
11
|
import { first, filter, auditTime } from 'rxjs/operators';
|
|
12
12
|
import { Vector, XYZ } from 'ol/source';
|
|
13
13
|
import { Draw } from 'ol/interaction';
|
|
14
|
+
import { createRegularPolygon } from 'ol/interaction/Draw';
|
|
14
15
|
import TileLayer from 'ol/layer/Tile';
|
|
15
16
|
import OSM from 'ol/source/OSM';
|
|
16
17
|
import { Vector as Vector$1 } from 'ol/layer';
|
|
17
18
|
import { bbox } from 'ol/loadingstrategy';
|
|
18
|
-
import { fromExtent } from 'ol/geom/Polygon';
|
|
19
|
+
import Polygon, { fromExtent } from 'ol/geom/Polygon';
|
|
19
20
|
import Cluster from 'ol/source/Cluster';
|
|
20
21
|
import { combineLatest } from 'rxjs';
|
|
21
22
|
import Map from 'ol/Map';
|
|
@@ -23,6 +24,7 @@ import View from 'ol/View';
|
|
|
23
24
|
import Overlay from 'ol/Overlay';
|
|
24
25
|
import Style from 'ol/style/Style';
|
|
25
26
|
import { Icon, Circle, Fill, Stroke, Text } from 'ol/style';
|
|
27
|
+
import { METERS_PER_UNIT } from 'ol/proj/epsg4326';
|
|
26
28
|
|
|
27
29
|
class DestructibleComponent {
|
|
28
30
|
subs = [];
|
|
@@ -183,6 +185,7 @@ class PolygonModel {
|
|
|
183
185
|
var DrawingType;
|
|
184
186
|
(function (DrawingType) {
|
|
185
187
|
DrawingType[DrawingType["Polygon"] = 1] = "Polygon";
|
|
188
|
+
DrawingType[DrawingType["Circle"] = 2] = "Circle";
|
|
186
189
|
})(DrawingType || (DrawingType = {}));
|
|
187
190
|
|
|
188
191
|
var FeatureOutputFormat;
|
|
@@ -366,6 +369,22 @@ class DrawingFinishedEvent extends PostboyGenericMessage {
|
|
|
366
369
|
}
|
|
367
370
|
}
|
|
368
371
|
|
|
372
|
+
class GenerateDrawQuery extends PostboyCallbackMessage {
|
|
373
|
+
layer;
|
|
374
|
+
style;
|
|
375
|
+
type;
|
|
376
|
+
static ID = 'f01c99ba-0953-4ab5-82f9-04e6fbb678c1';
|
|
377
|
+
constructor(layer, style, type) {
|
|
378
|
+
super();
|
|
379
|
+
this.layer = layer;
|
|
380
|
+
this.style = style;
|
|
381
|
+
this.type = type;
|
|
382
|
+
}
|
|
383
|
+
get id() {
|
|
384
|
+
return GenerateDrawQuery.ID;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
|
|
369
388
|
class MapPostboyService extends PostboyService {
|
|
370
389
|
constructor() {
|
|
371
390
|
super();
|
|
@@ -571,17 +590,17 @@ class DrawingService {
|
|
|
571
590
|
this.clearInteraction(l);
|
|
572
591
|
return;
|
|
573
592
|
}
|
|
574
|
-
const
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
this.onEnd(evt, ev, l);
|
|
593
|
+
const drawQuery = new GenerateDrawQuery(l, ev.style, ev.type);
|
|
594
|
+
drawQuery.result.subscribe((draw) => {
|
|
595
|
+
const cancelSub = this.observeCancelation(ev, l);
|
|
596
|
+
this.drawInteraction = draw;
|
|
597
|
+
this.map?.addInteraction(this.drawInteraction);
|
|
598
|
+
this.drawInteraction.on('drawend', (evt) => {
|
|
599
|
+
cancelSub.unsubscribe();
|
|
600
|
+
this.onEnd(evt, ev, l);
|
|
601
|
+
});
|
|
584
602
|
});
|
|
603
|
+
this.postboy.fire(drawQuery);
|
|
585
604
|
});
|
|
586
605
|
});
|
|
587
606
|
this.observeMapRender();
|
|
@@ -625,10 +644,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
625
644
|
type: Injectable
|
|
626
645
|
}], ctorParameters: function () { return [{ type: MapPostboyService }]; } });
|
|
627
646
|
|
|
647
|
+
class DrawingGenerationService {
|
|
648
|
+
postboy;
|
|
649
|
+
constructor(postboy) {
|
|
650
|
+
this.postboy = postboy;
|
|
651
|
+
}
|
|
652
|
+
up() {
|
|
653
|
+
this.postboy.subscribe(GenerateDrawQuery.ID).subscribe((ev) => {
|
|
654
|
+
ev.finish(new Draw({
|
|
655
|
+
source: ev.layer.getSource(),
|
|
656
|
+
type: DrawingType[ev.type],
|
|
657
|
+
style: ev.style,
|
|
658
|
+
geometryFunction: ev.type !== DrawingType.Circle ? undefined : createRegularPolygon(32),
|
|
659
|
+
}));
|
|
660
|
+
});
|
|
661
|
+
}
|
|
662
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrawingGenerationService, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
663
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrawingGenerationService });
|
|
664
|
+
}
|
|
665
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrawingGenerationService, decorators: [{
|
|
666
|
+
type: Injectable
|
|
667
|
+
}], ctorParameters: function () { return [{ type: MapPostboyService }]; } });
|
|
668
|
+
|
|
628
669
|
class MessageRegistratorService extends PostboyAbstractRegistrator {
|
|
629
|
-
constructor(service, management, state, feature, interaction, drawing) {
|
|
670
|
+
constructor(service, management, state, feature, interaction, drawing, drawGenerator) {
|
|
630
671
|
super(service);
|
|
631
|
-
this.registerServices([management, state, interaction, feature, drawing]);
|
|
672
|
+
this.registerServices([management, state, interaction, feature, drawing, drawGenerator]);
|
|
632
673
|
}
|
|
633
674
|
_up() {
|
|
634
675
|
this.registerReplay(MapRenderedEvent.ID);
|
|
@@ -645,13 +686,14 @@ class MessageRegistratorService extends PostboyAbstractRegistrator {
|
|
|
645
686
|
this.registerSubject(StartDrawingCommand.ID);
|
|
646
687
|
this.registerSubject(GetLayerQuery.ID);
|
|
647
688
|
this.registerSubject(DrawingFinishedEvent.ID);
|
|
689
|
+
this.registerSubject(GenerateDrawQuery.ID);
|
|
648
690
|
}
|
|
649
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageRegistratorService, deps: [{ token: MapPostboyService }, { token: MapManagementService }, { token: MapStateService }, { token: MapFeatureService }, { token: MapClickService }, { token: DrawingService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
691
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageRegistratorService, deps: [{ token: MapPostboyService }, { token: MapManagementService }, { token: MapStateService }, { token: MapFeatureService }, { token: MapClickService }, { token: DrawingService }, { token: DrawingGenerationService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
650
692
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageRegistratorService });
|
|
651
693
|
}
|
|
652
694
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageRegistratorService, decorators: [{
|
|
653
695
|
type: Injectable
|
|
654
|
-
}], ctorParameters: function () { return [{ type: MapPostboyService }, { type: MapManagementService }, { type: MapStateService }, { type: MapFeatureService }, { type: MapClickService }, { type: DrawingService }]; } });
|
|
696
|
+
}], ctorParameters: function () { return [{ type: MapPostboyService }, { type: MapManagementService }, { type: MapStateService }, { type: MapFeatureService }, { type: MapClickService }, { type: DrawingService }, { type: DrawingGenerationService }]; } });
|
|
655
697
|
|
|
656
698
|
class TileLayerSettings {
|
|
657
699
|
maxZoom = 19;
|
|
@@ -1216,6 +1258,7 @@ class MapPlateComponent extends DestructibleComponent {
|
|
|
1216
1258
|
MapClickService,
|
|
1217
1259
|
MapFeatureService,
|
|
1218
1260
|
DrawingService,
|
|
1261
|
+
DrawingGenerationService,
|
|
1219
1262
|
], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\r\n<lib-osm-tile-layer *ngIf=\"osmUrl && map\" [map]=\"map\" [url]=\"osmUrl\"></lib-osm-tile-layer>\r\n<lib-feature-layer *ngIf=\"map\" [settings]=\"drawingLayerSettings\"></lib-feature-layer>\r\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"] }, { kind: "component", type: FeatureLayerComponent, selector: "lib-feature-layer", inputs: ["settings"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1220
1263
|
}
|
|
1221
1264
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapPlateComponent, decorators: [{
|
|
@@ -1227,6 +1270,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1227
1270
|
MapClickService,
|
|
1228
1271
|
MapFeatureService,
|
|
1229
1272
|
DrawingService,
|
|
1273
|
+
DrawingGenerationService,
|
|
1230
1274
|
], template: "<ng-content></ng-content>\r\n<lib-osm-tile-layer *ngIf=\"osmUrl && map\" [map]=\"map\" [url]=\"osmUrl\"></lib-osm-tile-layer>\r\n<lib-feature-layer *ngIf=\"map\" [settings]=\"drawingLayerSettings\"></lib-feature-layer>\r\n", styles: ["lib-map-plate{position:relative;display:flex;flex-direction:column;height:100%}\n"] }]
|
|
1231
1275
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: MapPostboyService }, { type: MapPlateFactory }, { type: MessageRegistratorService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { settings: [{
|
|
1232
1276
|
type: Input
|
|
@@ -1504,6 +1548,57 @@ class TextStyleHelper {
|
|
|
1504
1548
|
}
|
|
1505
1549
|
}
|
|
1506
1550
|
|
|
1551
|
+
class StringifyFeatureHelper {
|
|
1552
|
+
static polygon(feature, format = FeatureOutputFormat.GeoJson) {
|
|
1553
|
+
return format === FeatureOutputFormat.GeoJson
|
|
1554
|
+
? new GeoJSON().writeFeature(feature)
|
|
1555
|
+
: new WKT().writeFeature(feature);
|
|
1556
|
+
}
|
|
1557
|
+
static circle(feature, format = FeatureOutputFormat.GeoJson) {
|
|
1558
|
+
// const clone = feature.clone();
|
|
1559
|
+
// clone.setGeometry(fromCircle(feature.getGeometry()! as Circle));
|
|
1560
|
+
const tetemp = feature.getGeometryName();
|
|
1561
|
+
const circle = feature.getGeometry();
|
|
1562
|
+
// const temp = StringifyFeatureHelper.drawCircle(circle.getCenter(), circle.getRadius());
|
|
1563
|
+
const ttt = feature.getGeometry().getExtent();
|
|
1564
|
+
const eastPoint = [ttt[2], (ttt[1] + ttt[3]) / 2];
|
|
1565
|
+
const aaa = [
|
|
1566
|
+
...transform([ttt[0], ttt[1]], 'EPSG:4326', 'EPSG:3857'),
|
|
1567
|
+
...transform([ttt[2], ttt[3]], 'EPSG:4326', 'EPSG:3857'),
|
|
1568
|
+
];
|
|
1569
|
+
const radius = (aaa[2] - aaa[0]) / 2;
|
|
1570
|
+
const radius2 = new LineString([circle.getCenter(), eastPoint]).getLength();
|
|
1571
|
+
const polygonGeom = new Polygon(StringifyFeatureHelper.drawCircle(circle.getCenter(), radius));
|
|
1572
|
+
// var edgeCoordinate = [circle.getCenter()[0] + radius, circle.getCenter()[1]];
|
|
1573
|
+
// var wgs84Sphere = new Sphere(6378137);
|
|
1574
|
+
return StringifyFeatureHelper.polygon(new Feature(polygonGeom), format);
|
|
1575
|
+
// const rad = circle.getRadius();
|
|
1576
|
+
// const degrees = 180 / Math.PI; // radians to degrees
|
|
1577
|
+
// const radians = Math.PI / 180; // degrees to radians
|
|
1578
|
+
// const rlat = rad * degrees * 1000;
|
|
1579
|
+
// const rlng = rad * radians;
|
|
1580
|
+
// return StringifyFeatureHelper.polygon(new Feature<Geometry>(circular(circle.getCenter(),circle.getRadius() * METERS_PER_UNIT)), format);
|
|
1581
|
+
}
|
|
1582
|
+
static drawCircle(point, radius) {
|
|
1583
|
+
const tetetemp = transform(point, 'EPSG:4326', 'EPSG:3857');
|
|
1584
|
+
// const tetetemp = point;
|
|
1585
|
+
const radians = Math.PI / 180; // degrees to radians
|
|
1586
|
+
const degrees = 180 / Math.PI; // radians to degrees
|
|
1587
|
+
const earthsradius = 6378137.0;
|
|
1588
|
+
const rlat = (radius / earthsradius) * degrees;
|
|
1589
|
+
const rlng = rlat / Math.cos(tetetemp[1] * radians);
|
|
1590
|
+
const extp = [];
|
|
1591
|
+
for (let i = 0; i <= 32; i++) {
|
|
1592
|
+
const theta = Math.PI * (i / 16);
|
|
1593
|
+
extp.push([
|
|
1594
|
+
tetetemp[0] + rlng * Math.cos(theta) * METERS_PER_UNIT,
|
|
1595
|
+
tetetemp[1] + rlat * Math.sin(theta) * METERS_PER_UNIT,
|
|
1596
|
+
]);
|
|
1597
|
+
}
|
|
1598
|
+
return [extp.map((e) => transform(e, 'EPSG:3857', 'EPSG:4326'))];
|
|
1599
|
+
}
|
|
1600
|
+
}
|
|
1601
|
+
|
|
1507
1602
|
/*
|
|
1508
1603
|
* Public API Surface of maps
|
|
1509
1604
|
*/
|
|
@@ -1512,5 +1607,5 @@ class TextStyleHelper {
|
|
|
1512
1607
|
* Generated bundle index. Do not edit.
|
|
1513
1608
|
*/
|
|
1514
1609
|
|
|
1515
|
-
export { CancelDrawingCommand, CloseTooltipCommand, ClusterLayerComponent, ClusterLayerSettings, DrawingType, FeatureLayerComponent, FeatureLayerSettings, FeatureOutputFormat, MapClickEvent, MapLyrs, MapLyrsLabel, MapModule, MapMoveEndEvent, MapPlateComponent, MapPostboyService, MapRenderedEvent, MapSettings, MarkerModel, MarkerStyleHelper, MarkersComponent, MessageRegistratorService, OsmTileLayerComponent, PolygonModel, PolygonStyleHelper, PolygonsComponent, StartDrawingCommand, TextStyleHelper, TileLayerComponent, TileLayerSettings, TooltipComponent, TooltipSettings };
|
|
1610
|
+
export { CancelDrawingCommand, CloseTooltipCommand, ClusterLayerComponent, ClusterLayerSettings, DrawingType, FeatureLayerComponent, FeatureLayerSettings, FeatureOutputFormat, MapClickEvent, MapLyrs, MapLyrsLabel, MapModule, MapMoveEndEvent, MapPlateComponent, MapPostboyService, MapRenderedEvent, MapSettings, MarkerModel, MarkerStyleHelper, MarkersComponent, MessageRegistratorService, OsmTileLayerComponent, PolygonModel, PolygonStyleHelper, PolygonsComponent, StartDrawingCommand, StringifyFeatureHelper, TextStyleHelper, TileLayerComponent, TileLayerSettings, TooltipComponent, TooltipSettings };
|
|
1516
1611
|
//# sourceMappingURL=maps-components-src-map.mjs.map
|