@signalk/freeboard-sk 2.0.0-beta.2 → 2.0.0-beta.4
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/CHANGELOG.md +55 -1
- package/package.json +24 -20
- package/public/590.4431be8bbcdbb3f8.js +1 -0
- package/public/assets/help/img/settings_course.png +0 -0
- package/public/assets/help/img/settings_other_vessels.png +0 -0
- package/public/assets/help/index.html +46 -15
- package/public/assets/img/alarms/weather.png +0 -0
- package/public/index.html +2 -2
- package/public/main.a54a56a8a0f02b2d.js +1 -0
- package/public/polyfills.12ddee7e4cb46a02.js +1 -0
- package/public/runtime.0360fd4b1168b48a.js +1 -0
- package/public/styles.a0bf4282aea78b28.css +1 -0
- package/dist/fb-openlayers/README.md +0 -17
- package/dist/fb-openlayers/bundles/fb-openlayers.umd.js +0 -4884
- package/dist/fb-openlayers/bundles/fb-openlayers.umd.js.map +0 -1
- package/dist/fb-openlayers/esm2015/fb-openlayers.js +0 -5
- package/dist/fb-openlayers/esm2015/index.js +0 -92
- package/dist/fb-openlayers/esm2015/lib/alarms/layer-anchor-alarm.component.js +0 -136
- package/dist/fb-openlayers/esm2015/lib/alarms/layer-cpa-alarm.component.js +0 -135
- package/dist/fb-openlayers/esm2015/lib/content.component.js +0 -16
- package/dist/fb-openlayers/esm2015/lib/control.component.js +0 -37
- package/dist/fb-openlayers/esm2015/lib/controls.directive.js +0 -61
- package/dist/fb-openlayers/esm2015/lib/interactions/interaction-draw.component.js +0 -72
- package/dist/fb-openlayers/esm2015/lib/interactions/interaction-modify.component.js +0 -72
- package/dist/fb-openlayers/esm2015/lib/interactions.directive.js +0 -61
- package/dist/fb-openlayers/esm2015/lib/layer.component.js +0 -157
- package/dist/fb-openlayers/esm2015/lib/map.component.js +0 -206
- package/dist/fb-openlayers/esm2015/lib/map.service.js +0 -70
- package/dist/fb-openlayers/esm2015/lib/models.js +0 -37
- package/dist/fb-openlayers/esm2015/lib/navigation/layer-arrival-circle.component.js +0 -116
- package/dist/fb-openlayers/esm2015/lib/navigation/layer-bearing-line.component.js +0 -229
- package/dist/fb-openlayers/esm2015/lib/navigation/layer-xte-path.component.js +0 -120
- package/dist/fb-openlayers/esm2015/lib/overlay.component.js +0 -56
- package/dist/fb-openlayers/esm2015/lib/resources/layer-charts.component.js +0 -141
- package/dist/fb-openlayers/esm2015/lib/resources/layer-notes.component.js +0 -177
- package/dist/fb-openlayers/esm2015/lib/resources/layer-regions.component.js +0 -184
- package/dist/fb-openlayers/esm2015/lib/resources/layer-resourceset.component.js +0 -226
- package/dist/fb-openlayers/esm2015/lib/resources/layer-routes.component.js +0 -188
- package/dist/fb-openlayers/esm2015/lib/resources/layer-sktarget-tracks.component.js +0 -213
- package/dist/fb-openlayers/esm2015/lib/resources/layer-sktargets.component.js +0 -269
- package/dist/fb-openlayers/esm2015/lib/resources/layer-skvessels.component.js +0 -410
- package/dist/fb-openlayers/esm2015/lib/resources/layer-tracks.component.js +0 -175
- package/dist/fb-openlayers/esm2015/lib/resources/layer-waypoints.component.js +0 -238
- package/dist/fb-openlayers/esm2015/lib/util.js +0 -124
- package/dist/fb-openlayers/esm2015/lib/vessel/layer-vessel-trail.component.js +0 -178
- package/dist/fb-openlayers/esm2015/lib/vessel/layer-vessel.component.js +0 -229
- package/dist/fb-openlayers/esm2015/lib/view.directive.js +0 -141
- package/dist/fb-openlayers/fb-openlayers.d.ts +0 -5
- package/dist/fb-openlayers/fb-openlayers.d.ts.map +0 -1
- package/dist/fb-openlayers/fb-openlayers.metadata.json +0 -1
- package/dist/fb-openlayers/fesm2015/fb-openlayers.js +0 -4326
- package/dist/fb-openlayers/fesm2015/fb-openlayers.js.map +0 -1
- package/dist/fb-openlayers/index.d.ts +0 -33
- package/dist/fb-openlayers/index.d.ts.map +0 -1
- package/dist/fb-openlayers/index.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/alarms/layer-anchor-alarm.component.d.ts +0 -44
- package/dist/fb-openlayers/lib/alarms/layer-anchor-alarm.component.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/alarms/layer-anchor-alarm.component.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/alarms/layer-cpa-alarm.component.d.ts +0 -39
- package/dist/fb-openlayers/lib/alarms/layer-cpa-alarm.component.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/alarms/layer-cpa-alarm.component.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/content.component.d.ts +0 -6
- package/dist/fb-openlayers/lib/content.component.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/content.component.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/control.component.d.ts +0 -14
- package/dist/fb-openlayers/lib/control.component.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/control.component.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/controls.directive.d.ts +0 -14
- package/dist/fb-openlayers/lib/controls.directive.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/controls.directive.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/interactions/interaction-draw.component.d.ts +0 -27
- package/dist/fb-openlayers/lib/interactions/interaction-draw.component.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/interactions/interaction-draw.component.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/interactions/interaction-modify.component.d.ts +0 -26
- package/dist/fb-openlayers/lib/interactions/interaction-modify.component.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/interactions/interaction-modify.component.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/interactions.directive.d.ts +0 -14
- package/dist/fb-openlayers/lib/interactions.directive.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/interactions.directive.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/layer.component.d.ts +0 -41
- package/dist/fb-openlayers/lib/layer.component.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/layer.component.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/map.component.d.ts +0 -71
- package/dist/fb-openlayers/lib/map.component.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/map.component.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/map.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/map.service.d.ts +0 -19
- package/dist/fb-openlayers/lib/map.service.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/map.service.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/models.d.ts +0 -42
- package/dist/fb-openlayers/lib/models.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/navigation/layer-arrival-circle.component.d.ts +0 -39
- package/dist/fb-openlayers/lib/navigation/layer-arrival-circle.component.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/navigation/layer-arrival-circle.component.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/navigation/layer-bearing-line.component.d.ts +0 -49
- package/dist/fb-openlayers/lib/navigation/layer-bearing-line.component.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/navigation/layer-bearing-line.component.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/navigation/layer-xte-path.component.d.ts +0 -39
- package/dist/fb-openlayers/lib/navigation/layer-xte-path.component.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/navigation/layer-xte-path.component.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/overlay.component.d.ts +0 -25
- package/dist/fb-openlayers/lib/overlay.component.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/overlay.component.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/resources/layer-charts.component.d.ts +0 -20
- package/dist/fb-openlayers/lib/resources/layer-charts.component.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/resources/layer-charts.component.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/resources/layer-notes.component.d.ts +0 -51
- package/dist/fb-openlayers/lib/resources/layer-notes.component.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/resources/layer-notes.component.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/resources/layer-regions.component.d.ts +0 -53
- package/dist/fb-openlayers/lib/resources/layer-regions.component.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/resources/layer-regions.component.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/resources/layer-resourceset.component.d.ts +0 -49
- package/dist/fb-openlayers/lib/resources/layer-resourceset.component.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/resources/layer-resourceset.component.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/resources/layer-routes.component.d.ts +0 -52
- package/dist/fb-openlayers/lib/resources/layer-routes.component.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/resources/layer-routes.component.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/resources/layer-sktarget-tracks.component.d.ts +0 -44
- package/dist/fb-openlayers/lib/resources/layer-sktarget-tracks.component.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/resources/layer-sktarget-tracks.component.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/resources/layer-sktargets.component.d.ts +0 -51
- package/dist/fb-openlayers/lib/resources/layer-sktargets.component.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/resources/layer-sktargets.component.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/resources/layer-skvessels.component.d.ts +0 -60
- package/dist/fb-openlayers/lib/resources/layer-skvessels.component.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/resources/layer-skvessels.component.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/resources/layer-tracks.component.d.ts +0 -50
- package/dist/fb-openlayers/lib/resources/layer-tracks.component.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/resources/layer-tracks.component.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/resources/layer-waypoints.component.d.ts +0 -57
- package/dist/fb-openlayers/lib/resources/layer-waypoints.component.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/resources/layer-waypoints.component.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/util.d.ts +0 -19
- package/dist/fb-openlayers/lib/util.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/vessel/layer-vessel-trail.component.d.ts +0 -45
- package/dist/fb-openlayers/lib/vessel/layer-vessel-trail.component.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/vessel/layer-vessel-trail.component.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/vessel/layer-vessel.component.d.ts +0 -55
- package/dist/fb-openlayers/lib/vessel/layer-vessel.component.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/vessel/layer-vessel.component.ngfactory.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/view.directive.d.ts +0 -44
- package/dist/fb-openlayers/lib/view.directive.d.ts.map +0 -1
- package/dist/fb-openlayers/lib/view.directive.ngfactory.d.ts.map +0 -1
- package/public/53.4babe18f9baabeea.js +0 -1
- package/public/main.a668c86ee67ed842.js +0 -1
- package/public/polyfills.1ba4e1a897c69e24.js +0 -1
- package/public/runtime.55118010dbcb6e60.js +0 -1
- package/public/styles.f013b594260c141e.css +0 -1
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, ChangeDetectionStrategy, Component, Output, Input, EventEmitter } from '@angular/core';
|
|
2
|
-
import GeometryType from 'ol/geom/GeometryType';
|
|
3
|
-
import { Draw } from 'ol/interaction';
|
|
4
|
-
import { MapComponent } from '../map.component';
|
|
5
|
-
export class InteractionDrawComponent {
|
|
6
|
-
constructor(changeDetectorRef, mapComponent) {
|
|
7
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
8
|
-
this.mapComponent = mapComponent;
|
|
9
|
-
this.type = GeometryType.LINE_STRING;
|
|
10
|
-
this.change = new EventEmitter();
|
|
11
|
-
this.drawStart = new EventEmitter();
|
|
12
|
-
this.drawEnd = new EventEmitter();
|
|
13
|
-
this.drawAbort = new EventEmitter();
|
|
14
|
-
// ** emit events
|
|
15
|
-
this.emitChangeEvent = (event) => this.change.emit(event);
|
|
16
|
-
this.emitDrawStartEvent = (event) => this.drawStart.emit(event);
|
|
17
|
-
this.emitDrawEndEvent = (event) => this.drawEnd.emit(event);
|
|
18
|
-
this.emitDrawAbortEvent = (event) => this.drawAbort.emit(event);
|
|
19
|
-
this.changeDetectorRef.detach();
|
|
20
|
-
}
|
|
21
|
-
ngOnInit() { }
|
|
22
|
-
ngAfterViewInit() {
|
|
23
|
-
this.map = this.mapComponent.getMap();
|
|
24
|
-
this.addDrawInteraction();
|
|
25
|
-
}
|
|
26
|
-
ngOnDestroy() {
|
|
27
|
-
this.map.removeInteraction(this.interaction);
|
|
28
|
-
this.interaction.un('change', this.emitChangeEvent);
|
|
29
|
-
this.interaction.un('drawstart', this.emitDrawStartEvent);
|
|
30
|
-
this.interaction.un('drawend', this.emitDrawEndEvent);
|
|
31
|
-
this.interaction.un('drawabort', this.emitDrawAbortEvent);
|
|
32
|
-
this.interaction = null;
|
|
33
|
-
}
|
|
34
|
-
addDrawInteraction() {
|
|
35
|
-
if (undefined !== this.map) {
|
|
36
|
-
let opt = {
|
|
37
|
-
type: this.type,
|
|
38
|
-
stopClick: true
|
|
39
|
-
};
|
|
40
|
-
if (this.style) {
|
|
41
|
-
opt.style = this.style;
|
|
42
|
-
}
|
|
43
|
-
this.interaction = new Draw(opt);
|
|
44
|
-
this.interaction.on('change', this.emitChangeEvent);
|
|
45
|
-
this.interaction.on('drawstart', this.emitDrawStartEvent);
|
|
46
|
-
this.interaction.on('drawend', this.emitDrawEndEvent);
|
|
47
|
-
this.interaction.on('drawabort', this.emitDrawAbortEvent);
|
|
48
|
-
this.map.addInteraction(this.interaction);
|
|
49
|
-
this.changeDetectorRef.detectChanges();
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
InteractionDrawComponent.decorators = [
|
|
54
|
-
{ type: Component, args: [{
|
|
55
|
-
selector: 'ol-map > ol-draw',
|
|
56
|
-
template: '<ng-content></ng-content>',
|
|
57
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
58
|
-
},] }
|
|
59
|
-
];
|
|
60
|
-
InteractionDrawComponent.ctorParameters = () => [
|
|
61
|
-
{ type: ChangeDetectorRef },
|
|
62
|
-
{ type: MapComponent }
|
|
63
|
-
];
|
|
64
|
-
InteractionDrawComponent.propDecorators = {
|
|
65
|
-
type: [{ type: Input }],
|
|
66
|
-
style: [{ type: Input }],
|
|
67
|
-
change: [{ type: Output }],
|
|
68
|
-
drawStart: [{ type: Output }],
|
|
69
|
-
drawEnd: [{ type: Output }],
|
|
70
|
-
drawAbort: [{ type: Output }]
|
|
71
|
-
};
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24tZHJhdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mYi1vcGVubGF5ZXJzL3NyYy9saWIvaW50ZXJhY3Rpb25zL2ludGVyYWN0aW9uLWRyYXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUgsT0FBTyxZQUFZLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3RDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQU9oRCxNQUFNLE9BQU8sd0JBQXdCO0lBR25DLFlBQXNCLGlCQUFvQyxFQUNwQyxZQUEwQjtRQUQxQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBSXZDLFNBQUksR0FBZ0IsWUFBWSxDQUFDLFdBQVcsQ0FBQztRQUc1QyxXQUFNLEdBQTJCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDcEQsY0FBUyxHQUEyQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZELFlBQU8sR0FBMkIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyRCxjQUFTLEdBQTJCLElBQUksWUFBWSxFQUFFLENBQUM7UUFzQ2pFLGlCQUFpQjtRQUNULG9CQUFlLEdBQUcsQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRSx1QkFBa0IsR0FBRyxDQUFDLEtBQWdCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RFLHFCQUFnQixHQUFHLENBQUMsS0FBZ0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEUsdUJBQWtCLEdBQUcsQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQW5ENUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFhRCxRQUFRLEtBQUssQ0FBQztJQUVkLGVBQWU7UUFDYixJQUFJLENBQUMsR0FBRyxHQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxXQUFXLEdBQUUsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxTQUFTLEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUMxQixJQUFJLEdBQUcsR0FBTztnQkFDWixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsU0FBUyxFQUFFLElBQUk7YUFDaEIsQ0FBQTtZQUNELElBQUcsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFBRSxHQUFHLENBQUMsS0FBSyxHQUFFLElBQUksQ0FBQyxLQUFLLENBQUE7YUFBRTtZQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFFLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQzFELElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN4QztJQUNILENBQUM7OztZQXZERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtnQkFDNUIsUUFBUSxFQUFFLDJCQUEyQjtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7OztZQVpPLGlCQUFpQjtZQU1oQixZQUFZOzs7bUJBZWxCLEtBQUs7b0JBQ0wsS0FBSztxQkFFTCxNQUFNO3dCQUNOLE1BQU07c0JBQ04sTUFBTTt3QkFDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT3V0cHV0LCBPbkluaXQsIElucHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hcCB9IGZyb20gJ29sJztcbmltcG9ydCBHZW9tZXRyeVR5cGUgZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeVR5cGUnO1xuaW1wb3J0IHsgRHJhdyB9IGZyb20gJ29sL2ludGVyYWN0aW9uJztcbmltcG9ydCB7IERyYXdFdmVudCB9IGZyb20gJ29sL2ludGVyYWN0aW9uL0RyYXcnO1xuaW1wb3J0IHsgU3R5bGUgfSBmcm9tICdvbC9zdHlsZSc7XG5pbXBvcnQgeyBNYXBDb21wb25lbnQgfSBmcm9tICcuLi9tYXAuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2wtbWFwID4gb2wtZHJhdycsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEludGVyYWN0aW9uRHJhd0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgbWFwQ29tcG9uZW50OiBNYXBDb21wb25lbnQpIHtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGFjaCgpO1xuICB9XG5cbiAgQElucHV0KCkgdHlwZTogR2VvbWV0cnlUeXBlPSBHZW9tZXRyeVR5cGUuTElORV9TVFJJTkc7XG4gIEBJbnB1dCgpIHN0eWxlOiBTdHlsZTtcblxuICBAT3V0cHV0KCkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8RHJhd0V2ZW50Pj0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZHJhd1N0YXJ0OiBFdmVudEVtaXR0ZXI8RHJhd0V2ZW50Pj0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZHJhd0VuZDogRXZlbnRFbWl0dGVyPERyYXdFdmVudD49IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGRyYXdBYm9ydDogRXZlbnRFbWl0dGVyPERyYXdFdmVudD49IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIG1hcDogTWFwO1xuICBwcml2YXRlIGludGVyYWN0aW9uOiBEcmF3O1xuXG4gIG5nT25Jbml0KCkgeyB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMubWFwPSB0aGlzLm1hcENvbXBvbmVudC5nZXRNYXAoKTtcbiAgICB0aGlzLmFkZERyYXdJbnRlcmFjdGlvbigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5tYXAucmVtb3ZlSW50ZXJhY3Rpb24odGhpcy5pbnRlcmFjdGlvbik7XG4gICAgdGhpcy5pbnRlcmFjdGlvbi51bignY2hhbmdlJywgdGhpcy5lbWl0Q2hhbmdlRXZlbnQpO1xuICAgIHRoaXMuaW50ZXJhY3Rpb24udW4oJ2RyYXdzdGFydCcsIHRoaXMuZW1pdERyYXdTdGFydEV2ZW50KTtcbiAgICB0aGlzLmludGVyYWN0aW9uLnVuKCdkcmF3ZW5kJywgdGhpcy5lbWl0RHJhd0VuZEV2ZW50KTtcbiAgICB0aGlzLmludGVyYWN0aW9uLnVuKCdkcmF3YWJvcnQnLCB0aGlzLmVtaXREcmF3QWJvcnRFdmVudCk7XG4gICAgdGhpcy5pbnRlcmFjdGlvbj0gbnVsbDtcbiAgfVxuXG4gIGFkZERyYXdJbnRlcmFjdGlvbigpIHtcbiAgICBpZiAodW5kZWZpbmVkICE9PSB0aGlzLm1hcCkge1xuICAgICAgbGV0IG9wdDogYW55PSB7XG4gICAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgICAgc3RvcENsaWNrOiB0cnVlXG4gICAgICB9XG4gICAgICBpZih0aGlzLnN0eWxlKSB7IG9wdC5zdHlsZT0gdGhpcy5zdHlsZSB9XG4gICAgICB0aGlzLmludGVyYWN0aW9uPSBuZXcgRHJhdyhvcHQpO1xuICAgICAgdGhpcy5pbnRlcmFjdGlvbi5vbignY2hhbmdlJywgdGhpcy5lbWl0Q2hhbmdlRXZlbnQpO1xuICAgICAgdGhpcy5pbnRlcmFjdGlvbi5vbignZHJhd3N0YXJ0JywgdGhpcy5lbWl0RHJhd1N0YXJ0RXZlbnQpO1xuICAgICAgdGhpcy5pbnRlcmFjdGlvbi5vbignZHJhd2VuZCcsIHRoaXMuZW1pdERyYXdFbmRFdmVudCk7XG4gICAgICB0aGlzLmludGVyYWN0aW9uLm9uKCdkcmF3YWJvcnQnLCB0aGlzLmVtaXREcmF3QWJvcnRFdmVudCk7XG4gICAgICB0aGlzLm1hcC5hZGRJbnRlcmFjdGlvbih0aGlzLmludGVyYWN0aW9uKTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIC8vICoqIGVtaXQgZXZlbnRzXG4gIHByaXZhdGUgZW1pdENoYW5nZUV2ZW50ID0gKGV2ZW50OiBEcmF3RXZlbnQpID0+IHRoaXMuY2hhbmdlLmVtaXQoZXZlbnQpO1xuICBwcml2YXRlIGVtaXREcmF3U3RhcnRFdmVudCA9IChldmVudDogRHJhd0V2ZW50KSA9PiB0aGlzLmRyYXdTdGFydC5lbWl0KGV2ZW50KTtcbiAgcHJpdmF0ZSBlbWl0RHJhd0VuZEV2ZW50ID0gKGV2ZW50OiBEcmF3RXZlbnQpID0+IHRoaXMuZHJhd0VuZC5lbWl0KGV2ZW50KTtcbiAgcHJpdmF0ZSBlbWl0RHJhd0Fib3J0RXZlbnQgPSAoZXZlbnQ6IERyYXdFdmVudCkgPT4gdGhpcy5kcmF3QWJvcnQuZW1pdChldmVudCk7XG5cbn1cbiJdfQ==
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, ChangeDetectionStrategy, Component, Output, Input, EventEmitter } from '@angular/core';
|
|
2
|
-
import { Modify } from 'ol/interaction';
|
|
3
|
-
import { MapComponent } from '../map.component';
|
|
4
|
-
export class InteractionModifyComponent {
|
|
5
|
-
constructor(changeDetectorRef, mapComponent) {
|
|
6
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
7
|
-
this.mapComponent = mapComponent;
|
|
8
|
-
this.change = new EventEmitter();
|
|
9
|
-
this.modifyStart = new EventEmitter();
|
|
10
|
-
this.modifyEnd = new EventEmitter();
|
|
11
|
-
this.propertyChange = new EventEmitter();
|
|
12
|
-
// ** emit events
|
|
13
|
-
this.emitChangeEvent = (event) => this.change.emit(event);
|
|
14
|
-
this.emitModifyStartEvent = (event) => this.modifyStart.emit(event);
|
|
15
|
-
this.emitModifyEndEvent = (event) => this.modifyEnd.emit(event);
|
|
16
|
-
this.emitPropertyChangeEvent = (event) => this.propertyChange.emit(event);
|
|
17
|
-
this.changeDetectorRef.detach();
|
|
18
|
-
}
|
|
19
|
-
ngOnInit() { }
|
|
20
|
-
ngAfterViewInit() {
|
|
21
|
-
this.map = this.mapComponent.getMap();
|
|
22
|
-
this.addModifyInteraction();
|
|
23
|
-
}
|
|
24
|
-
ngOnDestroy() {
|
|
25
|
-
this.map.removeInteraction(this.interaction);
|
|
26
|
-
this.interaction.un('change', this.emitChangeEvent);
|
|
27
|
-
this.interaction.un('modifystart', this.emitModifyStartEvent);
|
|
28
|
-
this.interaction.un('modifyend', this.emitModifyEndEvent);
|
|
29
|
-
this.interaction.un('propertychange', this.emitPropertyChangeEvent);
|
|
30
|
-
this.interaction = null;
|
|
31
|
-
}
|
|
32
|
-
addModifyInteraction() {
|
|
33
|
-
if (undefined !== this.map) {
|
|
34
|
-
this.interaction = new Modify({
|
|
35
|
-
features: this.features,
|
|
36
|
-
deleteCondition: (e) => {
|
|
37
|
-
if (e.type == 'click' && e.originalEvent.ctrlKey) {
|
|
38
|
-
return true;
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
this.interaction.on('change', this.emitChangeEvent);
|
|
46
|
-
this.interaction.on('modifystart', this.emitModifyStartEvent);
|
|
47
|
-
this.interaction.on('modifyend', this.emitModifyEndEvent);
|
|
48
|
-
this.interaction.on('propertychange', this.emitPropertyChangeEvent);
|
|
49
|
-
this.map.addInteraction(this.interaction);
|
|
50
|
-
this.changeDetectorRef.detectChanges();
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
InteractionModifyComponent.decorators = [
|
|
55
|
-
{ type: Component, args: [{
|
|
56
|
-
selector: 'ol-map > ol-modify',
|
|
57
|
-
template: '<ng-content></ng-content>',
|
|
58
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
59
|
-
},] }
|
|
60
|
-
];
|
|
61
|
-
InteractionModifyComponent.ctorParameters = () => [
|
|
62
|
-
{ type: ChangeDetectorRef },
|
|
63
|
-
{ type: MapComponent }
|
|
64
|
-
];
|
|
65
|
-
InteractionModifyComponent.propDecorators = {
|
|
66
|
-
features: [{ type: Input }],
|
|
67
|
-
change: [{ type: Output }],
|
|
68
|
-
modifyStart: [{ type: Output }],
|
|
69
|
-
modifyEnd: [{ type: Output }],
|
|
70
|
-
propertyChange: [{ type: Output }]
|
|
71
|
-
};
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24tbW9kaWZ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZiLW9wZW5sYXllcnMvc3JjL2xpYi9pbnRlcmFjdGlvbnMvaW50ZXJhY3Rpb24tbW9kaWZ5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzFILE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFPaEQsTUFBTSxPQUFPLDBCQUEwQjtJQUVyQyxZQUFzQixpQkFBb0MsRUFDcEMsWUFBMEI7UUFEMUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQU10QyxXQUFNLEdBQTZCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdEQsZ0JBQVcsR0FBNkIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzRCxjQUFTLEdBQTZCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDekQsbUJBQWMsR0FBNkIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQXVDeEUsaUJBQWlCO1FBRVQsb0JBQWUsR0FBRyxDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xFLHlCQUFvQixHQUFHLENBQUMsS0FBa0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUUsdUJBQWtCLEdBQUcsQ0FBQyxLQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4RSw0QkFBdUIsR0FBRyxDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBcER4RixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQVlELFFBQVEsS0FBSyxDQUFDO0lBRWQsZUFBZTtRQUNiLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsV0FBVyxHQUFFLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLElBQUksU0FBUyxLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRSxJQUFJLE1BQU0sQ0FBQztnQkFDM0IsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUN2QixlQUFlLEVBQUUsQ0FBQyxDQUFLLEVBQUMsRUFBRTtvQkFDeEIsSUFBRyxDQUFDLENBQUMsSUFBSSxJQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRTt3QkFBRSxPQUFRLElBQUksQ0FBQTtxQkFBRTt5QkFDMUQ7d0JBQUUsT0FBTyxLQUFLLENBQUE7cUJBQUU7Z0JBQ3ZCLENBQUM7YUFDRixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUM5RCxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN4QztJQUNILENBQUM7OztZQXRERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsUUFBUSxFQUFFLDJCQUEyQjtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7OztZQVhPLGlCQUFpQjtZQUtoQixZQUFZOzs7dUJBY2xCLEtBQUs7cUJBRUwsTUFBTTswQkFDTixNQUFNO3dCQUNOLE1BQU07NkJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE91dHB1dCwgT25Jbml0LCBJbnB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXAsIEZlYXR1cmUsIENvbGxlY3Rpb24sIE1hcEJyb3dzZXJFdmVudCB9IGZyb20gJ29sJztcbmltcG9ydCB7IEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbSc7XG5pbXBvcnQgeyBNb2RpZnkgfSBmcm9tICdvbC9pbnRlcmFjdGlvbic7XG5pbXBvcnQgeyBNb2RpZnlFdmVudCB9IGZyb20gJ29sL2ludGVyYWN0aW9uL01vZGlmeSc7XG5pbXBvcnQgeyBNYXBDb21wb25lbnQgfSBmcm9tICcuLi9tYXAuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2wtbWFwID4gb2wtbW9kaWZ5JyxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgSW50ZXJhY3Rpb25Nb2RpZnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBtYXBDb21wb25lbnQ6IE1hcENvbXBvbmVudCkge1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0YWNoKCk7XG4gIH1cblxuICBASW5wdXQoKSBmZWF0dXJlczogQ29sbGVjdGlvbjxGZWF0dXJlPEdlb21ldHJ5Pj47XG5cbiAgQE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPE1vZGlmeUV2ZW50Pj0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgbW9kaWZ5U3RhcnQ6IEV2ZW50RW1pdHRlcjxNb2RpZnlFdmVudD49IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG1vZGlmeUVuZDogRXZlbnRFbWl0dGVyPE1vZGlmeUV2ZW50Pj0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHJvcGVydHlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxNb2RpZnlFdmVudD49IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIG1hcDogTWFwO1xuICBwcml2YXRlIGludGVyYWN0aW9uOiBNb2RpZnk7XG5cbiAgbmdPbkluaXQoKSB7IH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5tYXAgPSB0aGlzLm1hcENvbXBvbmVudC5nZXRNYXAoKTtcbiAgICB0aGlzLmFkZE1vZGlmeUludGVyYWN0aW9uKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm1hcC5yZW1vdmVJbnRlcmFjdGlvbih0aGlzLmludGVyYWN0aW9uKTtcbiAgICB0aGlzLmludGVyYWN0aW9uLnVuKCdjaGFuZ2UnLCB0aGlzLmVtaXRDaGFuZ2VFdmVudCk7XG4gICAgdGhpcy5pbnRlcmFjdGlvbi51bignbW9kaWZ5c3RhcnQnLCB0aGlzLmVtaXRNb2RpZnlTdGFydEV2ZW50KTtcbiAgICB0aGlzLmludGVyYWN0aW9uLnVuKCdtb2RpZnllbmQnLCB0aGlzLmVtaXRNb2RpZnlFbmRFdmVudCk7XG4gICAgdGhpcy5pbnRlcmFjdGlvbi51bigncHJvcGVydHljaGFuZ2UnLCB0aGlzLmVtaXRQcm9wZXJ0eUNoYW5nZUV2ZW50KTtcbiAgICB0aGlzLmludGVyYWN0aW9uPSBudWxsO1xuICB9XG5cbiAgYWRkTW9kaWZ5SW50ZXJhY3Rpb24oKSB7XG4gICAgaWYgKHVuZGVmaW5lZCAhPT0gdGhpcy5tYXApIHtcbiAgICAgIHRoaXMuaW50ZXJhY3Rpb249IG5ldyBNb2RpZnkoe1xuICAgICAgICBmZWF0dXJlczogdGhpcy5mZWF0dXJlcyxcbiAgICAgICAgZGVsZXRlQ29uZGl0aW9uOiAoZTphbnkpPT4ge1xuICAgICAgICAgIGlmKGUudHlwZT09J2NsaWNrJyAmJiBlLm9yaWdpbmFsRXZlbnQuY3RybEtleSkgeyByZXR1cm4gIHRydWUgfVxuICAgICAgICAgIGVsc2UgeyByZXR1cm4gZmFsc2UgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMuaW50ZXJhY3Rpb24ub24oJ2NoYW5nZScsIHRoaXMuZW1pdENoYW5nZUV2ZW50KTtcbiAgICAgIHRoaXMuaW50ZXJhY3Rpb24ub24oJ21vZGlmeXN0YXJ0JywgdGhpcy5lbWl0TW9kaWZ5U3RhcnRFdmVudCk7XG4gICAgICB0aGlzLmludGVyYWN0aW9uLm9uKCdtb2RpZnllbmQnLCB0aGlzLmVtaXRNb2RpZnlFbmRFdmVudCk7XG4gICAgICB0aGlzLmludGVyYWN0aW9uLm9uKCdwcm9wZXJ0eWNoYW5nZScsIHRoaXMuZW1pdFByb3BlcnR5Q2hhbmdlRXZlbnQpO1xuICAgICAgdGhpcy5tYXAuYWRkSW50ZXJhY3Rpb24odGhpcy5pbnRlcmFjdGlvbik7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICAvLyAqKiBlbWl0IGV2ZW50c1xuICBcbiAgcHJpdmF0ZSBlbWl0Q2hhbmdlRXZlbnQgPSAoZXZlbnQ6IE1vZGlmeUV2ZW50KSA9PiB0aGlzLmNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgcHJpdmF0ZSBlbWl0TW9kaWZ5U3RhcnRFdmVudCA9IChldmVudDogTW9kaWZ5RXZlbnQpID0+IHRoaXMubW9kaWZ5U3RhcnQuZW1pdChldmVudCk7XG4gIHByaXZhdGUgZW1pdE1vZGlmeUVuZEV2ZW50ID0gKGV2ZW50OiBNb2RpZnlFdmVudCkgPT4gdGhpcy5tb2RpZnlFbmQuZW1pdChldmVudCk7XG4gIHByaXZhdGUgZW1pdFByb3BlcnR5Q2hhbmdlRXZlbnQgPSAoZXZlbnQ6IE1vZGlmeUV2ZW50KSA9PiB0aGlzLnByb3BlcnR5Q2hhbmdlLmVtaXQoZXZlbnQpO1xuXG59XG4iXX0=
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Directive, Input } from '@angular/core';
|
|
2
|
-
import { DoubleClickZoom, DragPan, DragRotate, DragZoom, KeyboardPan, KeyboardZoom, MouseWheelZoom, PinchZoom } from 'ol/interaction';
|
|
3
|
-
import { MapComponent } from './map.component';
|
|
4
|
-
export class InteractionsDirective {
|
|
5
|
-
constructor(changeDetectorRef, mapComponent) {
|
|
6
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
7
|
-
this.mapComponent = mapComponent;
|
|
8
|
-
this.interactions = [];
|
|
9
|
-
this.interactionList = {
|
|
10
|
-
dragpan: DragPan,
|
|
11
|
-
dragrotate: DragRotate,
|
|
12
|
-
dragzoom: DragZoom,
|
|
13
|
-
doubleclickzoom: DoubleClickZoom,
|
|
14
|
-
keyboardpan: KeyboardPan,
|
|
15
|
-
keyboardzoom: KeyboardZoom,
|
|
16
|
-
mousewheelzoom: MouseWheelZoom,
|
|
17
|
-
pinchzoom: PinchZoom
|
|
18
|
-
};
|
|
19
|
-
this.changeDetectorRef.detach();
|
|
20
|
-
}
|
|
21
|
-
set olInteractions(value) {
|
|
22
|
-
this.interactions = value;
|
|
23
|
-
this.setInteractions();
|
|
24
|
-
}
|
|
25
|
-
ngOnInit() {
|
|
26
|
-
this.setInteractions();
|
|
27
|
-
}
|
|
28
|
-
setInteractions() {
|
|
29
|
-
const map = this.mapComponent.getMap();
|
|
30
|
-
if (undefined !== map) {
|
|
31
|
-
map.getInteractions().clear();
|
|
32
|
-
if (!this.interactions || this.interactions.length < 0)
|
|
33
|
-
return;
|
|
34
|
-
for (const config of this.interactions) {
|
|
35
|
-
this.addInteraction(map, config);
|
|
36
|
-
}
|
|
37
|
-
this.changeDetectorRef.detectChanges();
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
addInteraction(map, controlConfig) {
|
|
41
|
-
if (!this.interactionList[controlConfig.name]) {
|
|
42
|
-
console.error(`Unknown interaction ${controlConfig.name}`);
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
const newInteraction = new this.interactionList[controlConfig.name](controlConfig.options);
|
|
46
|
-
map.addInteraction(newInteraction);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
InteractionsDirective.decorators = [
|
|
50
|
-
{ type: Directive, args: [{
|
|
51
|
-
selector: 'ol-map > [olInteractions]'
|
|
52
|
-
},] }
|
|
53
|
-
];
|
|
54
|
-
InteractionsDirective.ctorParameters = () => [
|
|
55
|
-
{ type: ChangeDetectorRef },
|
|
56
|
-
{ type: MapComponent }
|
|
57
|
-
];
|
|
58
|
-
InteractionsDirective.propDecorators = {
|
|
59
|
-
olInteractions: [{ type: Input }]
|
|
60
|
-
};
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb25zLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2ZiLW9wZW5sYXllcnMvc3JjL2xpYi9pbnRlcmFjdGlvbnMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFDTCxlQUFlLEVBQ2YsT0FBTyxFQUNQLFVBQVUsRUFDVixRQUFRLEVBQ1IsV0FBVyxFQUNYLFlBQVksRUFDWixjQUFjLEVBQ2QsU0FBUyxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBSzdDLE1BQU0sT0FBTyxxQkFBcUI7SUFjaEMsWUFBc0IsaUJBQW9DLEVBQ3BDLFlBQTBCO1FBRDFCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFieEMsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDVCxvQkFBZSxHQUFHO1lBQ2pDLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLGVBQWUsRUFBRSxlQUFlO1lBQ2hDLFdBQVcsRUFBRSxXQUFXO1lBQ3hCLFlBQVksRUFBRSxZQUFZO1lBQzFCLGNBQWMsRUFBRSxjQUFjO1lBQzlCLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUM7UUFJQSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQ0ksY0FBYyxDQUFDLEtBQVk7UUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN2QyxJQUFJLFNBQVMsS0FBSyxHQUFHLEVBQUU7WUFDckIsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQUUsT0FBTztZQUMvRCxLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQ2xDO1lBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQUVPLGNBQWMsQ0FBQyxHQUFHLEVBQUUsYUFBYTtRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDN0MsT0FBTyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDM0QsT0FBTztTQUNSO1FBQ0QsTUFBTSxjQUFjLEdBQUcsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0YsR0FBRyxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNyQyxDQUFDOzs7WUFuREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwyQkFBMkI7YUFDdEM7OztZQWZPLGlCQUFpQjtZQVdqQixZQUFZOzs7NkJBd0JqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIERvdWJsZUNsaWNrWm9vbSxcbiAgRHJhZ1BhbixcbiAgRHJhZ1JvdGF0ZSxcbiAgRHJhZ1pvb20sXG4gIEtleWJvYXJkUGFuLFxuICBLZXlib2FyZFpvb20sXG4gIE1vdXNlV2hlZWxab29tLFxuICBQaW5jaFpvb21cbn0gZnJvbSAnb2wvaW50ZXJhY3Rpb24nO1xuaW1wb3J0IHtNYXBDb21wb25lbnR9IGZyb20gJy4vbWFwLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ29sLW1hcCA+IFtvbEludGVyYWN0aW9uc10nXG59KVxuZXhwb3J0IGNsYXNzIEludGVyYWN0aW9uc0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHJpdmF0ZSBpbnRlcmFjdGlvbnMgPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbnRlcmFjdGlvbkxpc3QgPSB7XG4gICAgZHJhZ3BhbjogRHJhZ1BhbixcbiAgICBkcmFncm90YXRlOiBEcmFnUm90YXRlLFxuICAgIGRyYWd6b29tOiBEcmFnWm9vbSxcbiAgICBkb3VibGVjbGlja3pvb206IERvdWJsZUNsaWNrWm9vbSxcbiAgICBrZXlib2FyZHBhbjogS2V5Ym9hcmRQYW4sXG4gICAga2V5Ym9hcmR6b29tOiBLZXlib2FyZFpvb20sXG4gICAgbW91c2V3aGVlbHpvb206IE1vdXNlV2hlZWxab29tLFxuICAgIHBpbmNoem9vbTogUGluY2hab29tXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIG1hcENvbXBvbmVudDogTWFwQ29tcG9uZW50KSB7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRhY2goKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBvbEludGVyYWN0aW9ucyh2YWx1ZTogYW55W10pIHtcbiAgICB0aGlzLmludGVyYWN0aW9ucyA9IHZhbHVlO1xuICAgIHRoaXMuc2V0SW50ZXJhY3Rpb25zKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldEludGVyYWN0aW9ucygpO1xuICB9XG5cbiAgc2V0SW50ZXJhY3Rpb25zKCkge1xuICAgIGNvbnN0IG1hcCA9IHRoaXMubWFwQ29tcG9uZW50LmdldE1hcCgpO1xuICAgIGlmICh1bmRlZmluZWQgIT09IG1hcCkge1xuICAgICAgbWFwLmdldEludGVyYWN0aW9ucygpLmNsZWFyKCk7XG4gICAgICBpZiAoIXRoaXMuaW50ZXJhY3Rpb25zIHx8IHRoaXMuaW50ZXJhY3Rpb25zLmxlbmd0aCA8IDApIHJldHVybjtcbiAgICAgIGZvciAoY29uc3QgY29uZmlnIG9mIHRoaXMuaW50ZXJhY3Rpb25zKSB7XG4gICAgICAgIHRoaXMuYWRkSW50ZXJhY3Rpb24obWFwLCBjb25maWcpO1xuICAgICAgfVxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRJbnRlcmFjdGlvbihtYXAsIGNvbnRyb2xDb25maWcpIHtcbiAgICBpZiAoIXRoaXMuaW50ZXJhY3Rpb25MaXN0W2NvbnRyb2xDb25maWcubmFtZV0pIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFVua25vd24gaW50ZXJhY3Rpb24gJHtjb250cm9sQ29uZmlnLm5hbWV9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5ld0ludGVyYWN0aW9uID0gbmV3IHRoaXMuaW50ZXJhY3Rpb25MaXN0W2NvbnRyb2xDb25maWcubmFtZV0oY29udHJvbENvbmZpZy5vcHRpb25zKTtcbiAgICBtYXAuYWRkSW50ZXJhY3Rpb24obmV3SW50ZXJhY3Rpb24pO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, Output } from '@angular/core';
|
|
2
|
-
import ImageLayer from 'ol/layer/Image';
|
|
3
|
-
import TileLayer from 'ol/layer/Tile';
|
|
4
|
-
import VectorTileLayer from 'ol/layer/VectorTile';
|
|
5
|
-
// import VectorImageLayer from 'ol/layer/VectorImage';
|
|
6
|
-
import VectorTileSource from 'ol/source/VectorTile';
|
|
7
|
-
import { Cluster, ImageWMS, OSM, TileImage, TileWMS, WMTS, XYZ } from 'ol/source';
|
|
8
|
-
import VectorLayer from 'ol/layer/Vector';
|
|
9
|
-
import VectorSource from 'ol/source/Vector';
|
|
10
|
-
import { MapComponent } from './map.component';
|
|
11
|
-
import { LayerType, SourceType } from './models';
|
|
12
|
-
import { osmLayer, osmSource } from './util';
|
|
13
|
-
import { AsyncSubject } from 'rxjs';
|
|
14
|
-
export class LayerComponent {
|
|
15
|
-
constructor(changeDetectorRef, mapComponent) {
|
|
16
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
17
|
-
this.mapComponent = mapComponent;
|
|
18
|
-
/**
|
|
19
|
-
* This event is triggered after the layer is initialized
|
|
20
|
-
* Use this to have access to the layer and some helper functions
|
|
21
|
-
*/
|
|
22
|
-
this.layerReady = new AsyncSubject(); // AsyncSubject will only store the last value, and only publish it when the sequence is completed
|
|
23
|
-
this.changeDetectorRef.detach();
|
|
24
|
-
}
|
|
25
|
-
ngOnInit() {
|
|
26
|
-
switch (this.layerType) {
|
|
27
|
-
case LayerType.IMAGE:
|
|
28
|
-
this.source = new ImageWMS(this.sourceOptions);
|
|
29
|
-
this.layer = new ImageLayer(Object.assign(this, Object.assign({}, this.properties)));
|
|
30
|
-
break;
|
|
31
|
-
case LayerType.TILE:
|
|
32
|
-
this.source = this.getTileSource(this.sourceOptions);
|
|
33
|
-
this.layer = new TileLayer(Object.assign(this, Object.assign({}, this.properties)));
|
|
34
|
-
break;
|
|
35
|
-
case LayerType.VECTOR_TILE:
|
|
36
|
-
this.source = new VectorTileSource(this.sourceOptions);
|
|
37
|
-
this.layer = new VectorTileLayer(Object.assign(this, Object.assign({}, this.properties)));
|
|
38
|
-
break;
|
|
39
|
-
case LayerType.VECTOR:
|
|
40
|
-
if (this.sourceOptions.sourceType === SourceType.CLUSTER) {
|
|
41
|
-
this.source = new Cluster(this.sourceOptions);
|
|
42
|
-
this.layer = new VectorLayer(Object.assign(this, Object.assign({}, this.properties)));
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
this.source = new VectorSource(this.sourceOptions);
|
|
46
|
-
this.layer = new VectorLayer(Object.assign(this, Object.assign({}, this.properties)));
|
|
47
|
-
}
|
|
48
|
-
break;
|
|
49
|
-
default:
|
|
50
|
-
this.layer = osmLayer();
|
|
51
|
-
break;
|
|
52
|
-
}
|
|
53
|
-
const map = this.mapComponent.getMap();
|
|
54
|
-
if (this.layer && map) {
|
|
55
|
-
map.addLayer(this.layer);
|
|
56
|
-
map.render();
|
|
57
|
-
this.layerReady.next(this.layer);
|
|
58
|
-
this.layerReady.complete();
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
ngOnChanges(changes) {
|
|
62
|
-
if (this.layer) {
|
|
63
|
-
const properties = {};
|
|
64
|
-
for (const key in changes) {
|
|
65
|
-
properties[key] = changes[key].currentValue;
|
|
66
|
-
}
|
|
67
|
-
this.layer.setProperties(properties, false);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
ngOnDestroy() {
|
|
71
|
-
const map = this.mapComponent.getMap();
|
|
72
|
-
if (this.layer && map) {
|
|
73
|
-
map.removeLayer(this.layer);
|
|
74
|
-
map.render();
|
|
75
|
-
this.layer = null;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
getLayer() {
|
|
79
|
-
return this.layer;
|
|
80
|
-
}
|
|
81
|
-
getMap() {
|
|
82
|
-
return this.mapComponent.getMap();
|
|
83
|
-
}
|
|
84
|
-
getSource() {
|
|
85
|
-
let olSource = this.layer.getSource();
|
|
86
|
-
if (olSource instanceof Cluster) {
|
|
87
|
-
olSource = olSource.getSource();
|
|
88
|
-
}
|
|
89
|
-
return olSource;
|
|
90
|
-
}
|
|
91
|
-
getUrl() {
|
|
92
|
-
if (this.source instanceof ImageWMS) {
|
|
93
|
-
return this.source.getUrl();
|
|
94
|
-
}
|
|
95
|
-
if (this.source instanceof WMTS) {
|
|
96
|
-
return this.source.getUrls()[0];
|
|
97
|
-
}
|
|
98
|
-
if (this.source instanceof TileWMS) {
|
|
99
|
-
return this.source.getUrls()[0];
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
return '';
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
updateParams(name, value) {
|
|
106
|
-
const params = this.source.getParams();
|
|
107
|
-
if (name && value) {
|
|
108
|
-
params[name.toUpperCase()] = value;
|
|
109
|
-
}
|
|
110
|
-
params['T'] = new Date().getMilliseconds();
|
|
111
|
-
this.source.updateParams(params); // {'TIME': startDate.toISOString()}
|
|
112
|
-
}
|
|
113
|
-
getTileSource(sourceOptions) {
|
|
114
|
-
switch (sourceOptions.sourceType) {
|
|
115
|
-
case SourceType.IMAGEWMS:
|
|
116
|
-
return new ImageWMS(sourceOptions);
|
|
117
|
-
case SourceType.OSM:
|
|
118
|
-
return new OSM(sourceOptions);
|
|
119
|
-
case SourceType.TILEWMS:
|
|
120
|
-
return new TileWMS(sourceOptions);
|
|
121
|
-
case SourceType.TILEIMAGE:
|
|
122
|
-
return new TileImage(sourceOptions);
|
|
123
|
-
case SourceType.WMTS:
|
|
124
|
-
return new WMTS(sourceOptions);
|
|
125
|
-
case SourceType.XYZ:
|
|
126
|
-
return new XYZ(sourceOptions);
|
|
127
|
-
default:
|
|
128
|
-
return osmSource();
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
LayerComponent.decorators = [
|
|
133
|
-
{ type: Component, args: [{
|
|
134
|
-
selector: 'ol-map > ol-layer',
|
|
135
|
-
template: '<ng-content></ng-content>',
|
|
136
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
137
|
-
},] }
|
|
138
|
-
];
|
|
139
|
-
LayerComponent.ctorParameters = () => [
|
|
140
|
-
{ type: ChangeDetectorRef },
|
|
141
|
-
{ type: MapComponent }
|
|
142
|
-
];
|
|
143
|
-
LayerComponent.propDecorators = {
|
|
144
|
-
layerReady: [{ type: Output }],
|
|
145
|
-
layerType: [{ type: Input }],
|
|
146
|
-
sourceType: [{ type: Input }],
|
|
147
|
-
opacity: [{ type: Input }],
|
|
148
|
-
visible: [{ type: Input }],
|
|
149
|
-
extent: [{ type: Input }],
|
|
150
|
-
zIndex: [{ type: Input }],
|
|
151
|
-
minResolution: [{ type: Input }],
|
|
152
|
-
maxResolution: [{ type: Input }],
|
|
153
|
-
sourceOptions: [{ type: Input }],
|
|
154
|
-
style: [{ type: Input }],
|
|
155
|
-
properties: [{ type: Input }]
|
|
156
|
-
};
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZmItb3BlbmxheWVycy9zcmMvbGliL2xheWVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQzFDLFNBQVMsRUFDVCxLQUFLLEVBSUwsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sVUFBVSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sU0FBUyxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLGVBQWUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCx1REFBdUQ7QUFDdkQsT0FBTyxnQkFBZ0IsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQVUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQ3hGLE9BQU8sV0FBVyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sWUFBWSxNQUFNLGtCQUFrQixDQUFDO0FBRTVDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQVMsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUN2RCxPQUFPLEVBQUMsUUFBUSxFQUFFLFNBQVMsRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBT2xDLE1BQU0sT0FBTyxjQUFjO0lBdUJ6QixZQUFzQixpQkFBb0MsRUFDcEMsWUFBMEI7UUFEMUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQW5CaEQ7OztXQUdHO1FBQ08sZUFBVSxHQUF3QixJQUFJLFlBQVksRUFBRSxDQUFD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Q3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEOzs7WUE1QjBCLGlCQUFpQjtZQW1CcEMsWUFBWTs7O3lCQW1CakIsTUFBTTt3QkFFTixLQUFLO3lCQUNMLEtBQUs7c0JBQ0wsS0FBSztzQkFDTCxLQUFLO3FCQUNMLEtBQUs7cUJBQ0wsS0FBSzs0QkFDTCxLQUFLOzRCQUNMLEtBQUs7NEJBQ0wsS0FBSztvQkFDTCxLQUFLO3lCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TGF5ZXJ9IGZyb20gJ29sL2xheWVyJztcbmltcG9ydCBJbWFnZUxheWVyIGZyb20gJ29sL2xheWVyL0ltYWdlJztcbmltcG9ydCBUaWxlTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvVGlsZSc7XG5pbXBvcnQgVmVjdG9yVGlsZUxheWVyIGZyb20gJ29sL2xheWVyL1ZlY3RvclRpbGUnO1xuLy8gaW1wb3J0IFZlY3RvckltYWdlTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvVmVjdG9ySW1hZ2UnO1xuaW1wb3J0IFZlY3RvclRpbGVTb3VyY2UgZnJvbSAnb2wvc291cmNlL1ZlY3RvclRpbGUnO1xuaW1wb3J0IHtDbHVzdGVyLCBJbWFnZVdNUywgT1NNLCBTb3VyY2UsIFRpbGVJbWFnZSwgVGlsZVdNUywgV01UUywgWFlafSBmcm9tICdvbC9zb3VyY2UnO1xuaW1wb3J0IFZlY3RvckxheWVyIGZyb20gJ29sL2xheWVyL1ZlY3Rvcic7XG5pbXBvcnQgVmVjdG9yU291cmNlIGZyb20gJ29sL3NvdXJjZS9WZWN0b3InO1xuXG5pbXBvcnQge01hcENvbXBvbmVudH0gZnJvbSAnLi9tYXAuY29tcG9uZW50JztcbmltcG9ydCB7RXh0ZW50LCBMYXllclR5cGUsIFNvdXJjZVR5cGV9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7b3NtTGF5ZXIsIG9zbVNvdXJjZX0gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7QXN5bmNTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2wtbWFwID4gb2wtbGF5ZXInLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBMYXllckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuXG4gIHByb3RlY3RlZCBsYXllcjogTGF5ZXI7XG4gIHB1YmxpYyBzb3VyY2U6IGFueTtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyB0cmlnZ2VyZWQgYWZ0ZXIgdGhlIGxheWVyIGlzIGluaXRpYWxpemVkXG4gICAqIFVzZSB0aGlzIHRvIGhhdmUgYWNjZXNzIHRvIHRoZSBsYXllciBhbmQgc29tZSBoZWxwZXIgZnVuY3Rpb25zXG4gICAqL1xuICBAT3V0cHV0KCkgbGF5ZXJSZWFkeTogQXN5bmNTdWJqZWN0PExheWVyPiA9IG5ldyBBc3luY1N1YmplY3QoKTsgLy8gQXN5bmNTdWJqZWN0IHdpbGwgb25seSBzdG9yZSB0aGUgbGFzdCB2YWx1ZSwgYW5kIG9ubHkgcHVibGlzaCBpdCB3aGVuIHRoZSBzZXF1ZW5jZSBpcyBjb21wbGV0ZWRcblxuICBASW5wdXQoKSBsYXllclR5cGU6IExheWVyVHlwZTtcbiAgQElucHV0KCkgc291cmNlVHlwZTogU291cmNlVHlwZTtcbiAgQElucHV0KCkgb3BhY2l0eTogbnVtYmVyO1xuICBASW5wdXQoKSB2aXNpYmxlOiBib29sZWFuO1xuICBASW5wdXQoKSBleHRlbnQ6IEV4dGVudDtcbiAgQElucHV0KCkgekluZGV4OiBudW1iZXI7XG4gIEBJbnB1dCgpIG1pblJlc29sdXRpb246IG51bWJlcjtcbiAgQElucHV0KCkgbWF4UmVzb2x1dGlvbjogbnVtYmVyO1xuICBASW5wdXQoKSBzb3VyY2VPcHRpb25zOiBhbnk7XG4gIEBJbnB1dCgpIHN0eWxlOiBhbnk7XG4gIEBJbnB1dCgpIHByb3BlcnRpZXM6IHsgW2luZGV4OiBzdHJpbmddOiBhbnkgfTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgbWFwQ29tcG9uZW50OiBNYXBDb21wb25lbnQpIHtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGFjaCgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG5cbiAgICBzd2l0Y2ggKHRoaXMubGF5ZXJUeXBlKSB7XG4gICAgICBjYXNlIExheWVyVHlwZS5JTUFHRTpcbiAgICAgICAgdGhpcy5zb3VyY2UgPSBuZXcgSW1hZ2VXTVModGhpcy5zb3VyY2VPcHRpb25zKTtcbiAgICAgICAgdGhpcy5sYXllciA9IG5ldyBJbWFnZUxheWVyKE9iamVjdC5hc3NpZ24odGhpcywgey4uLnRoaXMucHJvcGVydGllc30pKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIExheWVyVHlwZS5USUxFOlxuICAgICAgICB0aGlzLnNvdXJjZSA9IHRoaXMuZ2V0VGlsZVNvdXJjZSh0aGlzLnNvdXJjZU9wdGlvbnMpO1xuICAgICAgICB0aGlzLmxheWVyID0gbmV3IFRpbGVMYXllcihPYmplY3QuYXNzaWduKHRoaXMsIHsuLi50aGlzLnByb3BlcnRpZXN9KSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBMYXllclR5cGUuVkVDVE9SX1RJTEU6XG4gICAgICAgIHRoaXMuc291cmNlID0gbmV3IFZlY3RvclRpbGVTb3VyY2UodGhpcy5zb3VyY2VPcHRpb25zKTtcbiAgICAgICAgdGhpcy5sYXllciA9IG5ldyBWZWN0b3JUaWxlTGF5ZXIoT2JqZWN0LmFzc2lnbih0aGlzLCB7Li4udGhpcy5wcm9wZXJ0aWVzfSkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTGF5ZXJUeXBlLlZFQ1RPUjpcbiAgICAgICAgaWYgKHRoaXMuc291cmNlT3B0aW9ucy5zb3VyY2VUeXBlID09PSBTb3VyY2VUeXBlLkNMVVNURVIpIHtcbiAgICAgICAgICB0aGlzLnNvdXJjZSA9IG5ldyBDbHVzdGVyKHRoaXMuc291cmNlT3B0aW9ucyk7XG4gICAgICAgICAgdGhpcy5sYXllciA9IG5ldyBWZWN0b3JMYXllcihPYmplY3QuYXNzaWduKHRoaXMsIHsuLi50aGlzLnByb3BlcnRpZXN9KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zb3VyY2UgPSBuZXcgVmVjdG9yU291cmNlKHRoaXMuc291cmNlT3B0aW9ucyk7XG4gICAgICAgICAgdGhpcy5sYXllciA9IG5ldyBWZWN0b3JMYXllcihPYmplY3QuYXNzaWduKHRoaXMsIHsuLi50aGlzLnByb3BlcnRpZXN9KSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmxheWVyID0gb3NtTGF5ZXIoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY29uc3QgbWFwID0gdGhpcy5tYXBDb21wb25lbnQuZ2V0TWFwKCk7XG4gICAgaWYgKHRoaXMubGF5ZXIgJiYgbWFwKSB7XG4gICAgICBtYXAuYWRkTGF5ZXIodGhpcy5sYXllcik7XG4gICAgICBtYXAucmVuZGVyKCk7XG4gICAgICB0aGlzLmxheWVyUmVhZHkubmV4dCh0aGlzLmxheWVyKTtcbiAgICAgIHRoaXMubGF5ZXJSZWFkeS5jb21wbGV0ZSgpO1xuICAgIH1cblxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICh0aGlzLmxheWVyKSB7XG4gICAgICBjb25zdCBwcm9wZXJ0aWVzOiB7IFtpbmRleDogc3RyaW5nXTogYW55IH0gPSB7fTtcblxuICAgICAgZm9yIChjb25zdCBrZXkgaW4gY2hhbmdlcykge1xuICAgICAgICBwcm9wZXJ0aWVzW2tleV0gPSBjaGFuZ2VzW2tleV0uY3VycmVudFZhbHVlO1xuICAgICAgfVxuICAgICAgdGhpcy5sYXllci5zZXRQcm9wZXJ0aWVzKHByb3BlcnRpZXMsIGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBjb25zdCBtYXAgPSB0aGlzLm1hcENvbXBvbmVudC5nZXRNYXAoKTtcbiAgICBpZiAodGhpcy5sYXllciAmJiBtYXApIHtcbiAgICAgIG1hcC5yZW1vdmVMYXllcih0aGlzLmxheWVyKTtcbiAgICAgIG1hcC5yZW5kZXIoKTtcbiAgICAgIHRoaXMubGF5ZXIgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGdldExheWVyKCk6IExheWVyIHtcbiAgICByZXR1cm4gdGhpcy5sYXllcjtcbiAgfVxuXG4gIGdldE1hcCgpIHtcbiAgICByZXR1cm4gdGhpcy5tYXBDb21wb25lbnQuZ2V0TWFwKCk7XG4gIH1cblxuICBnZXRTb3VyY2UoKTogU291cmNlIHtcbiAgICBsZXQgb2xTb3VyY2UgPSB0aGlzLmxheWVyLmdldFNvdXJjZSgpO1xuICAgIGlmIChvbFNvdXJjZSBpbnN0YW5jZW9mIENsdXN0ZXIpIHtcbiAgICAgIG9sU291cmNlID0gb2xTb3VyY2UuZ2V0U291cmNlKCk7XG4gICAgfVxuICAgIHJldHVybiBvbFNvdXJjZTtcbiAgfVxuXG4gIGdldFVybCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnNvdXJjZSBpbnN0YW5jZW9mIEltYWdlV01TKSB7XG4gICAgICByZXR1cm4gdGhpcy5zb3VyY2UuZ2V0VXJsKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNvdXJjZSBpbnN0YW5jZW9mIFdNVFMpIHtcbiAgICAgIHJldHVybiB0aGlzLnNvdXJjZS5nZXRVcmxzKClbMF07XG4gICAgfVxuICAgIGlmICh0aGlzLnNvdXJjZSBpbnN0YW5jZW9mIFRpbGVXTVMpIHtcbiAgICAgIHJldHVybiB0aGlzLnNvdXJjZS5nZXRVcmxzKClbMF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cblxuICB1cGRhdGVQYXJhbXMobmFtZT86IHN0cmluZywgdmFsdWU/OiBhbnkpIHtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLnNvdXJjZS5nZXRQYXJhbXMoKTtcbiAgICBpZiAobmFtZSAmJiB2YWx1ZSkge1xuICAgICAgcGFyYW1zW25hbWUudG9VcHBlckNhc2UoKV0gPSB2YWx1ZTtcbiAgICB9XG4gICAgcGFyYW1zWydUJ10gPSBuZXcgRGF0ZSgpLmdldE1pbGxpc2Vjb25kcygpO1xuICAgIHRoaXMuc291cmNlLnVwZGF0ZVBhcmFtcyhwYXJhbXMpOyAvLyB7J1RJTUUnOiBzdGFydERhdGUudG9JU09TdHJpbmcoKX1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGlsZVNvdXJjZShzb3VyY2VPcHRpb25zOiBhbnkpIHtcblxuICAgIHN3aXRjaCAoc291cmNlT3B0aW9ucy5zb3VyY2VUeXBlKSB7XG4gICAgICBjYXNlIFNvdXJjZVR5cGUuSU1BR0VXTVM6XG4gICAgICAgIHJldHVybiBuZXcgSW1hZ2VXTVMoc291cmNlT3B0aW9ucyk7XG4gICAgICBjYXNlIFNvdXJjZVR5cGUuT1NNOlxuICAgICAgICByZXR1cm4gbmV3IE9TTShzb3VyY2VPcHRpb25zKTtcbiAgICAgIGNhc2UgU291cmNlVHlwZS5USUxFV01TOlxuICAgICAgICByZXR1cm4gbmV3IFRpbGVXTVMoc291cmNlT3B0aW9ucyk7XG4gICAgICBjYXNlIFNvdXJjZVR5cGUuVElMRUlNQUdFOlxuICAgICAgICByZXR1cm4gbmV3IFRpbGVJbWFnZShzb3VyY2VPcHRpb25zKTtcbiAgICAgIGNhc2UgU291cmNlVHlwZS5XTVRTOlxuICAgICAgICByZXR1cm4gbmV3IFdNVFMoc291cmNlT3B0aW9ucyk7XG4gICAgICBjYXNlIFNvdXJjZVR5cGUuWFlaOlxuICAgICAgICByZXR1cm4gbmV3IFhZWihzb3VyY2VPcHRpb25zKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBvc21Tb3VyY2UoKTtcbiAgICB9XG4gIH1cblxufVxuIl19
|