@artstesh/maps 6.0.1 → 6.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm2022/map/helpers/marker-style.helper.mjs +27 -1
- package/dist/esm2022/map/helpers/polygon-style.helper.mjs +22 -1
- package/dist/esm2022/map/helpers/stringify-feature.helper.mjs +24 -21
- package/dist/esm2022/map/helpers/text-style.helper.mjs +12 -1
- package/dist/esm2022/map/map-plate/controls/map-control-zoom/map-control-zoom.component.mjs +26 -9
- package/dist/esm2022/map/map-plate/controls/map-control-zoom/zoom-control.settings.mjs +72 -1
- package/dist/esm2022/map/map-plate/features/markers/markers.component.mjs +11 -1
- package/dist/esm2022/map/map-plate/features/polygons/polygons.component.mjs +11 -1
- package/dist/esm2022/map/map-plate/layers/cluster-layer/cluster-layer.component.mjs +16 -8
- package/dist/esm2022/map/map-plate/layers/cluster-layer/cluster-layer.settings.mjs +79 -1
- package/dist/esm2022/map/map-plate/layers/feature-layer/feature-layer.component.mjs +8 -8
- package/dist/esm2022/map/map-plate/layers/feature-layer/feature-layer.settings.mjs +37 -17
- package/dist/esm2022/map/map-plate/layers/tile-layer/tile-layer.component.mjs +7 -7
- package/dist/esm2022/map/map-plate/layers/tile-layer/tile-layer.settings.mjs +76 -1
- package/dist/esm2022/map/map-plate/map-plate.component.mjs +5 -5
- package/dist/esm2022/map/map-plate/tooltips/tooltip/tooltip.component.mjs +23 -23
- package/dist/esm2022/map/map-plate/tooltips/tooltip/tooltip.settings.mjs +2 -2
- package/dist/esm2022/map/messages/commands/fit-to-polygons.command.mjs +1 -1
- package/dist/esm2022/map/models/map-control.mjs +2 -2
- package/dist/esm2022/map/models/marker-model.mjs +1 -1
- package/dist/esm2022/map/models/polygon.model.mjs +12 -12
- package/dist/esm2022/map/services/feature.service.mjs +6 -6
- package/dist/esm2022/map/services/map-click.service.mjs +9 -9
- package/dist/esm2022/map/services/map-feature.service.mjs +1 -1
- package/dist/esm2022/map/services/map-state.service.mjs +2 -3
- package/dist/esm2022/src/map/helpers/marker-style.helper.mjs +27 -1
- package/dist/esm2022/src/map/helpers/polygon-style.helper.mjs +22 -1
- package/dist/esm2022/src/map/helpers/stringify-feature.helper.mjs +24 -21
- package/dist/esm2022/src/map/helpers/text-style.helper.mjs +12 -1
- package/dist/esm2022/src/map/map-plate/controls/map-control-zoom/map-control-zoom.component.mjs +26 -9
- package/dist/esm2022/src/map/map-plate/controls/map-control-zoom/zoom-control.settings.mjs +72 -1
- package/dist/esm2022/src/map/map-plate/features/markers/markers.component.mjs +11 -1
- package/dist/esm2022/src/map/map-plate/features/polygons/polygons.component.mjs +11 -1
- package/dist/esm2022/src/map/map-plate/layers/cluster-layer/cluster-layer.component.mjs +16 -8
- package/dist/esm2022/src/map/map-plate/layers/cluster-layer/cluster-layer.settings.mjs +79 -1
- package/dist/esm2022/src/map/map-plate/layers/feature-layer/feature-layer.component.mjs +8 -8
- package/dist/esm2022/src/map/map-plate/layers/feature-layer/feature-layer.settings.mjs +37 -17
- package/dist/esm2022/src/map/map-plate/layers/tile-layer/tile-layer.component.mjs +7 -7
- package/dist/esm2022/src/map/map-plate/layers/tile-layer/tile-layer.settings.mjs +76 -1
- package/dist/esm2022/src/map/map-plate/map-plate.component.mjs +5 -5
- package/dist/esm2022/src/map/map-plate/tooltips/tooltip/tooltip.component.mjs +23 -23
- package/dist/esm2022/src/map/map-plate/tooltips/tooltip/tooltip.settings.mjs +2 -2
- package/dist/esm2022/src/map/messages/commands/fit-to-polygons.command.mjs +1 -1
- package/dist/esm2022/src/map/models/map-control.mjs +2 -2
- package/dist/esm2022/src/map/models/marker-model.mjs +1 -1
- package/dist/esm2022/src/map/models/polygon.model.mjs +12 -12
- package/dist/esm2022/src/map/services/feature.service.mjs +6 -6
- package/dist/esm2022/src/map/services/map-click.service.mjs +9 -9
- package/dist/esm2022/src/map/services/map-feature.service.mjs +1 -1
- package/dist/esm2022/src/map/services/map-state.service.mjs +2 -3
- package/dist/fesm2022/maps-components-src-map.mjs +467 -116
- package/dist/fesm2022/maps-components-src-map.mjs.map +1 -1
- package/dist/fesm2022/maps-components.mjs +467 -116
- package/dist/fesm2022/maps-components.mjs.map +1 -1
- package/dist/map/helpers/marker-style.helper.d.ts +26 -0
- package/dist/map/helpers/polygon-style.helper.d.ts +21 -0
- package/dist/map/helpers/stringify-feature.helper.d.ts +18 -0
- package/dist/map/helpers/text-style.helper.d.ts +11 -0
- package/dist/map/map-plate/controls/map-control-zoom/map-control-zoom.component.d.ts +20 -3
- package/dist/map/map-plate/controls/map-control-zoom/zoom-control.settings.d.ts +71 -0
- package/dist/map/map-plate/features/markers/markers.component.d.ts +10 -0
- package/dist/map/map-plate/features/polygons/polygons.component.d.ts +10 -0
- package/dist/map/map-plate/layers/cluster-layer/cluster-layer.component.d.ts +10 -2
- package/dist/map/map-plate/layers/cluster-layer/cluster-layer.settings.d.ts +78 -0
- package/dist/map/map-plate/layers/feature-layer/feature-layer.component.d.ts +2 -2
- package/dist/map/map-plate/layers/feature-layer/feature-layer.settings.d.ts +36 -16
- package/dist/map/map-plate/layers/tile-layer/tile-layer.component.d.ts +1 -1
- package/dist/map/map-plate/layers/tile-layer/tile-layer.settings.d.ts +75 -0
- package/dist/map/map-plate/map-plate.component.d.ts +2 -2
- package/dist/map/map-plate/tooltips/tooltip/tooltip.component.d.ts +5 -5
- package/dist/map/map-plate/tooltips/tooltip/tooltip.settings.d.ts +1 -1
- package/dist/map/models/map-control.d.ts +1 -1
- package/dist/map/models/polygon.model.d.ts +2 -2
- package/dist/map/services/feature.service.d.ts +1 -1
- package/dist/map/services/map-click.service.d.ts +1 -1
- package/dist/src/map/helpers/marker-style.helper.d.ts +26 -0
- package/dist/src/map/helpers/polygon-style.helper.d.ts +21 -0
- package/dist/src/map/helpers/stringify-feature.helper.d.ts +18 -0
- package/dist/src/map/helpers/text-style.helper.d.ts +11 -0
- package/dist/src/map/map-plate/controls/map-control-zoom/map-control-zoom.component.d.ts +20 -3
- package/dist/src/map/map-plate/controls/map-control-zoom/zoom-control.settings.d.ts +71 -0
- package/dist/src/map/map-plate/features/markers/markers.component.d.ts +10 -0
- package/dist/src/map/map-plate/features/polygons/polygons.component.d.ts +10 -0
- package/dist/src/map/map-plate/layers/cluster-layer/cluster-layer.component.d.ts +10 -2
- package/dist/src/map/map-plate/layers/cluster-layer/cluster-layer.settings.d.ts +78 -0
- package/dist/src/map/map-plate/layers/feature-layer/feature-layer.component.d.ts +2 -2
- package/dist/src/map/map-plate/layers/feature-layer/feature-layer.settings.d.ts +36 -16
- package/dist/src/map/map-plate/layers/tile-layer/tile-layer.component.d.ts +1 -1
- package/dist/src/map/map-plate/layers/tile-layer/tile-layer.settings.d.ts +75 -0
- package/dist/src/map/map-plate/map-plate.component.d.ts +2 -2
- package/dist/src/map/map-plate/tooltips/tooltip/tooltip.component.d.ts +5 -5
- package/dist/src/map/map-plate/tooltips/tooltip/tooltip.settings.d.ts +1 -1
- package/dist/src/map/models/map-control.d.ts +1 -1
- package/dist/src/map/models/polygon.model.d.ts +2 -2
- package/dist/src/map/services/feature.service.d.ts +1 -1
- package/dist/src/map/services/map-click.service.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import Style from 'ol/style/Style';
|
|
2
2
|
import { Circle, Fill, Icon, Stroke } from 'ol/style';
|
|
3
|
+
/**
|
|
4
|
+
* Helper class to create and modify marker styles.
|
|
5
|
+
*/
|
|
3
6
|
export class MarkerStyleHelper {
|
|
7
|
+
/**
|
|
8
|
+
* Creates a new Style object from an SVG.
|
|
9
|
+
* @param {string} svg - The SVG string.
|
|
10
|
+
* @param {Array<number>} [size=[30, 30]] - The size of the icon image.
|
|
11
|
+
* @param {number} [zIndex=400] - The zIndex of the style.
|
|
12
|
+
* @returns {Style} A new Style object.
|
|
13
|
+
*/
|
|
4
14
|
static fromSvg(svg, size = [30, 30], zIndex = 400) {
|
|
5
15
|
let image = new Image();
|
|
6
16
|
image.src = 'data:image/svg+xml,' + escape(svg);
|
|
@@ -12,6 +22,15 @@ export class MarkerStyleHelper {
|
|
|
12
22
|
zIndex,
|
|
13
23
|
});
|
|
14
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Returns a Style object with a circle style.
|
|
27
|
+
*
|
|
28
|
+
* @param {number} radius - The radius of the circle.
|
|
29
|
+
* @param {string} fill - The fill color of the circle. Format: '#RRGGBB' or 'rgba(R, G, B, A)'.
|
|
30
|
+
* @param {string} strokeColor - The stroke color of the circle. Format: '#RRGGBB' or 'rgba(R, G, B, A)'.
|
|
31
|
+
* @param {number} [strokeWidth=1] - The width of the stroke. Default is 1.
|
|
32
|
+
* @returns {Style} - A Style object with a Circle image.
|
|
33
|
+
*/
|
|
15
34
|
static circle(radius, fill, strokeColor, strokeWidth = 1) {
|
|
16
35
|
return new Style({
|
|
17
36
|
image: new Circle({
|
|
@@ -21,9 +40,16 @@ export class MarkerStyleHelper {
|
|
|
21
40
|
}),
|
|
22
41
|
});
|
|
23
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Applies the given Text to the provided Style.
|
|
45
|
+
*
|
|
46
|
+
* @param {Style} style - The Style to modify.
|
|
47
|
+
* @param {Text} text - The Text to apply to the Style.
|
|
48
|
+
* @return {Style} - The modified Style with the applied Text.
|
|
49
|
+
*/
|
|
24
50
|
static withText(style, text) {
|
|
25
51
|
style.setText(text);
|
|
26
52
|
return style;
|
|
27
53
|
}
|
|
28
54
|
}
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2VyLXN0eWxlLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHMtY29tcG9uZW50cy9zcmMvbWFwL2hlbHBlcnMvbWFya2VyLXN0eWxlLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUNuQyxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFRLE1BQU0sVUFBVSxDQUFDO0FBRTVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQUM1Qjs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQVcsRUFBRSxPQUF5QixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEdBQUcsR0FBRztRQUNoRixJQUFJLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxHQUFHLEdBQUcscUJBQXFCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hELE9BQU8sSUFBSSxLQUFLLENBQUM7WUFDZixLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUM7Z0JBQ2QsR0FBRyxFQUFFLEtBQUs7Z0JBQ1YsT0FBTyxFQUFFLElBQUk7YUFDZCxDQUFDO1lBQ0YsTUFBTTtTQUNQLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBYyxFQUFFLElBQVksRUFBRSxXQUFtQixFQUFFLFdBQVcsR0FBRyxDQUFDO1FBQ3JGLE9BQU8sSUFBSSxLQUFLLENBQUM7WUFDZixLQUFLLEVBQUUsSUFBSSxNQUFNLENBQUM7Z0JBQ2hCLE1BQU07Z0JBQ04sSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO2dCQUMvQixNQUFNLEVBQUUsSUFBSSxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsQ0FBQzthQUMvRCxDQUFDO1NBQ0gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBWSxFQUFFLElBQVU7UUFDN0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTdHlsZSBmcm9tICdvbC9zdHlsZS9TdHlsZSc7XG5pbXBvcnQgeyBDaXJjbGUsIEZpbGwsIEljb24sIFN0cm9rZSwgVGV4dCB9IGZyb20gJ29sL3N0eWxlJztcblxuLyoqXG4gKiBIZWxwZXIgY2xhc3MgdG8gY3JlYXRlIGFuZCBtb2RpZnkgbWFya2VyIHN0eWxlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIE1hcmtlclN0eWxlSGVscGVyIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgU3R5bGUgb2JqZWN0IGZyb20gYW4gU1ZHLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3ZnIC0gVGhlIFNWRyBzdHJpbmcuXG4gICAqIEBwYXJhbSB7QXJyYXk8bnVtYmVyPn0gW3NpemU9WzMwLCAzMF1dIC0gVGhlIHNpemUgb2YgdGhlIGljb24gaW1hZ2UuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbekluZGV4PTQwMF0gLSBUaGUgekluZGV4IG9mIHRoZSBzdHlsZS5cbiAgICogQHJldHVybnMge1N0eWxlfSBBIG5ldyBTdHlsZSBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Tdmcoc3ZnOiBzdHJpbmcsIHNpemU6IFtudW1iZXIsIG51bWJlcl0gPSBbMzAsIDMwXSwgekluZGV4ID0gNDAwKTogU3R5bGUge1xuICAgIGxldCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xuICAgIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3N2Zyt4bWwsJyArIGVzY2FwZShzdmcpO1xuICAgIHJldHVybiBuZXcgU3R5bGUoe1xuICAgICAgaW1hZ2U6IG5ldyBJY29uKHtcbiAgICAgICAgaW1nOiBpbWFnZSxcbiAgICAgICAgaW1nU2l6ZTogc2l6ZSxcbiAgICAgIH0pLFxuICAgICAgekluZGV4LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBTdHlsZSBvYmplY3Qgd2l0aCBhIGNpcmNsZSBzdHlsZS5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHJhZGl1cyAtIFRoZSByYWRpdXMgb2YgdGhlIGNpcmNsZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpbGwgLSBUaGUgZmlsbCBjb2xvciBvZiB0aGUgY2lyY2xlLiBGb3JtYXQ6ICcjUlJHR0JCJyBvciAncmdiYShSLCBHLCBCLCBBKScuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJva2VDb2xvciAtIFRoZSBzdHJva2UgY29sb3Igb2YgdGhlIGNpcmNsZS4gRm9ybWF0OiAnI1JSR0dCQicgb3IgJ3JnYmEoUiwgRywgQiwgQSknLlxuICAgKiBAcGFyYW0ge251bWJlcn0gW3N0cm9rZVdpZHRoPTFdIC0gVGhlIHdpZHRoIG9mIHRoZSBzdHJva2UuIERlZmF1bHQgaXMgMS5cbiAgICogQHJldHVybnMge1N0eWxlfSAtIEEgU3R5bGUgb2JqZWN0IHdpdGggYSBDaXJjbGUgaW1hZ2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGNpcmNsZShyYWRpdXM6IG51bWJlciwgZmlsbDogc3RyaW5nLCBzdHJva2VDb2xvcjogc3RyaW5nLCBzdHJva2VXaWR0aCA9IDEpOiBTdHlsZSB7XG4gICAgcmV0dXJuIG5ldyBTdHlsZSh7XG4gICAgICBpbWFnZTogbmV3IENpcmNsZSh7XG4gICAgICAgIHJhZGl1cyxcbiAgICAgICAgZmlsbDogbmV3IEZpbGwoeyBjb2xvcjogZmlsbCB9KSxcbiAgICAgICAgc3Ryb2tlOiBuZXcgU3Ryb2tlKHsgY29sb3I6IHN0cm9rZUNvbG9yLCB3aWR0aDogc3Ryb2tlV2lkdGggfSksXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIHRoZSBnaXZlbiBUZXh0IHRvIHRoZSBwcm92aWRlZCBTdHlsZS5cbiAgICpcbiAgICogQHBhcmFtIHtTdHlsZX0gc3R5bGUgLSBUaGUgU3R5bGUgdG8gbW9kaWZ5LlxuICAgKiBAcGFyYW0ge1RleHR9IHRleHQgLSBUaGUgVGV4dCB0byBhcHBseSB0byB0aGUgU3R5bGUuXG4gICAqIEByZXR1cm4ge1N0eWxlfSAtIFRoZSBtb2RpZmllZCBTdHlsZSB3aXRoIHRoZSBhcHBsaWVkIFRleHQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGhUZXh0KHN0eWxlOiBTdHlsZSwgdGV4dDogVGV4dCk6IFN0eWxlIHtcbiAgICBzdHlsZS5zZXRUZXh0KHRleHQpO1xuICAgIHJldHVybiBzdHlsZTtcbiAgfVxufVxuIl19
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import Style from 'ol/style/Style';
|
|
2
2
|
import { Circle, Fill, Stroke } from 'ol/style';
|
|
3
|
+
/**
|
|
4
|
+
* A helper class for creating polygon styles.
|
|
5
|
+
* @class
|
|
6
|
+
*/
|
|
3
7
|
export class PolygonStyleHelper {
|
|
8
|
+
/**
|
|
9
|
+
* Creates a Style object with the given fill color, stroke color, and stroke width.
|
|
10
|
+
*
|
|
11
|
+
* @param {string} fill - The fill color in hexadecimal or RGB format.
|
|
12
|
+
* @param {string} stroke - The stroke color in hexadecimal or RGB format.
|
|
13
|
+
* @param {number} [strokeWidth=1] - The width of the stroke. Defaults to 1.
|
|
14
|
+
* @return {Style} The created Style object.
|
|
15
|
+
*/
|
|
4
16
|
static simple(fill, stroke, strokeWidth = 1) {
|
|
5
17
|
return new Style({
|
|
6
18
|
fill: new Fill({
|
|
@@ -12,6 +24,15 @@ export class PolygonStyleHelper {
|
|
|
12
24
|
}),
|
|
13
25
|
});
|
|
14
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Creates a new Style object with the given fill, stroke, stroke width, and pin radius.
|
|
29
|
+
*
|
|
30
|
+
* @param {string} fill - The color to use for the fill of the style.
|
|
31
|
+
* @param {string} stroke - The color to use for the stroke of the style.
|
|
32
|
+
* @param {number} [strokeWidth=1] - The width of the stroke. Defaults to 1.
|
|
33
|
+
* @param {number} [pinRadius=5] - The radius of the circle used as the image for the style. Defaults to 5.
|
|
34
|
+
* @returns {Style} - The newly created Style object.
|
|
35
|
+
*/
|
|
15
36
|
static edit(fill, stroke, strokeWidth = 1, pinRadius = 5) {
|
|
16
37
|
return new Style({
|
|
17
38
|
image: new Circle({
|
|
@@ -30,4 +51,4 @@ export class PolygonStyleHelper {
|
|
|
30
51
|
});
|
|
31
52
|
}
|
|
32
53
|
}
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWdvbi1zdHlsZS5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBzLWNvbXBvbmVudHMvc3JjL21hcC9oZWxwZXJzL3BvbHlnb24tc3R5bGUuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVoRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCOzs7Ozs7O09BT0c7SUFDSSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQVksRUFBRSxNQUFjLEVBQUUsY0FBc0IsQ0FBQztRQUN4RSxPQUFPLElBQUksS0FBSyxDQUFDO1lBQ2YsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDO2dCQUNiLEtBQUssRUFBRSxJQUFJO2FBQ1osQ0FBQztZQUNGLE1BQU0sRUFBRSxJQUFJLE1BQU0sQ0FBQztnQkFDakIsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsS0FBSyxFQUFFLFdBQVc7YUFDbkIsQ0FBQztTQUNILENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBWSxFQUFFLE1BQWMsRUFBRSxjQUFzQixDQUFDLEVBQUUsU0FBUyxHQUFHLENBQUM7UUFDckYsT0FBTyxJQUFJLEtBQUssQ0FBQztZQUNmLEtBQUssRUFBRSxJQUFJLE1BQU0sQ0FBQztnQkFDaEIsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDO29CQUNiLEtBQUssRUFBRSxNQUFNO2lCQUNkLENBQUM7Z0JBQ0YsTUFBTSxFQUFFLFNBQVM7YUFDbEIsQ0FBQztZQUNGLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQztnQkFDYixLQUFLLEVBQUUsSUFBSTthQUNaLENBQUM7WUFDRixNQUFNLEVBQUUsSUFBSSxNQUFNLENBQUM7Z0JBQ2pCLEtBQUssRUFBRSxNQUFNO2dCQUNiLEtBQUssRUFBRSxXQUFXO2FBQ25CLENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgU3R5bGUgZnJvbSAnb2wvc3R5bGUvU3R5bGUnO1xuaW1wb3J0IHsgQ2lyY2xlLCBGaWxsLCBTdHJva2UgfSBmcm9tICdvbC9zdHlsZSc7XG5cbi8qKlxuICogQSBoZWxwZXIgY2xhc3MgZm9yIGNyZWF0aW5nIHBvbHlnb24gc3R5bGVzLlxuICogQGNsYXNzXG4gKi9cbmV4cG9ydCBjbGFzcyBQb2x5Z29uU3R5bGVIZWxwZXIge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIFN0eWxlIG9iamVjdCB3aXRoIHRoZSBnaXZlbiBmaWxsIGNvbG9yLCBzdHJva2UgY29sb3IsIGFuZCBzdHJva2Ugd2lkdGguXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxsIC0gVGhlIGZpbGwgY29sb3IgaW4gaGV4YWRlY2ltYWwgb3IgUkdCIGZvcm1hdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cm9rZSAtIFRoZSBzdHJva2UgY29sb3IgaW4gaGV4YWRlY2ltYWwgb3IgUkdCIGZvcm1hdC5cbiAgICogQHBhcmFtIHtudW1iZXJ9IFtzdHJva2VXaWR0aD0xXSAtIFRoZSB3aWR0aCBvZiB0aGUgc3Ryb2tlLiBEZWZhdWx0cyB0byAxLlxuICAgKiBAcmV0dXJuIHtTdHlsZX0gVGhlIGNyZWF0ZWQgU3R5bGUgb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzaW1wbGUoZmlsbDogc3RyaW5nLCBzdHJva2U6IHN0cmluZywgc3Ryb2tlV2lkdGg6IG51bWJlciA9IDEpOiBTdHlsZSB7XG4gICAgcmV0dXJuIG5ldyBTdHlsZSh7XG4gICAgICBmaWxsOiBuZXcgRmlsbCh7XG4gICAgICAgIGNvbG9yOiBmaWxsLFxuICAgICAgfSksXG4gICAgICBzdHJva2U6IG5ldyBTdHJva2Uoe1xuICAgICAgICBjb2xvcjogc3Ryb2tlLFxuICAgICAgICB3aWR0aDogc3Ryb2tlV2lkdGgsXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IFN0eWxlIG9iamVjdCB3aXRoIHRoZSBnaXZlbiBmaWxsLCBzdHJva2UsIHN0cm9rZSB3aWR0aCwgYW5kIHBpbiByYWRpdXMuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxsIC0gVGhlIGNvbG9yIHRvIHVzZSBmb3IgdGhlIGZpbGwgb2YgdGhlIHN0eWxlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3Ryb2tlIC0gVGhlIGNvbG9yIHRvIHVzZSBmb3IgdGhlIHN0cm9rZSBvZiB0aGUgc3R5bGUuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbc3Ryb2tlV2lkdGg9MV0gLSBUaGUgd2lkdGggb2YgdGhlIHN0cm9rZS4gRGVmYXVsdHMgdG8gMS5cbiAgICogQHBhcmFtIHtudW1iZXJ9IFtwaW5SYWRpdXM9NV0gLSBUaGUgcmFkaXVzIG9mIHRoZSBjaXJjbGUgdXNlZCBhcyB0aGUgaW1hZ2UgZm9yIHRoZSBzdHlsZS4gRGVmYXVsdHMgdG8gNS5cbiAgICogQHJldHVybnMge1N0eWxlfSAtIFRoZSBuZXdseSBjcmVhdGVkIFN0eWxlIG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZWRpdChmaWxsOiBzdHJpbmcsIHN0cm9rZTogc3RyaW5nLCBzdHJva2VXaWR0aDogbnVtYmVyID0gMSwgcGluUmFkaXVzID0gNSk6IFN0eWxlIHtcbiAgICByZXR1cm4gbmV3IFN0eWxlKHtcbiAgICAgIGltYWdlOiBuZXcgQ2lyY2xlKHtcbiAgICAgICAgZmlsbDogbmV3IEZpbGwoe1xuICAgICAgICAgIGNvbG9yOiBzdHJva2UsXG4gICAgICAgIH0pLFxuICAgICAgICByYWRpdXM6IHBpblJhZGl1cyxcbiAgICAgIH0pLFxuICAgICAgZmlsbDogbmV3IEZpbGwoe1xuICAgICAgICBjb2xvcjogZmlsbCxcbiAgICAgIH0pLFxuICAgICAgc3Ryb2tlOiBuZXcgU3Ryb2tlKHtcbiAgICAgICAgY29sb3I6IHN0cm9rZSxcbiAgICAgICAgd2lkdGg6IHN0cm9rZVdpZHRoLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,41 +1,44 @@
|
|
|
1
1
|
import { Feature } from 'ol';
|
|
2
|
-
import { LineString } from 'ol/geom';
|
|
3
2
|
import { FeatureOutputFormat } from '../models';
|
|
4
3
|
import { GeoJSON, WKT } from 'ol/format';
|
|
5
4
|
import Polygon from 'ol/geom/Polygon';
|
|
6
5
|
import { transform } from 'ol/proj';
|
|
7
6
|
import { METERS_PER_UNIT } from 'ol/proj/epsg4326';
|
|
7
|
+
/**
|
|
8
|
+
* A helper class for converting and stringify features.
|
|
9
|
+
*/
|
|
8
10
|
export class StringifyFeatureHelper {
|
|
9
11
|
static polygon(feature, format = FeatureOutputFormat.GeoJson) {
|
|
10
12
|
return format === FeatureOutputFormat.GeoJson
|
|
11
13
|
? new GeoJSON().writeFeature(feature)
|
|
12
14
|
: new WKT().writeFeature(feature);
|
|
13
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Creates a polygon feature representing a circle based on a given feature with a circle geometry.
|
|
18
|
+
*
|
|
19
|
+
* @param {Feature<Geometry>} feature - The input feature with a circle geometry.
|
|
20
|
+
* @param {FeatureOutputFormat} format - The format for outputting the polygon feature. (default: FeatureOutputFormat.GeoJson)
|
|
21
|
+
*
|
|
22
|
+
* @return {string} - The string representation of the polygon feature.
|
|
23
|
+
*/
|
|
14
24
|
static circle(feature, format = FeatureOutputFormat.GeoJson) {
|
|
15
|
-
// const clone = feature.clone();
|
|
16
|
-
// clone.setGeometry(fromCircle(feature.getGeometry()! as Circle));
|
|
17
|
-
const tetemp = feature.getGeometryName();
|
|
18
25
|
const circle = feature.getGeometry();
|
|
19
|
-
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
...transform([ttt[0], ttt[1]], 'EPSG:4326', 'EPSG:3857'),
|
|
24
|
-
...transform([ttt[2], ttt[3]], 'EPSG:4326', 'EPSG:3857'),
|
|
26
|
+
const ext = feature.getGeometry().getExtent();
|
|
27
|
+
const coords = [
|
|
28
|
+
...transform([ext[0], ext[1]], 'EPSG:4326', 'EPSG:3857'),
|
|
29
|
+
...transform([ext[2], ext[3]], 'EPSG:4326', 'EPSG:3857'),
|
|
25
30
|
];
|
|
26
|
-
const radius = (
|
|
27
|
-
const radius2 = new LineString([circle.getCenter(), eastPoint]).getLength();
|
|
31
|
+
const radius = (coords[2] - coords[0]) / 2;
|
|
28
32
|
const polygonGeom = new Polygon(StringifyFeatureHelper.drawCircle(circle.getCenter(), radius));
|
|
29
|
-
// var edgeCoordinate = [circle.getCenter()[0] + radius, circle.getCenter()[1]];
|
|
30
|
-
// var wgs84Sphere = new Sphere(6378137);
|
|
31
33
|
return StringifyFeatureHelper.polygon(new Feature(polygonGeom), format);
|
|
32
|
-
// const rad = circle.getRadius();
|
|
33
|
-
// const degrees = 180 / Math.PI; // radians to degrees
|
|
34
|
-
// const radians = Math.PI / 180; // degrees to radians
|
|
35
|
-
// const rlat = rad * degrees * 1000;
|
|
36
|
-
// const rlng = rad * radians;
|
|
37
|
-
// return StringifyFeatureHelper.polygon(new Feature<Geometry>(circular(circle.getCenter(),circle.getRadius() * METERS_PER_UNIT)), format);
|
|
38
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Draw a circle based on a center point and radius.
|
|
37
|
+
*
|
|
38
|
+
* @param {number[]} point - The center point coordinates in EPSG:4326 format.
|
|
39
|
+
* @param {number} radius - The radius of the circle in meters.
|
|
40
|
+
* @return {Coordinate[][]} - The coordinates of the circle boundary in EPSG:4326 format.
|
|
41
|
+
*/
|
|
39
42
|
static drawCircle(point, radius) {
|
|
40
43
|
const tetetemp = transform(point, 'EPSG:4326', 'EPSG:3857');
|
|
41
44
|
// const tetetemp = point;
|
|
@@ -55,4 +58,4 @@ export class StringifyFeatureHelper {
|
|
|
55
58
|
return [extp.map((e) => transform(e, 'EPSG:3857', 'EPSG:4326'))];
|
|
56
59
|
}
|
|
57
60
|
}
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5naWZ5LWZlYXR1cmUuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvaGVscGVycy9zdHJpbmdpZnktZmVhdHVyZS5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUU3QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxPQUFPLE1BQU0saUJBQWlCLENBQUM7QUFFdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbkQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sc0JBQXNCO0lBQzFCLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBMEIsRUFBRSxTQUE4QixtQkFBbUIsQ0FBQyxPQUFPO1FBQ3pHLE9BQU8sTUFBTSxLQUFLLG1CQUFtQixDQUFDLE9BQU87WUFDM0MsQ0FBQyxDQUFDLElBQUksT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztZQUNyQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQTBCLEVBQUUsU0FBOEIsbUJBQW1CLENBQUMsT0FBTztRQUN4RyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFhLENBQUM7UUFDaEQsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRyxDQUFDLFNBQVMsRUFBRyxDQUFDO1FBQ2hELE1BQU0sTUFBTSxHQUFHO1lBQ2IsR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQztZQUN4RCxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDO1NBQ3pELENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFM0MsTUFBTSxXQUFXLEdBQUcsSUFBSSxPQUFPLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQy9GLE9BQU8sc0JBQXNCLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFXLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQWUsRUFBRSxNQUFjO1FBQ3ZELE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzVELDBCQUEwQjtRQUMxQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLHFCQUFxQjtRQUNwRCxNQUFNLE9BQU8sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLHFCQUFxQjtRQUNwRCxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUM7UUFDL0IsTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBQy9DLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUNwRCxNQUFNLElBQUksR0FBZSxFQUFFLENBQUM7UUFDNUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzdCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDUixRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsZUFBZTtnQkFDdEQsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLGVBQWU7YUFDdkQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJ29sJztcbmltcG9ydCB7IENpcmNsZSwgR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tJztcbmltcG9ydCB7IEZlYXR1cmVPdXRwdXRGb3JtYXQgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgR2VvSlNPTiwgV0tUIH0gZnJvbSAnb2wvZm9ybWF0JztcbmltcG9ydCBQb2x5Z29uIGZyb20gJ29sL2dlb20vUG9seWdvbic7XG5pbXBvcnQgeyBDb29yZGluYXRlIH0gZnJvbSAnb2wvY29vcmRpbmF0ZSc7XG5pbXBvcnQgeyB0cmFuc2Zvcm0gfSBmcm9tICdvbC9wcm9qJztcbmltcG9ydCB7IE1FVEVSU19QRVJfVU5JVCB9IGZyb20gJ29sL3Byb2ovZXBzZzQzMjYnO1xuXG4vKipcbiAqIEEgaGVscGVyIGNsYXNzIGZvciBjb252ZXJ0aW5nIGFuZCBzdHJpbmdpZnkgZmVhdHVyZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdHJpbmdpZnlGZWF0dXJlSGVscGVyIHtcbiAgcHVibGljIHN0YXRpYyBwb2x5Z29uKGZlYXR1cmU6IEZlYXR1cmU8R2VvbWV0cnk+LCBmb3JtYXQ6IEZlYXR1cmVPdXRwdXRGb3JtYXQgPSBGZWF0dXJlT3V0cHV0Rm9ybWF0Lkdlb0pzb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBmb3JtYXQgPT09IEZlYXR1cmVPdXRwdXRGb3JtYXQuR2VvSnNvblxuICAgICAgPyBuZXcgR2VvSlNPTigpLndyaXRlRmVhdHVyZShmZWF0dXJlKVxuICAgICAgOiBuZXcgV0tUKCkud3JpdGVGZWF0dXJlKGZlYXR1cmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBwb2x5Z29uIGZlYXR1cmUgcmVwcmVzZW50aW5nIGEgY2lyY2xlIGJhc2VkIG9uIGEgZ2l2ZW4gZmVhdHVyZSB3aXRoIGEgY2lyY2xlIGdlb21ldHJ5LlxuICAgKlxuICAgKiBAcGFyYW0ge0ZlYXR1cmU8R2VvbWV0cnk+fSBmZWF0dXJlIC0gVGhlIGlucHV0IGZlYXR1cmUgd2l0aCBhIGNpcmNsZSBnZW9tZXRyeS5cbiAgICogQHBhcmFtIHtGZWF0dXJlT3V0cHV0Rm9ybWF0fSBmb3JtYXQgLSBUaGUgZm9ybWF0IGZvciBvdXRwdXR0aW5nIHRoZSBwb2x5Z29uIGZlYXR1cmUuIChkZWZhdWx0OiBGZWF0dXJlT3V0cHV0Rm9ybWF0Lkdlb0pzb24pXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZ30gLSBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwb2x5Z29uIGZlYXR1cmUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGNpcmNsZShmZWF0dXJlOiBGZWF0dXJlPEdlb21ldHJ5PiwgZm9ybWF0OiBGZWF0dXJlT3V0cHV0Rm9ybWF0ID0gRmVhdHVyZU91dHB1dEZvcm1hdC5HZW9Kc29uKTogc3RyaW5nIHtcbiAgICBjb25zdCBjaXJjbGUgPSBmZWF0dXJlLmdldEdlb21ldHJ5KCkhIGFzIENpcmNsZTtcbiAgICBjb25zdCBleHQgPSBmZWF0dXJlLmdldEdlb21ldHJ5KCkhLmdldEV4dGVudCgpITtcbiAgICBjb25zdCBjb29yZHMgPSBbXG4gICAgICAuLi50cmFuc2Zvcm0oW2V4dFswXSwgZXh0WzFdXSwgJ0VQU0c6NDMyNicsICdFUFNHOjM4NTcnKSxcbiAgICAgIC4uLnRyYW5zZm9ybShbZXh0WzJdLCBleHRbM11dLCAnRVBTRzo0MzI2JywgJ0VQU0c6Mzg1NycpLFxuICAgIF07XG4gICAgY29uc3QgcmFkaXVzID0gKGNvb3Jkc1syXSAtIGNvb3Jkc1swXSkgLyAyO1xuXG4gICAgY29uc3QgcG9seWdvbkdlb20gPSBuZXcgUG9seWdvbihTdHJpbmdpZnlGZWF0dXJlSGVscGVyLmRyYXdDaXJjbGUoY2lyY2xlLmdldENlbnRlcigpLCByYWRpdXMpKTtcbiAgICByZXR1cm4gU3RyaW5naWZ5RmVhdHVyZUhlbHBlci5wb2x5Z29uKG5ldyBGZWF0dXJlPEdlb21ldHJ5Pihwb2x5Z29uR2VvbSksIGZvcm1hdCk7XG4gIH1cblxuICAvKipcbiAgICogRHJhdyBhIGNpcmNsZSBiYXNlZCBvbiBhIGNlbnRlciBwb2ludCBhbmQgcmFkaXVzLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcltdfSBwb2ludCAtIFRoZSBjZW50ZXIgcG9pbnQgY29vcmRpbmF0ZXMgaW4gRVBTRzo0MzI2IGZvcm1hdC5cbiAgICogQHBhcmFtIHtudW1iZXJ9IHJhZGl1cyAtIFRoZSByYWRpdXMgb2YgdGhlIGNpcmNsZSBpbiBtZXRlcnMuXG4gICAqIEByZXR1cm4ge0Nvb3JkaW5hdGVbXVtdfSAtIFRoZSBjb29yZGluYXRlcyBvZiB0aGUgY2lyY2xlIGJvdW5kYXJ5IGluIEVQU0c6NDMyNiBmb3JtYXQuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBkcmF3Q2lyY2xlKHBvaW50OiBudW1iZXJbXSwgcmFkaXVzOiBudW1iZXIpOiBDb29yZGluYXRlW11bXSB7XG4gICAgY29uc3QgdGV0ZXRlbXAgPSB0cmFuc2Zvcm0ocG9pbnQsICdFUFNHOjQzMjYnLCAnRVBTRzozODU3Jyk7XG4gICAgLy8gY29uc3QgdGV0ZXRlbXAgPSBwb2ludDtcbiAgICBjb25zdCByYWRpYW5zID0gTWF0aC5QSSAvIDE4MDsgLy8gZGVncmVlcyB0byByYWRpYW5zXG4gICAgY29uc3QgZGVncmVlcyA9IDE4MCAvIE1hdGguUEk7IC8vIHJhZGlhbnMgdG8gZGVncmVlc1xuICAgIGNvbnN0IGVhcnRoc3JhZGl1cyA9IDYzNzgxMzcuMDtcbiAgICBjb25zdCBybGF0ID0gKHJhZGl1cyAvIGVhcnRoc3JhZGl1cykgKiBkZWdyZWVzO1xuICAgIGNvbnN0IHJsbmcgPSBybGF0IC8gTWF0aC5jb3ModGV0ZXRlbXBbMV0gKiByYWRpYW5zKTtcbiAgICBjb25zdCBleHRwOiBudW1iZXJbXVtdID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMzI7IGkrKykge1xuICAgICAgY29uc3QgdGhldGEgPSBNYXRoLlBJICogKGkgLyAxNik7XG4gICAgICBleHRwLnB1c2goW1xuICAgICAgICB0ZXRldGVtcFswXSArIHJsbmcgKiBNYXRoLmNvcyh0aGV0YSkgKiBNRVRFUlNfUEVSX1VOSVQsXG4gICAgICAgIHRldGV0ZW1wWzFdICsgcmxhdCAqIE1hdGguc2luKHRoZXRhKSAqIE1FVEVSU19QRVJfVU5JVCxcbiAgICAgIF0pO1xuICAgIH1cbiAgICByZXR1cm4gW2V4dHAubWFwKChlKSA9PiB0cmFuc2Zvcm0oZSwgJ0VQU0c6Mzg1NycsICdFUFNHOjQzMjYnKSldO1xuICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import { Fill, Text } from 'ol/style';
|
|
2
|
+
/**
|
|
3
|
+
* Helper class for creating text styles.
|
|
4
|
+
*/
|
|
2
5
|
export class TextStyleHelper {
|
|
6
|
+
/**
|
|
7
|
+
* Creates a new instance of the Text class with the specified properties.
|
|
8
|
+
*
|
|
9
|
+
* @param {string} text - The text content of the Text object.
|
|
10
|
+
* @param {string} font - The font style of the Text object.
|
|
11
|
+
* @param {string} color - The color of the Text object.
|
|
12
|
+
* @return {Text} A new instance of the Text class.
|
|
13
|
+
*/
|
|
3
14
|
static get(text, font, color) {
|
|
4
15
|
return new Text({
|
|
5
16
|
text: text,
|
|
@@ -11,4 +22,4 @@ export class TextStyleHelper {
|
|
|
11
22
|
});
|
|
12
23
|
}
|
|
13
24
|
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1zdHlsZS5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBzLWNvbXBvbmVudHMvc3JjL21hcC9oZWxwZXJzL3RleHQtc3R5bGUuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXRDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFDMUI7Ozs7Ozs7T0FPRztJQUNJLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBWSxFQUFFLElBQVksRUFBRSxLQUFhO1FBQ3pELE9BQU8sSUFBSSxJQUFJLENBQUM7WUFDZCxJQUFJLEVBQUUsSUFBSTtZQUNWLElBQUksRUFBRSxJQUFJO1lBQ1YsU0FBUyxFQUFFLFFBQVE7WUFDbkIsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDO2dCQUNiLEtBQUssRUFBRSxLQUFLO2FBQ2IsQ0FBQztTQUNILENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbGwsIFRleHQgfSBmcm9tICdvbC9zdHlsZSc7XG5cbi8qKlxuICogSGVscGVyIGNsYXNzIGZvciBjcmVhdGluZyB0ZXh0IHN0eWxlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFRleHRTdHlsZUhlbHBlciB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBUZXh0IGNsYXNzIHdpdGggdGhlIHNwZWNpZmllZCBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIFRoZSB0ZXh0IGNvbnRlbnQgb2YgdGhlIFRleHQgb2JqZWN0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZm9udCAtIFRoZSBmb250IHN0eWxlIG9mIHRoZSBUZXh0IG9iamVjdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGNvbG9yIC0gVGhlIGNvbG9yIG9mIHRoZSBUZXh0IG9iamVjdC5cbiAgICogQHJldHVybiB7VGV4dH0gQSBuZXcgaW5zdGFuY2Ugb2YgdGhlIFRleHQgY2xhc3MuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldCh0ZXh0OiBzdHJpbmcsIGZvbnQ6IHN0cmluZywgY29sb3I6IHN0cmluZyk6IFRleHQge1xuICAgIHJldHVybiBuZXcgVGV4dCh7XG4gICAgICB0ZXh0OiB0ZXh0LFxuICAgICAgZm9udDogZm9udCxcbiAgICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgICBmaWxsOiBuZXcgRmlsbCh7XG4gICAgICAgIGNvbG9yOiBjb2xvcixcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -6,21 +6,38 @@ import { filter, first } from 'rxjs/operators';
|
|
|
6
6
|
import { GenerateZoomControlExecutor } from '../../../messages/executors/generate-zoom-control.executor';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "../../../services/map-postboy.service";
|
|
9
|
+
/**
|
|
10
|
+
* @class
|
|
11
|
+
* @classdesc Represents a component for the Zoom control on a map.
|
|
12
|
+
* @extends DestructibleComponent
|
|
13
|
+
* @implements OnInit
|
|
14
|
+
*/
|
|
9
15
|
export class MapControlZoomComponent extends DestructibleComponent {
|
|
10
16
|
postboy;
|
|
11
|
-
_settings = new ZoomControlSettings();
|
|
12
17
|
map;
|
|
13
18
|
control;
|
|
19
|
+
constructor(postboy) {
|
|
20
|
+
super();
|
|
21
|
+
this.postboy = postboy;
|
|
22
|
+
}
|
|
23
|
+
_settings = new ZoomControlSettings();
|
|
24
|
+
/**
|
|
25
|
+
* Sets the settings for the Zoom Control.
|
|
26
|
+
*
|
|
27
|
+
* @param {ZoomControlSettings | undefined} value - The new settings for the Zoom Control.
|
|
28
|
+
*
|
|
29
|
+
* @description
|
|
30
|
+
* This method sets the settings for the Zoom Control. It takes a parameter `value` which should be an object of type `ZoomControlSettings` or `undefined`.
|
|
31
|
+
*
|
|
32
|
+
* If the `value` is `undefined` or the same as the current settings, the method will return without making any changes.
|
|
33
|
+
*
|
|
34
|
+
*/
|
|
14
35
|
set settings(value) {
|
|
15
36
|
if (!value || this._settings.isSame(value))
|
|
16
37
|
return;
|
|
17
38
|
this._settings = value;
|
|
18
39
|
this.setControl();
|
|
19
40
|
}
|
|
20
|
-
constructor(postboy) {
|
|
21
|
-
super();
|
|
22
|
-
this.postboy = postboy;
|
|
23
|
-
}
|
|
24
41
|
ngOnInit() {
|
|
25
42
|
this.postboy
|
|
26
43
|
.subscribe(MapRenderedEvent.ID)
|
|
@@ -30,15 +47,15 @@ export class MapControlZoomComponent extends DestructibleComponent {
|
|
|
30
47
|
this.setControl();
|
|
31
48
|
});
|
|
32
49
|
}
|
|
50
|
+
onDestroy = () => {
|
|
51
|
+
this.eliminate();
|
|
52
|
+
};
|
|
33
53
|
setControl() {
|
|
34
54
|
if (!this.map)
|
|
35
55
|
return;
|
|
36
56
|
this.control = this.postboy.execute(new GenerateZoomControlExecutor(this._settings));
|
|
37
57
|
this.map.addControl(this.control);
|
|
38
58
|
}
|
|
39
|
-
onDestroy = () => {
|
|
40
|
-
this.eliminate();
|
|
41
|
-
};
|
|
42
59
|
eliminate = () => !!this.map && !!this.control && this.map.removeControl(this.control);
|
|
43
60
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: MapControlZoomComponent, deps: [{ token: i1.MapPostboyService }], target: i0.ɵɵFactoryTarget.Component });
|
|
44
61
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.7", type: MapControlZoomComponent, selector: "art-map-control-zoom", inputs: { settings: "settings" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
@@ -49,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
|
|
|
49
66
|
}], ctorParameters: () => [{ type: i1.MapPostboyService }], propDecorators: { settings: [{
|
|
50
67
|
type: Input
|
|
51
68
|
}] } });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWNvbnRyb2wtem9vbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBzLWNvbXBvbmVudHMvc3JjL21hcC9tYXAtcGxhdGUvY29udHJvbHMvbWFwLWNvbnRyb2wtem9vbS9tYXAtY29udHJvbC16b29tLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUUvRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDREQUE0RCxDQUFDOzs7QUFFekc7Ozs7O0dBS0c7QUFPSCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEscUJBQXFCO0lBSTVDO0lBSFosR0FBRyxDQUFPO0lBQ1YsT0FBTyxDQUFRO0lBRXZCLFlBQW9CLE9BQTBCO1FBQzVDLEtBQUssRUFBRSxDQUFDO1FBRFUsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7SUFFOUMsQ0FBQztJQUVPLFNBQVMsR0FBd0IsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO0lBRW5FOzs7Ozs7Ozs7O09BVUc7SUFDSCxJQUFhLFFBQVEsQ0FBQyxLQUFzQztRQUMxRCxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU87UUFDbkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU87YUFDVCxTQUFTLENBQW1CLGdCQUFnQixDQUFDLEVBQUUsQ0FBQzthQUNoRCxJQUFJLENBQ0gsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ2xCLEtBQUssRUFBRSxDQUNSO2FBQ0EsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDZixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDakIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFNBQVMsR0FBRyxHQUFHLEVBQUU7UUFDZixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQyxDQUFDO0lBRU0sVUFBVTtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSwyQkFBMkIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNyRixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVPLFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7dUdBbERwRix1QkFBdUI7MkZBQXZCLHVCQUF1QixxSEFKeEIsRUFBRTs7MkZBSUQsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLHNCQUFzQixZQUN0QixFQUFFLG1CQUVLLHVCQUF1QixDQUFDLE1BQU07c0ZBdUJsQyxRQUFRO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWFwUG9zdGJveVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYXAtcG9zdGJveS5zZXJ2aWNlJztcbmltcG9ydCB7IERlc3RydWN0aWJsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9kZXN0cnVjdGlibGUuY29tcG9uZW50JztcbmltcG9ydCBNYXAgZnJvbSAnb2wvTWFwJztcbmltcG9ydCB7IFpvb21Db250cm9sU2V0dGluZ3MgfSBmcm9tICcuL3pvb20tY29udHJvbC5zZXR0aW5ncyc7XG5pbXBvcnQgeyBNYXBSZW5kZXJlZEV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vbWVzc2FnZXMnO1xuaW1wb3J0IHsgZmlsdGVyLCBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFpvb20gfSBmcm9tICdvbC9jb250cm9sJztcbmltcG9ydCB7IEdlbmVyYXRlWm9vbUNvbnRyb2xFeGVjdXRvciB9IGZyb20gJy4uLy4uLy4uL21lc3NhZ2VzL2V4ZWN1dG9ycy9nZW5lcmF0ZS16b29tLWNvbnRyb2wuZXhlY3V0b3InO1xuXG4vKipcbiAqIEBjbGFzc1xuICogQGNsYXNzZGVzYyBSZXByZXNlbnRzIGEgY29tcG9uZW50IGZvciB0aGUgWm9vbSBjb250cm9sIG9uIGEgbWFwLlxuICogQGV4dGVuZHMgRGVzdHJ1Y3RpYmxlQ29tcG9uZW50XG4gKiBAaW1wbGVtZW50cyBPbkluaXRcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXJ0LW1hcC1jb250cm9sLXpvb20nLFxuICB0ZW1wbGF0ZTogJycsXG4gIHN0eWxlVXJsczogW10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBNYXBDb250cm9sWm9vbUNvbXBvbmVudCBleHRlbmRzIERlc3RydWN0aWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgbWFwPzogTWFwO1xuICBwcml2YXRlIGNvbnRyb2w/OiBab29tO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcG9zdGJveTogTWFwUG9zdGJveVNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0dGluZ3M6IFpvb21Db250cm9sU2V0dGluZ3MgPSBuZXcgWm9vbUNvbnRyb2xTZXR0aW5ncygpO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzZXR0aW5ncyBmb3IgdGhlIFpvb20gQ29udHJvbC5cbiAgICpcbiAgICogQHBhcmFtIHtab29tQ29udHJvbFNldHRpbmdzIHwgdW5kZWZpbmVkfSB2YWx1ZSAtIFRoZSBuZXcgc2V0dGluZ3MgZm9yIHRoZSBab29tIENvbnRyb2wuXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGlzIG1ldGhvZCBzZXRzIHRoZSBzZXR0aW5ncyBmb3IgdGhlIFpvb20gQ29udHJvbC4gSXQgdGFrZXMgYSBwYXJhbWV0ZXIgYHZhbHVlYCB3aGljaCBzaG91bGQgYmUgYW4gb2JqZWN0IG9mIHR5cGUgYFpvb21Db250cm9sU2V0dGluZ3NgIG9yIGB1bmRlZmluZWRgLlxuICAgKlxuICAgKiBJZiB0aGUgYHZhbHVlYCBpcyBgdW5kZWZpbmVkYCBvciB0aGUgc2FtZSBhcyB0aGUgY3VycmVudCBzZXR0aW5ncywgdGhlIG1ldGhvZCB3aWxsIHJldHVybiB3aXRob3V0IG1ha2luZyBhbnkgY2hhbmdlcy5cbiAgICpcbiAgICovXG4gIEBJbnB1dCgpIHNldCBzZXR0aW5ncyh2YWx1ZTogWm9vbUNvbnRyb2xTZXR0aW5ncyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICghdmFsdWUgfHwgdGhpcy5fc2V0dGluZ3MuaXNTYW1lKHZhbHVlKSkgcmV0dXJuO1xuICAgIHRoaXMuX3NldHRpbmdzID0gdmFsdWU7XG4gICAgdGhpcy5zZXRDb250cm9sKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnBvc3Rib3lcbiAgICAgIC5zdWJzY3JpYmU8TWFwUmVuZGVyZWRFdmVudD4oTWFwUmVuZGVyZWRFdmVudC5JRClcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKG0pID0+ICEhbSksXG4gICAgICAgIGZpcnN0KCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChtKSA9PiB7XG4gICAgICAgIHRoaXMubWFwID0gbS5tYXA7XG4gICAgICAgIHRoaXMuc2V0Q29udHJvbCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBvbkRlc3Ryb3kgPSAoKSA9PiB7XG4gICAgdGhpcy5lbGltaW5hdGUoKTtcbiAgfTtcblxuICBwcml2YXRlIHNldENvbnRyb2woKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm1hcCkgcmV0dXJuO1xuICAgIHRoaXMuY29udHJvbCA9IHRoaXMucG9zdGJveS5leGVjdXRlKG5ldyBHZW5lcmF0ZVpvb21Db250cm9sRXhlY3V0b3IodGhpcy5fc2V0dGluZ3MpKTtcbiAgICB0aGlzLm1hcC5hZGRDb250cm9sKHRoaXMuY29udHJvbCEpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbGltaW5hdGUgPSAoKSA9PiAhIXRoaXMubWFwICYmICEhdGhpcy5jb250cm9sICYmIHRoaXMubWFwLnJlbW92ZUNvbnRyb2wodGhpcy5jb250cm9sKTtcbn1cbiJdfQ==
|
|
@@ -1,9 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents the settings for a zoom control.
|
|
3
|
+
*/
|
|
1
4
|
export class ZoomControlSettings {
|
|
5
|
+
/**
|
|
6
|
+
* The CSS class name of the control element.
|
|
7
|
+
*
|
|
8
|
+
* @type {string}
|
|
9
|
+
*/
|
|
2
10
|
controlClass = 'ol-zoom';
|
|
11
|
+
/**
|
|
12
|
+
* The CSS class name for zoom in button.
|
|
13
|
+
* @type {string}
|
|
14
|
+
*/
|
|
3
15
|
zoomInClass = 'ol-zoom-in';
|
|
16
|
+
/**
|
|
17
|
+
* The CSS class name for the zoom out button element.
|
|
18
|
+
*
|
|
19
|
+
* @type {string}
|
|
20
|
+
*/
|
|
4
21
|
zoomOutClass = 'ol-zoom-out';
|
|
22
|
+
/**
|
|
23
|
+
* The label for the zoom in action.
|
|
24
|
+
*
|
|
25
|
+
* @type {string}
|
|
26
|
+
*/
|
|
5
27
|
zoomInLabel = 'Zoom In';
|
|
28
|
+
/**
|
|
29
|
+
* The label for the zoom out control.
|
|
30
|
+
*
|
|
31
|
+
* @type {string}
|
|
32
|
+
*/
|
|
6
33
|
zoomOutLabel = 'Zoom Out';
|
|
34
|
+
/**
|
|
35
|
+
* Copies the provided ZoomControlSettings object.
|
|
36
|
+
*
|
|
37
|
+
* @param {ZoomControlSettings} model - The ZoomControlSettings object to be copied.
|
|
38
|
+
* @return {ZoomControlSettings} - The copied ZoomControlSettings object.
|
|
39
|
+
*/
|
|
7
40
|
static copy(model) {
|
|
8
41
|
const result = new ZoomControlSettings();
|
|
9
42
|
result.controlClass = model.controlClass;
|
|
@@ -13,6 +46,13 @@ export class ZoomControlSettings {
|
|
|
13
46
|
result.zoomOutLabel = model.zoomOutLabel;
|
|
14
47
|
return result;
|
|
15
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Checks if the current ZoomControlSettings object is equal to the given model.
|
|
51
|
+
*
|
|
52
|
+
* @param {ZoomControlSettings} model - The ZoomControlSettings object to compare with.
|
|
53
|
+
*
|
|
54
|
+
* @return {boolean} - true if the current object is equal to the given model, false otherwise.
|
|
55
|
+
*/
|
|
16
56
|
isSame(model) {
|
|
17
57
|
if (this.zoomInClass !== model.zoomInClass)
|
|
18
58
|
return false;
|
|
@@ -26,20 +66,51 @@ export class ZoomControlSettings {
|
|
|
26
66
|
return false;
|
|
27
67
|
return true;
|
|
28
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Sets the zoom in label of the Zoom Control Settings.
|
|
71
|
+
*
|
|
72
|
+
* @param {string} zoomInLabel - The label for the zoom in button.
|
|
73
|
+
* @return {ZoomControlSettings} - The new Zoom Control Settings object with the updated zoom in label.
|
|
74
|
+
*/
|
|
29
75
|
setZoomInLabel(zoomInLabel) {
|
|
30
76
|
return ZoomControlSettings.copy({ ...this, zoomInLabel });
|
|
31
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Sets the zoomOutClass property of the ZoomControlSettings object.
|
|
80
|
+
*
|
|
81
|
+
* @param {string} zoomOutClass - The CSS class to be assigned to the zoom out button.
|
|
82
|
+
* @return {ZoomControlSettings} - The updated ZoomControlSettings object with the new zoomOutClass value.
|
|
83
|
+
*/
|
|
32
84
|
setZoomOutClass(zoomOutClass) {
|
|
33
85
|
return ZoomControlSettings.copy({ ...this, zoomOutClass });
|
|
34
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* Sets the zoom in class for the zoom control settings.
|
|
89
|
+
*
|
|
90
|
+
* @param {string} zoomInClass - The new zoom in class to be set.
|
|
91
|
+
* @return {ZoomControlSettings} - The updated zoom control settings.
|
|
92
|
+
*/
|
|
35
93
|
setZoomInClass(zoomInClass) {
|
|
36
94
|
return ZoomControlSettings.copy({ ...this, zoomInClass });
|
|
37
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* Set the label for the zoom out control.
|
|
98
|
+
*
|
|
99
|
+
* @param {string} zoomOutLabel - The label for the zoom out control.
|
|
100
|
+
* @returns {ZoomControlSettings} - The updated zoom control settings.
|
|
101
|
+
*/
|
|
38
102
|
setZoomOutLabel(zoomOutLabel) {
|
|
39
103
|
return ZoomControlSettings.copy({ ...this, zoomOutLabel });
|
|
40
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* Sets the control class for the ZoomControlSettings.
|
|
107
|
+
*
|
|
108
|
+
* @param {string} controlClass - The class name of the control to be set.
|
|
109
|
+
*
|
|
110
|
+
* @return {ZoomControlSettings} - The modified ZoomControlSettings object.
|
|
111
|
+
*/
|
|
41
112
|
setControlClass(controlClass) {
|
|
42
113
|
return ZoomControlSettings.copy({ ...this, controlClass });
|
|
43
114
|
}
|
|
44
115
|
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbS1jb250cm9sLnNldHRpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvbWFwLXBsYXRlL2NvbnRyb2xzL21hcC1jb250cm9sLXpvb20vem9vbS1jb250cm9sLnNldHRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQUM5Qjs7OztPQUlHO0lBQ0gsWUFBWSxHQUFXLFNBQVMsQ0FBQztJQUNqQzs7O09BR0c7SUFDSCxXQUFXLEdBQVcsWUFBWSxDQUFDO0lBQ25DOzs7O09BSUc7SUFDSCxZQUFZLEdBQVcsYUFBYSxDQUFDO0lBQ3JDOzs7O09BSUc7SUFDSCxXQUFXLEdBQVcsU0FBUyxDQUFDO0lBQ2hDOzs7O09BSUc7SUFDSCxZQUFZLEdBQVcsVUFBVSxDQUFDO0lBRWxDOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUEwQjtRQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFJLG1CQUFtQixFQUFFLENBQUM7UUFDekMsTUFBTSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1FBQ3pDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUN2QyxNQUFNLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7UUFDekMsTUFBTSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUN6QyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLEtBQTBCO1FBQ3RDLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxLQUFLLENBQUMsV0FBVztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3pELElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxLQUFLLENBQUMsWUFBWTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzNELElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxLQUFLLENBQUMsV0FBVztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3pELElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxLQUFLLENBQUMsWUFBWTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzNELElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxLQUFLLENBQUMsWUFBWTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsY0FBYyxDQUFDLFdBQW1CO1FBQ2hDLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsWUFBb0I7UUFDbEMsT0FBTyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGNBQWMsQ0FBQyxXQUFtQjtRQUNoQyxPQUFPLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsZUFBZSxDQUFDLFlBQW9CO1FBQ2xDLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsZUFBZSxDQUFDLFlBQW9CO1FBQ2xDLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlcHJlc2VudHMgdGhlIHNldHRpbmdzIGZvciBhIHpvb20gY29udHJvbC5cbiAqL1xuZXhwb3J0IGNsYXNzIFpvb21Db250cm9sU2V0dGluZ3Mge1xuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBuYW1lIG9mIHRoZSBjb250cm9sIGVsZW1lbnQuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBjb250cm9sQ2xhc3M6IHN0cmluZyA9ICdvbC16b29tJztcbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgbmFtZSBmb3Igem9vbSBpbiBidXR0b24uXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICB6b29tSW5DbGFzczogc3RyaW5nID0gJ29sLXpvb20taW4nO1xuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBuYW1lIGZvciB0aGUgem9vbSBvdXQgYnV0dG9uIGVsZW1lbnQuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICB6b29tT3V0Q2xhc3M6IHN0cmluZyA9ICdvbC16b29tLW91dCc7XG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgZm9yIHRoZSB6b29tIGluIGFjdGlvbi5cbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHpvb21JbkxhYmVsOiBzdHJpbmcgPSAnWm9vbSBJbic7XG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgZm9yIHRoZSB6b29tIG91dCBjb250cm9sLlxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgem9vbU91dExhYmVsOiBzdHJpbmcgPSAnWm9vbSBPdXQnO1xuXG4gIC8qKlxuICAgKiBDb3BpZXMgdGhlIHByb3ZpZGVkIFpvb21Db250cm9sU2V0dGluZ3Mgb2JqZWN0LlxuICAgKlxuICAgKiBAcGFyYW0ge1pvb21Db250cm9sU2V0dGluZ3N9IG1vZGVsIC0gVGhlIFpvb21Db250cm9sU2V0dGluZ3Mgb2JqZWN0IHRvIGJlIGNvcGllZC5cbiAgICogQHJldHVybiB7Wm9vbUNvbnRyb2xTZXR0aW5nc30gLSBUaGUgY29waWVkIFpvb21Db250cm9sU2V0dGluZ3Mgb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjb3B5KG1vZGVsOiBab29tQ29udHJvbFNldHRpbmdzKTogWm9vbUNvbnRyb2xTZXR0aW5ncyB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IFpvb21Db250cm9sU2V0dGluZ3MoKTtcbiAgICByZXN1bHQuY29udHJvbENsYXNzID0gbW9kZWwuY29udHJvbENsYXNzO1xuICAgIHJlc3VsdC56b29tSW5DbGFzcyA9IG1vZGVsLnpvb21JbkNsYXNzO1xuICAgIHJlc3VsdC56b29tT3V0Q2xhc3MgPSBtb2RlbC56b29tT3V0Q2xhc3M7XG4gICAgcmVzdWx0Lnpvb21JbkxhYmVsID0gbW9kZWwuem9vbUluTGFiZWw7XG4gICAgcmVzdWx0Lnpvb21PdXRMYWJlbCA9IG1vZGVsLnpvb21PdXRMYWJlbDtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgY3VycmVudCBab29tQ29udHJvbFNldHRpbmdzIG9iamVjdCBpcyBlcXVhbCB0byB0aGUgZ2l2ZW4gbW9kZWwuXG4gICAqXG4gICAqIEBwYXJhbSB7Wm9vbUNvbnRyb2xTZXR0aW5nc30gbW9kZWwgLSBUaGUgWm9vbUNvbnRyb2xTZXR0aW5ncyBvYmplY3QgdG8gY29tcGFyZSB3aXRoLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufSAtIHRydWUgaWYgdGhlIGN1cnJlbnQgb2JqZWN0IGlzIGVxdWFsIHRvIHRoZSBnaXZlbiBtb2RlbCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHVibGljIGlzU2FtZShtb2RlbDogWm9vbUNvbnRyb2xTZXR0aW5ncyk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLnpvb21JbkNsYXNzICE9PSBtb2RlbC56b29tSW5DbGFzcykgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0aGlzLnpvb21PdXRDbGFzcyAhPT0gbW9kZWwuem9vbU91dENsYXNzKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHRoaXMuem9vbUluTGFiZWwgIT09IG1vZGVsLnpvb21JbkxhYmVsKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHRoaXMuY29udHJvbENsYXNzICE9PSBtb2RlbC5jb250cm9sQ2xhc3MpIHJldHVybiBmYWxzZTtcbiAgICBpZiAodGhpcy56b29tT3V0TGFiZWwgIT09IG1vZGVsLnpvb21PdXRMYWJlbCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHpvb20gaW4gbGFiZWwgb2YgdGhlIFpvb20gQ29udHJvbCBTZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHpvb21JbkxhYmVsIC0gVGhlIGxhYmVsIGZvciB0aGUgem9vbSBpbiBidXR0b24uXG4gICAqIEByZXR1cm4ge1pvb21Db250cm9sU2V0dGluZ3N9IC0gVGhlIG5ldyBab29tIENvbnRyb2wgU2V0dGluZ3Mgb2JqZWN0IHdpdGggdGhlIHVwZGF0ZWQgem9vbSBpbiBsYWJlbC5cbiAgICovXG4gIHNldFpvb21JbkxhYmVsKHpvb21JbkxhYmVsOiBzdHJpbmcpOiBab29tQ29udHJvbFNldHRpbmdzIHtcbiAgICByZXR1cm4gWm9vbUNvbnRyb2xTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgem9vbUluTGFiZWwgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgem9vbU91dENsYXNzIHByb3BlcnR5IG9mIHRoZSBab29tQ29udHJvbFNldHRpbmdzIG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHpvb21PdXRDbGFzcyAtIFRoZSBDU1MgY2xhc3MgdG8gYmUgYXNzaWduZWQgdG8gdGhlIHpvb20gb3V0IGJ1dHRvbi5cbiAgICogQHJldHVybiB7Wm9vbUNvbnRyb2xTZXR0aW5nc30gLSBUaGUgdXBkYXRlZCBab29tQ29udHJvbFNldHRpbmdzIG9iamVjdCB3aXRoIHRoZSBuZXcgem9vbU91dENsYXNzIHZhbHVlLlxuICAgKi9cbiAgc2V0Wm9vbU91dENsYXNzKHpvb21PdXRDbGFzczogc3RyaW5nKTogWm9vbUNvbnRyb2xTZXR0aW5ncyB7XG4gICAgcmV0dXJuIFpvb21Db250cm9sU2V0dGluZ3MuY29weSh7IC4uLnRoaXMsIHpvb21PdXRDbGFzcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB6b29tIGluIGNsYXNzIGZvciB0aGUgem9vbSBjb250cm9sIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gem9vbUluQ2xhc3MgLSBUaGUgbmV3IHpvb20gaW4gY2xhc3MgdG8gYmUgc2V0LlxuICAgKiBAcmV0dXJuIHtab29tQ29udHJvbFNldHRpbmdzfSAtIFRoZSB1cGRhdGVkIHpvb20gY29udHJvbCBzZXR0aW5ncy5cbiAgICovXG4gIHNldFpvb21JbkNsYXNzKHpvb21JbkNsYXNzOiBzdHJpbmcpOiBab29tQ29udHJvbFNldHRpbmdzIHtcbiAgICByZXR1cm4gWm9vbUNvbnRyb2xTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgem9vbUluQ2xhc3MgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBsYWJlbCBmb3IgdGhlIHpvb20gb3V0IGNvbnRyb2wuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB6b29tT3V0TGFiZWwgLSBUaGUgbGFiZWwgZm9yIHRoZSB6b29tIG91dCBjb250cm9sLlxuICAgKiBAcmV0dXJucyB7Wm9vbUNvbnRyb2xTZXR0aW5nc30gLSBUaGUgdXBkYXRlZCB6b29tIGNvbnRyb2wgc2V0dGluZ3MuXG4gICAqL1xuICBzZXRab29tT3V0TGFiZWwoem9vbU91dExhYmVsOiBzdHJpbmcpOiBab29tQ29udHJvbFNldHRpbmdzIHtcbiAgICByZXR1cm4gWm9vbUNvbnRyb2xTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgem9vbU91dExhYmVsIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvbnRyb2wgY2xhc3MgZm9yIHRoZSBab29tQ29udHJvbFNldHRpbmdzLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY29udHJvbENsYXNzIC0gVGhlIGNsYXNzIG5hbWUgb2YgdGhlIGNvbnRyb2wgdG8gYmUgc2V0LlxuICAgKlxuICAgKiBAcmV0dXJuIHtab29tQ29udHJvbFNldHRpbmdzfSAtIFRoZSBtb2RpZmllZCBab29tQ29udHJvbFNldHRpbmdzIG9iamVjdC5cbiAgICovXG4gIHNldENvbnRyb2xDbGFzcyhjb250cm9sQ2xhc3M6IHN0cmluZyk6IFpvb21Db250cm9sU2V0dGluZ3Mge1xuICAgIHJldHVybiBab29tQ29udHJvbFNldHRpbmdzLmNvcHkoeyAuLi50aGlzLCBjb250cm9sQ2xhc3MgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -5,6 +5,11 @@ import { MapRenderedEvent } from '../../../messages';
|
|
|
5
5
|
import { filter, first } from 'rxjs/operators';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "../../../services/map-postboy.service";
|
|
8
|
+
/**
|
|
9
|
+
* MarkersComponent is a component that displays markers on a map.
|
|
10
|
+
* It listens for changes in the `markers` input property and
|
|
11
|
+
* automatically puts the markers on the map using the MapPostboyService.
|
|
12
|
+
*/
|
|
8
13
|
export class MarkersComponent extends DestructibleComponent {
|
|
9
14
|
postboy;
|
|
10
15
|
layerName = '';
|
|
@@ -13,6 +18,11 @@ export class MarkersComponent extends DestructibleComponent {
|
|
|
13
18
|
this.postboy = postboy;
|
|
14
19
|
}
|
|
15
20
|
_markers = [];
|
|
21
|
+
/**
|
|
22
|
+
* Sets the markers property.
|
|
23
|
+
*
|
|
24
|
+
* @param {MarkerModel[]} value - The array of MarkerModel objects to set as markers.
|
|
25
|
+
*/
|
|
16
26
|
set markers(value) {
|
|
17
27
|
this._markers = value ?? [];
|
|
18
28
|
this.putMarkers();
|
|
@@ -39,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
|
|
|
39
49
|
}], markers: [{
|
|
40
50
|
type: Input
|
|
41
51
|
}] } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Vycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBzLWNvbXBvbmVudHMvc3JjL21hcC9tYXAtcGxhdGUvZmVhdHVyZXMvbWFya2Vycy9tYXJrZXJzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUcvRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFFL0M7Ozs7R0FJRztBQU9ILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxxQkFBcUI7SUFHckM7SUFGWCxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBRXhCLFlBQW9CLE9BQTBCO1FBQzVDLEtBQUssRUFBRSxDQUFDO1FBRFUsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7SUFFOUMsQ0FBQztJQUVELFFBQVEsR0FBa0IsRUFBRSxDQUFDO0lBRTdCOzs7O09BSUc7SUFDSCxJQUFhLE9BQU8sQ0FBQyxLQUFvQjtRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU87YUFDVCxTQUFTLENBQW1CLGdCQUFnQixDQUFDLEVBQUUsQ0FBQzthQUNoRCxJQUFJLENBQ0gsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ2xCLEtBQUssRUFBRSxDQUNSO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTyxVQUFVO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2YsSUFBSSx5QkFBeUIsQ0FDM0IsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUNwQyxDQUNGLENBQUM7SUFDSixDQUFDO3VHQXJDVSxnQkFBZ0I7MkZBQWhCLGdCQUFnQixrSUFKakIsRUFBRTs7MkZBSUQsZ0JBQWdCO2tCQU41QixTQUFTOytCQUNFLGFBQWEsWUFDYixFQUFFLG1CQUVLLHVCQUF1QixDQUFDLE1BQU07c0ZBR3RDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBYU8sT0FBTztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlc3RydWN0aWJsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9kZXN0cnVjdGlibGUuY29tcG9uZW50JztcbmltcG9ydCB7IE1hcFBvc3Rib3lTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWFwLXBvc3Rib3kuc2VydmljZSc7XG5pbXBvcnQgeyBNYXJrZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9tYXJrZXItbW9kZWwnO1xuaW1wb3J0IHsgUGxhY2VMYXllckZlYXR1cmVzQ29tbWFuZCB9IGZyb20gJy4uLy4uLy4uL21lc3NhZ2VzL2NvbW1hbmRzL3BsYWNlLWxheWVyLWZlYXR1cmVzLmNvbW1hbmQnO1xuaW1wb3J0IHsgTWFwUmVuZGVyZWRFdmVudCB9IGZyb20gJy4uLy4uLy4uL21lc3NhZ2VzJztcbmltcG9ydCB7IGZpbHRlciwgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogTWFya2Vyc0NvbXBvbmVudCBpcyBhIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIG1hcmtlcnMgb24gYSBtYXAuXG4gKiBJdCBsaXN0ZW5zIGZvciBjaGFuZ2VzIGluIHRoZSBgbWFya2Vyc2AgaW5wdXQgcHJvcGVydHkgYW5kXG4gKiBhdXRvbWF0aWNhbGx5IHB1dHMgdGhlIG1hcmtlcnMgb24gdGhlIG1hcCB1c2luZyB0aGUgTWFwUG9zdGJveVNlcnZpY2UuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FydC1tYXJrZXJzJyxcbiAgdGVtcGxhdGU6ICcnLFxuICBzdHlsZVVybHM6IFtdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTWFya2Vyc0NvbXBvbmVudCBleHRlbmRzIERlc3RydWN0aWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGxheWVyTmFtZSA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcG9zdGJveTogTWFwUG9zdGJveVNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgX21hcmtlcnM6IE1hcmtlck1vZGVsW10gPSBbXTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgbWFya2VycyBwcm9wZXJ0eS5cbiAgICpcbiAgICogQHBhcmFtIHtNYXJrZXJNb2RlbFtdfSB2YWx1ZSAtIFRoZSBhcnJheSBvZiBNYXJrZXJNb2RlbCBvYmplY3RzIHRvIHNldCBhcyBtYXJrZXJzLlxuICAgKi9cbiAgQElucHV0KCkgc2V0IG1hcmtlcnModmFsdWU6IE1hcmtlck1vZGVsW10pIHtcbiAgICB0aGlzLl9tYXJrZXJzID0gdmFsdWUgPz8gW107XG4gICAgdGhpcy5wdXRNYXJrZXJzKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnBvc3Rib3lcbiAgICAgIC5zdWJzY3JpYmU8TWFwUmVuZGVyZWRFdmVudD4oTWFwUmVuZGVyZWRFdmVudC5JRClcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKG0pID0+ICEhbSksXG4gICAgICAgIGZpcnN0KCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMucHV0TWFya2VycygpKTtcbiAgfVxuXG4gIHByaXZhdGUgcHV0TWFya2VycygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX21hcmtlcnMpIHJldHVybjtcbiAgICB0aGlzLnBvc3Rib3kuZmlyZShcbiAgICAgIG5ldyBQbGFjZUxheWVyRmVhdHVyZXNDb21tYW5kKFxuICAgICAgICB0aGlzLmxheWVyTmFtZSxcbiAgICAgICAgdGhpcy5fbWFya2Vycy5tYXAoKG0pID0+IG0uZmVhdHVyZSksXG4gICAgICApLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -5,6 +5,11 @@ import { filter, first } from 'rxjs/operators';
|
|
|
5
5
|
import { PlaceLayerFeaturesCommand } from '../../../messages/commands/place-layer-features.command';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "../../../services/map-postboy.service";
|
|
8
|
+
/**
|
|
9
|
+
* Component for rendering polygons on a map.
|
|
10
|
+
* It listens for changes in the `polygons` input property and
|
|
11
|
+
* automatically puts the polygons on the map using the MapPostboyService.
|
|
12
|
+
*/
|
|
8
13
|
export class PolygonsComponent extends DestructibleComponent {
|
|
9
14
|
postboy;
|
|
10
15
|
layerName = '';
|
|
@@ -13,6 +18,11 @@ export class PolygonsComponent extends DestructibleComponent {
|
|
|
13
18
|
this.postboy = postboy;
|
|
14
19
|
}
|
|
15
20
|
_polygons = [];
|
|
21
|
+
/**
|
|
22
|
+
* Sets the value of polygons.
|
|
23
|
+
*
|
|
24
|
+
* @param {PolygonModel[]} value - The new value for polygons.
|
|
25
|
+
*/
|
|
16
26
|
set polygons(value) {
|
|
17
27
|
this._polygons = value ?? [];
|
|
18
28
|
this.putPolygons();
|
|
@@ -39,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
|
|
|
39
49
|
}], polygons: [{
|
|
40
50
|
type: Input
|
|
41
51
|
}] } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWdvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvbWFwLXBsYXRlL2ZlYXR1cmVzL3BvbHlnb25zL3BvbHlnb25zLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUUvRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDOzs7QUFHcEc7Ozs7R0FJRztBQU9ILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxxQkFBcUI7SUFHdEM7SUFGWCxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBRXhCLFlBQW9CLE9BQTBCO1FBQzVDLEtBQUssRUFBRSxDQUFDO1FBRFUsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7SUFFOUMsQ0FBQztJQUVELFNBQVMsR0FBbUIsRUFBRSxDQUFDO0lBRS9COzs7O09BSUc7SUFDSCxJQUFhLFFBQVEsQ0FBQyxLQUFxQjtRQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU87YUFDVCxTQUFTLENBQW1CLGdCQUFnQixDQUFDLEVBQUUsQ0FBQzthQUNoRCxJQUFJLENBQ0gsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ2xCLEtBQUssRUFBRSxDQUNSO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2YsSUFBSSx5QkFBeUIsQ0FDM0IsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUNyQyxDQUNGLENBQUM7SUFDSixDQUFDO3VHQXJDVSxpQkFBaUI7MkZBQWpCLGlCQUFpQixxSUFKbEIsRUFBRTs7MkZBSUQsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLGNBQWMsWUFDZCxFQUFFLG1CQUVLLHVCQUF1QixDQUFDLE1BQU07c0ZBR3RDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBYU8sUUFBUTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlc3RydWN0aWJsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9kZXN0cnVjdGlibGUuY29tcG9uZW50JztcbmltcG9ydCB7IE1hcFBvc3Rib3lTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWFwLXBvc3Rib3kuc2VydmljZSc7XG5pbXBvcnQgeyBNYXBSZW5kZXJlZEV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vbWVzc2FnZXMnO1xuaW1wb3J0IHsgZmlsdGVyLCBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFBsYWNlTGF5ZXJGZWF0dXJlc0NvbW1hbmQgfSBmcm9tICcuLi8uLi8uLi9tZXNzYWdlcy9jb21tYW5kcy9wbGFjZS1sYXllci1mZWF0dXJlcy5jb21tYW5kJztcbmltcG9ydCB7IFBvbHlnb25Nb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9wb2x5Z29uLm1vZGVsJztcblxuLyoqXG4gKiBDb21wb25lbnQgZm9yIHJlbmRlcmluZyBwb2x5Z29ucyBvbiBhIG1hcC5cbiAqIEl0IGxpc3RlbnMgZm9yIGNoYW5nZXMgaW4gdGhlIGBwb2x5Z29uc2AgaW5wdXQgcHJvcGVydHkgYW5kXG4gKiBhdXRvbWF0aWNhbGx5IHB1dHMgdGhlIHBvbHlnb25zIG9uIHRoZSBtYXAgdXNpbmcgdGhlIE1hcFBvc3Rib3lTZXJ2aWNlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcnQtcG9seWdvbnMnLFxuICB0ZW1wbGF0ZTogJycsXG4gIHN0eWxlVXJsczogW10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQb2x5Z29uc0NvbXBvbmVudCBleHRlbmRzIERlc3RydWN0aWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGxheWVyTmFtZSA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcG9zdGJveTogTWFwUG9zdGJveVNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgX3BvbHlnb25zOiBQb2x5Z29uTW9kZWxbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiBwb2x5Z29ucy5cbiAgICpcbiAgICogQHBhcmFtIHtQb2x5Z29uTW9kZWxbXX0gdmFsdWUgLSBUaGUgbmV3IHZhbHVlIGZvciBwb2x5Z29ucy5cbiAgICovXG4gIEBJbnB1dCgpIHNldCBwb2x5Z29ucyh2YWx1ZTogUG9seWdvbk1vZGVsW10pIHtcbiAgICB0aGlzLl9wb2x5Z29ucyA9IHZhbHVlID8/IFtdO1xuICAgIHRoaXMucHV0UG9seWdvbnMoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucG9zdGJveVxuICAgICAgLnN1YnNjcmliZTxNYXBSZW5kZXJlZEV2ZW50PihNYXBSZW5kZXJlZEV2ZW50LklEKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigobSkgPT4gISFtKSxcbiAgICAgICAgZmlyc3QoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5wdXRQb2x5Z29ucygpKTtcbiAgfVxuXG4gIHByaXZhdGUgcHV0UG9seWdvbnMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9wb2x5Z29ucykgcmV0dXJuO1xuICAgIHRoaXMucG9zdGJveS5maXJlKFxuICAgICAgbmV3IFBsYWNlTGF5ZXJGZWF0dXJlc0NvbW1hbmQoXG4gICAgICAgIHRoaXMubGF5ZXJOYW1lLFxuICAgICAgICB0aGlzLl9wb2x5Z29ucy5tYXAoKG0pID0+IG0uZmVhdHVyZSksXG4gICAgICApLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|