@artstesh/maps 5.1.4 → 5.1.6
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/messages/executors/calculate-area.executor.mjs +13 -0
- package/dist/esm2022/map/messages/index.mjs +2 -1
- package/dist/esm2022/map/models/map-settings.mjs +2 -2
- package/dist/esm2022/map/services/feature.service.mjs +7 -1
- package/dist/esm2022/map/services/message-registrator.service.mjs +3 -1
- package/dist/esm2022/src/map/messages/executors/calculate-area.executor.mjs +13 -0
- package/dist/esm2022/src/map/messages/index.mjs +2 -1
- package/dist/esm2022/src/map/models/map-settings.mjs +2 -2
- package/dist/esm2022/src/map/services/feature.service.mjs +7 -1
- package/dist/esm2022/src/map/services/message-registrator.service.mjs +3 -1
- package/dist/fesm2022/maps-components-src-map.mjs +21 -2
- package/dist/fesm2022/maps-components-src-map.mjs.map +1 -1
- package/dist/fesm2022/maps-components.mjs +21 -2
- package/dist/fesm2022/maps-components.mjs.map +1 -1
- package/dist/map/messages/executors/calculate-area.executor.d.ts +10 -0
- package/dist/map/messages/index.d.ts +1 -0
- package/dist/map/services/feature.service.d.ts +1 -0
- package/dist/src/map/messages/executors/calculate-area.executor.d.ts +10 -0
- package/dist/src/map/messages/index.d.ts +1 -0
- package/dist/src/map/services/feature.service.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maps-components-src-map.mjs","sources":["../../projects/maps-components/src/map/common/destructible.component.ts","../../projects/maps-components/src/map/models/map-lyrs.enum.ts","../../projects/maps-components/src/map/models/map-settings.ts","../../projects/maps-components/src/map/common/id.generator.ts","../../projects/maps-components/src/map/models/map.constants.ts","../../projects/maps-components/src/map/models/marker-model.ts","../../projects/maps-components/src/map/models/polygon.model.ts","../../projects/maps-components/src/map/models/drawing-type.enum.ts","../../projects/maps-components/src/map/models/feature-format.enum.ts","../../projects/maps-components/src/map/models/dictionary.ts","../../projects/maps-components/src/map/models/map-control.ts","../../projects/maps-components/src/map/messages/events/map-rendered.event.ts","../../projects/maps-components/src/map/messages/events/map-click.event.ts","../../projects/maps-components/src/map/messages/events/map-move-end.event.ts","../../projects/maps-components/src/map/messages/commands/close-tooltip.command.ts","../../projects/maps-components/src/map/messages/commands/start-drawing.command.ts","../../projects/maps-components/src/map/messages/commands/cancel-drawing.command.ts","../../projects/maps-components/src/map/messages/commands/draw-selection-area.command.ts","../../projects/maps-components/src/map/messages/commands/modify-feature.command.ts","../../projects/maps-components/src/map/messages/commands/cancel-feature-modification.command.ts","../../projects/maps-components/src/map/messages/commands/add-control.command.ts","../../projects/maps-components/src/map/messages/commands/remove-control.command.ts","../../projects/maps-components/src/map/messages/commands/set-map-center.command.ts","../../projects/maps-components/src/map/messages/commands/add-layer.command.ts","../../projects/maps-components/src/map/messages/commands/place-layer-features.command.ts","../../projects/maps-components/src/map/messages/commands/remove-layer.command.ts","../../projects/maps-components/src/map/messages/commands/add-tile.command.ts","../../projects/maps-components/src/map/messages/commands/remove-tile.command.ts","../../projects/maps-components/src/map/messages/commands/fit-to-features.command.ts","../../projects/maps-components/src/map/messages/queries/get-layer.query.ts","../../projects/maps-components/src/map/messages/events/drawing-finished.event.ts","../../projects/maps-components/src/map/services/drawing/drawing-generation.service.ts","../../projects/maps-components/src/map/services/feature.service.ts","../../projects/maps-components/src/map/messages/queries/get-features-in-area.query.ts","../../projects/maps-components/src/map/messages/executors/filter-features-in-area.executor.ts","../../projects/maps-components/src/map/messages/executors/generate-draw.executor.ts","../../projects/maps-components/src/map/messages/executors/generate-zoom-control.executor.ts","../../projects/maps-components/src/map/map-plate/controls/map-control-zoom/zoom-control.factory.ts","../../projects/maps-components/src/map/services/map-postboy.service.ts","../../projects/maps-components/src/map/services/map-management.service.ts","../../projects/maps-components/src/map/services/map-state.service.ts","../../projects/maps-components/src/map/services/map-feature.service.ts","../../projects/maps-components/src/map/services/map-click.service.ts","../../projects/maps-components/src/map/services/drawing/drawing.service.ts","../../projects/maps-components/src/map/services/drawing/feature-modification.service.ts","../../projects/maps-components/src/map/services/controls/controls.service.ts","../../projects/maps-components/src/map/services/message-registrator.service.ts","../../projects/maps-components/src/map/map-plate/layers/tile-layer/tile-layer.settings.ts","../../projects/maps-components/src/map/map-plate/layers/tile-layer/tile-layer.factory.ts","../../projects/maps-components/src/map/map-plate/layers/tile-layer/tile-layer.component.ts","../../projects/maps-components/src/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.ts","../../projects/maps-components/src/map/map-plate/layers/feature-layer/feature-layer.settings.ts","../../projects/maps-components/src/map/map-plate/layers/feature-layer/feature-layer.factory.ts","../../projects/maps-components/src/map/map-plate/layers/feature-layer/feature-layer.component.ts","../../projects/maps-components/src/map/map-plate/layers/cluster-layer/cluster-layer.settings.ts","../../projects/maps-components/src/map/map-plate/layers/cluster-layer/cluster-layer.manager.ts","../../projects/maps-components/src/map/map-plate/layers/cluster-layer/cluster-layer-factory.service.ts","../../projects/maps-components/src/map/map-plate/layers/cluster-layer/cluster-layer.component.ts","../../projects/maps-components/src/map/map-plate/map-plate.factory.service.ts","../../projects/maps-components/src/map/map-plate/map-plate.component.ts","../../projects/maps-components/src/map/map-plate/map-plate.component.html","../../projects/maps-components/src/map/map-plate/features/markers/markers.component.ts","../../projects/maps-components/src/map/map-plate/tooltips/tooltip/tooltip.settings.ts","../../projects/maps-components/src/map/map-plate/tooltips/tooltip/tooltip.component.ts","../../projects/maps-components/src/map/map-plate/tooltips/tooltip/tooltip.component.html","../../projects/maps-components/src/map/map-plate/features/polygons/polygons.component.ts","../../projects/maps-components/src/map/map-plate/controls/map-control-zoom/zoom-control.settings.ts","../../projects/maps-components/src/map/map-plate/controls/map-control-zoom/map-control-zoom.component.ts","../../projects/maps-components/src/map/map.module.ts","../../projects/maps-components/src/map/helpers/marker-style.helper.ts","../../projects/maps-components/src/map/helpers/polygon-style.helper.ts","../../projects/maps-components/src/map/helpers/text-style.helper.ts","../../projects/maps-components/src/map/helpers/stringify-feature.helper.ts","../../projects/maps-components/src/map/public-api.ts","../../projects/maps-components/src/map/maps-components-src-map.ts"],"sourcesContent":["import { Component, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\n@Component({ template: '' })\nexport class DestructibleComponent implements OnDestroy {\n protected subs: Subscription[] = [];\n protected onDestroy?: () => void;\n\n ngOnDestroy(): void {\n this.subs.forEach((s) => s.unsubscribe());\n if (this.onDestroy) this.onDestroy();\n }\n}\n","export enum MapLyrs {\n Hybrid = 1,\n Satellite,\n Streets,\n Terrain,\n}\n\nexport class MapLyrsLabel {\n private static lyrs = {\n [MapLyrs.Hybrid]: 's,h',\n [MapLyrs.Satellite]: 's',\n [MapLyrs.Streets]: 'm',\n [MapLyrs.Terrain]: 'p',\n };\n\n public static get(lyrs: MapLyrs): string {\n return MapLyrsLabel.lyrs[lyrs];\n }\n}\n","import { MapLyrs } from './map-lyrs.enum';\n\nexport class MapSettings {\n center: number[] = [0, 0];\n maxZoom: number = 19;\n minZoom: number = 0;\n zoom: number = 4;\n lyrs: MapLyrs = MapLyrs.Hybrid;\n language: string = 'en';\n\n public static copy(model: MapSettings): MapSettings {\n const result = new MapSettings();\n result.center = model.center;\n result.maxZoom = model.maxZoom;\n result.minZoom = model.minZoom;\n result.zoom = model.zoom;\n result.lyrs = model.lyrs;\n result.language = model.language;\n return result;\n }\n\n setCenter(center: number[]): MapSettings {\n return MapSettings.copy({ ...this, center });\n }\n\n setMaxZoom(maxZoom: number): MapSettings {\n return MapSettings.copy({ ...this, maxZoom });\n }\n\n setMinZoom(minZoom: number): MapSettings {\n return MapSettings.copy({ ...this, minZoom });\n }\n\n setZoom(zoom: number): MapSettings {\n return MapSettings.copy({ ...this, zoom });\n }\n\n setLyrs(lyrs: MapLyrs): MapSettings {\n return MapSettings.copy({ ...this, lyrs });\n }\n\n setLanguage(language: string): MapSettings {\n return MapSettings.copy({ ...this, language });\n }\n\n public isSame(model: MapSettings): boolean {\n if (this.maxZoom !== model.maxZoom) return false;\n if (this.minZoom !== model.minZoom) return false;\n if (this.zoom !== model.zoom) return false;\n if (this.lyrs !== model.lyrs) return false;\n if (this.language !== model.language) return false;\n return this.center.length !== model.center.length || !!this.center.filter((c, i) => c !== model.center[i]);\n }\n}\n","export class IdGenerator {\n private static collection = 'ABCDEFGHIJKLMNOPQRSTUVWXTZ0123456789'.split('');\n\n public static get(): string {\n let result: string[] = [];\n for (let i = 0; i < 7; i++) {\n result.push(\n IdGenerator.collection\n .sort(() => 0.5 - Math.random())\n .slice(0, 5)\n .join(''),\n );\n }\n return result.join('-');\n }\n}\n","export class MapConstants {\n public static FeatureInfo = 'f-info';\n public static DrawingLayerId = '93a981756ec7';\n}\n","import { IdGenerator } from '../common/id.generator';\nimport { Feature } from 'ol';\nimport { Geometry, Point } from 'ol/geom';\nimport { MapConstants } from './map.constants';\n\nexport class MarkerModel {\n public readonly id: string | number;\n constructor(\n public readonly lat: number,\n public readonly lng: number,\n id?: string | number,\n public info?: {\n [id: string]: any;\n },\n ) {\n this.id = id == null ? IdGenerator.get() : id;\n this._feature = this.getFeature();\n }\n\n private _feature: Feature<Geometry>;\n\n public get feature(): Feature<Geometry> {\n return this._feature;\n }\n\n private getFeature(): Feature<Geometry> {\n const feature = new Feature(new Point([this.lng, this.lat]));\n feature.setId(this.id);\n if (this.info) feature.set(MapConstants.FeatureInfo, this.info);\n return feature;\n }\n}\n","import { IdGenerator } from '../common/id.generator';\nimport { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\nimport { GeoJSON, WKT } from 'ol/format';\nimport { getCenter } from 'ol/extent';\nimport { MapConstants } from './map.constants';\n\nexport class PolygonModel {\n public readonly id: string | number;\n public readonly lat: number;\n public readonly lng: number;\n private _feature: Feature<Geometry>;\n\n public static fromGeoJson(id: string | number, json: string, info?: { [id: string]: any }): PolygonModel {\n let feature = new GeoJSON().readFeature(json);\n feature.setId(id);\n return new PolygonModel(feature, id, info);\n }\n\n public static fromWKT(id: string | number, wkt: string, info?: { [id: string]: any }): PolygonModel {\n let feature = new WKT().readFeature(wkt);\n feature.setId(id);\n return new PolygonModel(feature, id, info);\n }\n\n private constructor(feature: Feature<Geometry>, id?: string | number, public info?: { [id: string]: any }) {\n this.id = id == null ? IdGenerator.get() : id;\n this._feature = feature;\n if (this.info) this._feature?.set(MapConstants.FeatureInfo, this.info);\n [this.lng, this.lat] = getCenter(this._feature.getGeometry()?.getExtent()!);\n }\n\n public get feature(): Feature<Geometry> {\n return this._feature;\n }\n}\n","export enum DrawingType {\n Polygon = 1,\n Circle,\n Square,\n Box,\n}\n","export enum FeatureOutputFormat {\n GeoJson = 1,\n WKT,\n}\n","export class Dictionary<T> {\n public collection: DictionaryType<T> = {};\n private _keys = new Set<string>();\n\n public get keys(): string[] {\n return Array.from(this._keys);\n }\n\n public get size(): number {\n return this._keys.size;\n }\n\n public static clone<T>(dic: Dictionary<T>, action?: (e: T, k: string) => T): Dictionary<T> {\n return Dictionary.create(dic.collection, action);\n }\n\n public static create<T>(dic: DictionaryType<T>, action?: (e: T, k: string) => T): Dictionary<T> {\n let keyList = Object.keys(dic);\n const result = new Dictionary<T>();\n for (let i = 0; i < keyList.length; i++) {\n let key = keyList[i];\n result._keys.add(key);\n result.collection[key] = action ? action(dic[key], key) : dic[key];\n }\n return result;\n }\n\n public find(predicate: (value: T) => boolean): T | null {\n let result: T | null = null;\n this.forEach((e) => {\n if (result === null && predicate(e)) result = e;\n });\n return result;\n }\n\n public has = (key: string) => this._keys.has(key);\n\n public take(key: string): T | null {\n return this._keys.has(key) ? this.collection[key] : null;\n }\n\n public put(key: string, value?: T | null): void {\n if (value == null) return;\n this.collection[key] = value;\n this._keys.add(key);\n }\n\n public rmv(key: string): void {\n if (!this._keys.has(key)) return;\n delete this.collection[key];\n this._keys.delete(key);\n }\n\n public forEach(callback: (value: T, index: number) => void): void {\n let keys = Object.keys(this.collection);\n for (let i = 0; i < keys.length; i++) {\n callback(this.collection[keys[i]], i);\n }\n }\n}\n\nexport type DictionaryType<T> = { [id: string]: T };\n","import { Control } from 'ol/control';\nimport { Options } from 'ol/control/Control';\n\n/**\n *\n * A control is a visible widget with a DOM element in a fixed position on the screen. They can involve user input (buttons), or be informational only; the position is determined using CSS. By default these are placed in the container with CSS class name ol-overlaycontainer-stopevent, but can use any outside DOM element.\n * This is the base class for controls. You can use it for simple custom controls by creating the element with listeners, creating an instance:\n * var myControl = new Control({element: myElement}); and then adding this to the map.\n * The main advantage of having this as a control rather than a simple separate DOM element is that preventing propagation is handled for you. Controls will also be objects in a module:ol/Collection~Collection, so you can use their methods.\n * You can also extend this base for your own control class. See examples/custom-controls for an example of how to do this.\n */\nexport class MapControl extends Control {\n constructor(options: Options) {\n super(options);\n }\n}\n","import Map from 'ol/Map';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class MapRenderedEvent extends PostboyGenericMessage {\n public static readonly ID: string = 'b6121807-3b89-4cd3-82cf-089d2cefdc4f';\n\n constructor(public map: Map) {\n super();\n }\n\n public get id(): string {\n return MapRenderedEvent.ID;\n }\n}\n","import { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\nimport { IIdentified } from '../../models/i-identified';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class MapClickEvent extends PostboyGenericMessage {\n public static readonly ID: string = '323df526-8d9c-49c6-83e8-6e9a1e7762f7';\n\n constructor(\n public coordinates: number[],\n public entities: { [layer: string]: IIdentified[] },\n public features: { [layer: string]: Feature<Geometry>[] },\n ) {\n super();\n }\n\n public get id(): string {\n return MapClickEvent.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class MapMoveEndEvent extends PostboyGenericMessage {\n public static readonly ID: string = 'f21f783e-b5af-4489-9fec-8027fd07a8ad';\n\n constructor(public zoom: number, public extent: number[]) {\n super();\n }\n\n public get id(): string {\n return MapMoveEndEvent.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class CloseTooltipCommand extends PostboyGenericMessage {\n public static readonly ID: string = '4896d52c-e34f-4994-bcfd-32832d12dbe4';\n\n constructor(public tooltipId: string) {\n super();\n }\n\n public get id(): string {\n return CloseTooltipCommand.ID;\n }\n}\n","import { PostboyCallbackMessage } from '@artstesh/postboy';\nimport { DrawingType, FeatureOutputFormat } from '../../models';\nimport Style from 'ol/style/Style';\n\nexport class StartDrawingCommand extends PostboyCallbackMessage<string | null> {\n public static readonly ID: string = 'da904f4b-a1c8-4db7-a6af-14d9ee18ec8c';\n\n constructor(\n public type: DrawingType,\n public style: Style,\n public format: FeatureOutputFormat = FeatureOutputFormat.GeoJson,\n ) {\n super();\n }\n\n public get id(): string {\n return StartDrawingCommand.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class CancelDrawingCommand extends PostboyGenericMessage {\n public static readonly ID: string = '7d38d983-feba-4176-a66b-18175e5ecd6b';\n\n public get id(): string {\n return CancelDrawingCommand.ID;\n }\n}\n","import { PostboyCallbackMessage } from '@artstesh/postboy';\nimport { Dictionary, DrawingType } from '../../models';\nimport Style from 'ol/style/Style';\nimport { IIdentified } from '../../models/i-identified';\n\nexport class DrawSelectionAreaCommand extends PostboyCallbackMessage<Dictionary<IIdentified[]>> {\n public static readonly ID: string = '573d8a0d-f25b-42b7-9ad7-0ac6d86ac362';\n\n constructor(public type: DrawingType, public style: Style, public ignore: Set<string> = new Set<string>()) {\n super();\n }\n\n public get id(): string {\n return DrawSelectionAreaCommand.ID;\n }\n}\n","import { PostboyCallbackMessage } from '@artstesh/postboy';\nimport { FeatureOutputFormat, PolygonModel } from '../../models';\nimport Style from 'ol/style/Style';\n\nexport class ModifyFeatureCommand extends PostboyCallbackMessage<string | null> {\n public static readonly ID: string = 'ead85caa-24c6-4844-a68c-2cea91774c8c';\n\n constructor(\n public model: PolygonModel,\n public style: Style,\n public format: FeatureOutputFormat = FeatureOutputFormat.GeoJson,\n ) {\n super();\n }\n\n public get id(): string {\n return ModifyFeatureCommand.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class CancelFeatureModificationCommand extends PostboyGenericMessage {\n public static readonly ID: string = '9c9fb40f-ea95-4704-8177-0e9ecabf36fa';\n\n public get id(): string {\n return CancelFeatureModificationCommand.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\nimport { MapControl } from '../../models/map-control';\n\nexport class AddControlCommand extends PostboyGenericMessage {\n public static readonly ID: string = '8e1c06eb-b395-4fe1-929c-ebf0805eeb49';\n\n constructor(public item: MapControl) {\n super();\n }\n\n public get id(): string {\n return AddControlCommand.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\nimport { MapControl } from '../../models/map-control';\n\nexport class RemoveControlCommand extends PostboyGenericMessage {\n public static readonly ID: string = '361641e0-804a-4930-8c27-0cea6330dbfc';\n\n constructor(public item: MapControl) {\n super();\n }\n\n public get id(): string {\n return RemoveControlCommand.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\n\n/**\n * Forces map to move to a specific point\n */\nexport class SetMapCenterCommand extends PostboyGenericMessage {\n public static readonly ID: string = 'd50e89c9-6707-4f8c-ab57-65fcef232182';\n\n /**\n *\n * @param lat - the desired latitude\n * @param lng - the desired longitude\n * @param zoom - the desired zoom; doesn't change zoom if undefined\n */\n constructor(public lat: number, public lng: number, public zoom?: number) {\n super();\n }\n\n public get id(): string {\n return SetMapCenterCommand.ID;\n }\n}\n","import { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport Cluster from 'ol/source/Cluster';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class AddLayerCommand extends PostboyGenericMessage {\n public static readonly ID: string = 'd93e250f-92bc-43ac-9c6a-46c521a1aaa5';\n\n constructor(public layer: Layer<VectorSource<any> | Cluster>) {\n super();\n }\n\n public get id(): string {\n return AddLayerCommand.ID;\n }\n}\n","import { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class PlaceLayerFeaturesCommand extends PostboyGenericMessage {\n public static readonly ID: string = '8caf86bc-869b-426f-b36d-4642f6b8aab0';\n\n constructor(public layer: string, public features: Feature<Geometry>[]) {\n super();\n }\n\n public get id(): string {\n return PlaceLayerFeaturesCommand.ID;\n }\n}\n","import BaseLayer from 'ol/layer/Base';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class RemoveLayerCommand extends PostboyGenericMessage {\n public static readonly ID: string = 'ab484e0e-e185-45cd-8434-12101f3c7eb1';\n\n constructor(public layer: BaseLayer) {\n super();\n }\n\n public get id(): string {\n return RemoveLayerCommand.ID;\n }\n}\n","import TileLayer from 'ol/layer/Tile';\nimport { XYZ } from 'ol/source';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class AddTileCommand extends PostboyGenericMessage {\n public static readonly ID: string = '25b7df28-72ce-4453-9fe6-54285a2fdc57';\n\n constructor(public layer: TileLayer<XYZ>) {\n super();\n }\n\n public get id(): string {\n return AddTileCommand.ID;\n }\n}\n","import TileLayer from 'ol/layer/Tile';\nimport { XYZ } from 'ol/source';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class RemoveTileCommand extends PostboyGenericMessage {\n public static readonly ID: string = 'c36ccc0b-5638-4819-b148-2de57a59a5b7';\n\n constructor(public layer: TileLayer<XYZ>) {\n super();\n }\n\n public get id(): string {\n return RemoveTileCommand.ID;\n }\n}\n","import { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class FitToFeaturesCommand extends PostboyGenericMessage {\n public static readonly ID: string = '76cdc091-3793-4b6c-82f7-1e0334cf08a8';\n\n constructor(public features: Feature<Geometry>[], public zoomAfter = 0) {\n super();\n }\n\n public get id(): string {\n return FitToFeaturesCommand.ID;\n }\n}\n","import { PostboyCallbackMessage } from '@artstesh/postboy';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport Cluster from 'ol/source/Cluster';\n\nexport class GetLayerQuery extends PostboyCallbackMessage<Layer<VectorSource<any> | Cluster> | null> {\n public static readonly ID: string = '5c04c87b-8a93-4c2a-979e-d1e313d860ed';\n\n constructor(public name: string) {\n super();\n }\n\n public get id(): string {\n return GetLayerQuery.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class DrawingFinishedEvent extends PostboyGenericMessage {\n public static readonly ID: string = 'c724b68e-b4eb-4783-90f1-a8e31973fd36';\n\n constructor() {\n super();\n }\n\n public get id(): string {\n return DrawingFinishedEvent.ID;\n }\n}\n","import { Draw } from 'ol/interaction';\nimport { DrawingType } from '../../models';\nimport { createBox, createRegularPolygon, GeometryFunction } from 'ol/interaction/Draw';\nimport { GenerateDrawExecutor } from '../../messages/executors/generate-draw.executor';\n\nexport class DrawingGenerationService {\n public static getDraw(ev: GenerateDrawExecutor) {\n return new Draw({\n source: ev.layer.getSource()!,\n type: ev.type === DrawingType.Polygon ? 'Polygon' : 'Circle',\n style: ev.style,\n geometryFunction: DrawingGenerationService.geometryFunc(ev.type),\n });\n }\n\n private static geometryFunc(type: DrawingType): GeometryFunction | undefined {\n switch (type) {\n case DrawingType.Circle:\n return createRegularPolygon(32);\n case DrawingType.Box:\n return createBox();\n case DrawingType.Square:\n return createRegularPolygon(4);\n }\n return undefined;\n }\n}\n","import { Circle, Geometry, Point } from 'ol/geom';\nimport Polygon from 'ol/geom/Polygon';\nimport { Feature } from 'ol';\nimport { FilterFeaturesInAreaExecutor } from '../messages/executors/filter-features-in-area.executor';\n\nexport class FeatureService {\n constructor() {}\n\n public static filterFeaturesInArea(query: FilterFeaturesInAreaExecutor): Feature<Geometry>[] {\n return query.features.filter((f) => FeatureService.booleanIntersects(query.area, f.getGeometry()!));\n }\n\n private static booleanIntersects(g1: Geometry, g2: Geometry): boolean {\n if (g2.getType() === 'Point') return g1.intersectsCoordinate((g2 as Point).getCoordinates());\n if (g2.getType() === 'Circle') return g1.intersectsCoordinate((g2 as Circle).getCenter());\n if (g2.getType() === 'Polygon') return g1.intersectsCoordinate((g2 as Polygon).getInteriorPoint().getCoordinates());\n return false;\n }\n}\n","import { PostboyCallbackMessage } from '@artstesh/postboy';\nimport { Geometry } from 'ol/geom';\nimport { Dictionary } from '../../models';\nimport { IIdentified } from '../../models/i-identified';\n\nexport class GetFeaturesInAreaQuery extends PostboyCallbackMessage<Dictionary<IIdentified[]>> {\n public static readonly ID: string = 'efcf4271-a07a-40e0-9f02-d4dade40b8ac';\n\n constructor(public area: Geometry, public ignore: Set<string> = new Set<string>()) {\n super();\n }\n\n public get id(): string {\n return GetFeaturesInAreaQuery.ID;\n }\n}\n","import { PostboyExecutor } from '@artstesh/postboy';\nimport { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\n\nexport class FilterFeaturesInAreaExecutor extends PostboyExecutor<Feature<Geometry>[]> {\n public static readonly ID: string = '36bb2d94-8028-4512-90dd-2386af3fc67c';\n\n constructor(public area: Geometry, public features: Feature<Geometry>[]) {\n super();\n }\n\n public get id(): string {\n return FilterFeaturesInAreaExecutor.ID;\n }\n}\n","import { PostboyExecutor } from '@artstesh/postboy';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport { Draw } from 'ol/interaction';\nimport { DrawingType } from '../../models';\nimport Style from 'ol/style/Style';\n\nexport class GenerateDrawExecutor extends PostboyExecutor<Draw> {\n public static readonly ID: string = 'f01c99ba-0953-4ab5-82f9-04e6fbb678c1';\n\n constructor(public layer: Layer<VectorSource<any>>, public style: Style, public type: DrawingType) {\n super();\n }\n\n public get id(): string {\n return GenerateDrawExecutor.ID;\n }\n}\n","import { PostboyExecutor } from '@artstesh/postboy';\nimport { Draw } from 'ol/interaction';\nimport { ZoomControlSettings } from '../../map-plate/controls/map-control-zoom/zoom-control.settings';\n\nexport class GenerateZoomControlExecutor extends PostboyExecutor<Draw> {\n public static readonly ID: string = 'ff16a833-c68e-4b1a-bc23-c0d16b002810';\n\n constructor(public settings: ZoomControlSettings) {\n super();\n }\n\n public get id(): string {\n return GenerateZoomControlExecutor.ID;\n }\n}\n","import { ZoomControlSettings } from './zoom-control.settings';\nimport { Zoom } from 'ol/control';\n\nexport class ZoomControlFactory {\n public static build(settings: ZoomControlSettings): Zoom {\n return new Zoom({\n zoomInTipLabel: settings.zoomInLabel,\n zoomOutTipLabel: settings.zoomOutLabel,\n zoomInClassName: settings.zoomInClass,\n zoomOutClassName: settings.zoomOutClass,\n className: settings.controlClass,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { PostboyService } from '@artstesh/postboy';\nimport { StartDrawingCommand } from '../messages/commands/start-drawing.command';\nimport { MapClickEvent } from '../messages';\nimport { DrawingFinishedEvent } from '../messages/events/drawing-finished.event';\n\n@Injectable()\nexport class MapPostboyService extends PostboyService {\n constructor() {\n super();\n this.addLocker({ locker: StartDrawingCommand.ID, unlocker: DrawingFinishedEvent.ID, locking: [MapClickEvent.ID] });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Feature, Map } from 'ol';\nimport { MapPostboyService } from './map-postboy.service';\nimport { AddLayerCommand } from '../messages/commands/add-layer.command';\nimport { RemoveLayerCommand } from '../messages/commands/remove-layer.command';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport { MapRenderedEvent } from '../messages';\nimport { PlaceLayerFeaturesCommand } from '../messages/commands/place-layer-features.command';\nimport { AddTileCommand } from '../messages/commands/add-tile.command';\nimport { RemoveTileCommand } from '../messages/commands/remove-tile.command';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport Cluster from 'ol/source/Cluster';\nimport { GetLayerQuery } from '../messages/queries/get-layer.query';\nimport { GetFeaturesInAreaQuery } from '../messages/queries/get-features-in-area.query';\nimport { IIdentified } from '../models/i-identified';\nimport { Dictionary } from '../models';\nimport { MapConstants } from '../models/map.constants';\nimport { FilterFeaturesInAreaExecutor } from '../messages/executors/filter-features-in-area.executor';\nimport { Geometry } from 'ol/geom';\n\n@Injectable()\nexport class MapManagementService implements IPostboyDependingService {\n private map?: Map;\n private layers = new Dictionary<Layer<VectorSource<any> | Cluster>>();\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeMapRender();\n this.observeAddLayer();\n this.observeRemoveLayer();\n this.observePlaceFeatures();\n this.observeAddTile();\n this.observeRemoveTile();\n this.observeLayerQuery();\n this.observeFeaturesInArea();\n }\n\n private observeRemoveTile() {\n this.postboy.subscribe<RemoveTileCommand>(RemoveTileCommand.ID).subscribe((c) => {\n if (!this.map) return;\n this.map.removeLayer(c.layer);\n });\n }\n\n private observeLayerQuery() {\n this.postboy.subscribe<GetLayerQuery>(GetLayerQuery.ID).subscribe((ev) => ev.finish(this.layers.take(ev.name)));\n }\n\n private observeAddTile() {\n this.postboy.subscribe<AddTileCommand>(AddTileCommand.ID).subscribe((c) => {\n if (!this.map) return;\n this.map.addLayer(c.layer);\n });\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n });\n }\n\n private observeAddLayer() {\n this.postboy.subscribe<AddLayerCommand>(AddLayerCommand.ID).subscribe((c) => {\n if (!this.map) return;\n this.layers.put(c.layer.get('name'), c.layer);\n this.map.addLayer(c.layer);\n });\n }\n\n private observePlaceFeatures() {\n this.postboy.subscribe<PlaceLayerFeaturesCommand>(PlaceLayerFeaturesCommand.ID).subscribe((c) => {\n if (!this.layers.has(c.layer)) return;\n let source = this.layers.take(c.layer)!.getSource();\n if (!!(source as any)['getSource']) source = (source as any)?.getSource();\n source?.clear();\n !!c.features?.length && source?.addFeatures(c.features);\n });\n }\n\n private observeRemoveLayer() {\n this.postboy.subscribe<RemoveLayerCommand>(RemoveLayerCommand.ID).subscribe((c) => {\n if (!this.map) return;\n this.layers.rmv(c.layer.get('name'));\n this.map.removeLayer(c.layer);\n });\n }\n\n private observeFeaturesInArea() {\n this.postboy.subscribe<GetFeaturesInAreaQuery>(GetFeaturesInAreaQuery.ID).subscribe((qr) => {\n let result = new Dictionary<IIdentified[]>();\n this.layers.forEach((l) => {\n let layerName = l.get('name');\n if (qr.ignore.has(layerName) || layerName === MapConstants.DrawingLayerId) return;\n let source = l.getSource();\n if (!!(source as any)['getSource']) source = (source as any)?.getSource();\n let features = this.postboy.execute<FilterFeaturesInAreaExecutor, Feature<Geometry>[]>(\n new FilterFeaturesInAreaExecutor(qr.area, source?.getFeatures() ?? []),\n );\n result.put(\n layerName,\n features.map((e) => ({ id: e.getId(), ...e.get(MapConstants.FeatureInfo) })),\n );\n });\n qr.finish(result);\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Map } from 'ol';\nimport { MapRenderedEvent, SetMapCenterCommand } from '../messages';\nimport { MapPostboyService } from './map-postboy.service';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { MapMoveEndEvent } from '../messages';\nimport { first } from 'rxjs/operators';\n\n@Injectable()\nexport class MapStateService implements IPostboyDependingService {\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeMapRendering();\n this.observeCenter();\n }\n\n private observeMapRendering() {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(first())\n .subscribe((ev) => {\n this.map = ev.map;\n this.map?.on('moveend', () => {\n const zoom = Math.floor(this.map?.getView().getZoom() || -1);\n const extent = this.map?.getView().calculateExtent() || [];\n this.postboy.fire(new MapMoveEndEvent(zoom, extent));\n });\n });\n }\n\n private observeCenter() {\n this.postboy.subscribe<SetMapCenterCommand>(SetMapCenterCommand.ID).subscribe((c) => {\n this.map?.getView().setCenter([c.lng, c.lat]);\n if (c.zoom) this.map?.getView().setZoom(c.zoom);\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { Map } from 'ol';\nimport { MapPostboyService } from './map-postboy.service';\nimport { MapRenderedEvent } from '../messages';\nimport { FitToFeaturesCommand } from '../messages/commands/fit-to-features.command';\nimport { Geometry } from 'ol/geom';\nimport { createEmpty, extend } from 'ol/extent';\n\n@Injectable()\nexport class MapFeatureService implements IPostboyDependingService {\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeMapRender();\n this.observeFitToFeatures();\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n });\n }\n\n private observeFitToFeatures() {\n this.postboy.subscribe<FitToFeaturesCommand>(FitToFeaturesCommand.ID).subscribe((m) => {\n this.fitToGeometries(\n m.features.map((f) => f.getGeometry()!),\n m.zoomAfter,\n );\n });\n }\n\n private fitToGeometries(geometries: Geometry[], zoomAfter: number): void {\n if (!geometries?.length || !this.map) return;\n const extent = createEmpty();\n geometries.forEach((g) => extend(extent, g.getExtent()));\n this.map.getView().fit(extent);\n this.map.getView().setZoom(this.map.getView().getZoom()! + zoomAfter);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { Feature, Map, MapBrowserEvent } from 'ol';\nimport { MapPostboyService } from './map-postboy.service';\nimport { MapRenderedEvent } from '../messages';\nimport { MapClickEvent } from '../messages/events/map-click.event';\nimport { Geometry } from 'ol/geom';\nimport { MapConstants } from '../models/map.constants';\n\n@Injectable()\nexport class MapClickService implements IPostboyDependingService {\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeMapRender();\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n this.map?.on('singleclick', (e) => {\n this.postboy.fire(this.onClick(e));\n });\n });\n }\n\n onClick(ev: MapBrowserEvent<UIEvent>): MapClickEvent {\n const model: MapClickEvent = new MapClickEvent(ev.coordinate, {}, {});\n this.map?.forEachFeatureAtPixel(ev.pixel, (f, l) => {\n this.getFeatureCollectionWithInner([f as Feature<Geometry>])\n .filter((f) => f.getId() != null)\n .forEach((fs: Feature<Geometry>) => {\n let layerName = l.get('name');\n if (!model.entities[layerName]) model.entities[layerName] = [];\n if (!model.features[layerName]) model.features[layerName] = [];\n model.entities[layerName].push({ id: fs.getId()!, ...fs.get(MapConstants.FeatureInfo) });\n model.features[layerName].push(fs);\n });\n });\n return model;\n }\n\n private getFeatureCollectionWithInner(features: Feature<Geometry>[]): Feature<Geometry>[] {\n const result: Feature<Geometry>[] = [];\n features?.forEach((f) => {\n const innerFeatures = f.get('features') as Feature<Geometry>[];\n innerFeatures?.length ? result.push(...innerFeatures) : result.push(f);\n });\n return result;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { MapPostboyService } from '../map-postboy.service';\nimport { StartDrawingCommand } from '../../messages/commands/start-drawing.command';\nimport { CancelDrawingCommand } from '../../messages/commands/cancel-drawing.command';\nimport { first } from 'rxjs/operators';\nimport { DrawingFinishedEvent } from '../../messages/events/drawing-finished.event';\nimport { Subscription } from 'rxjs';\nimport { MapRenderedEvent } from '../../messages';\nimport { GetLayerQuery } from '../../messages/queries/get-layer.query';\nimport { MapConstants } from '../../models/map.constants';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport { Vector as Source } from 'ol/source';\nimport { Draw } from 'ol/interaction';\nimport { Dictionary, FeatureOutputFormat, PolygonModel } from '../../models';\nimport { Map } from 'ol';\nimport { DrawEvent } from 'ol/interaction/Draw';\nimport { Geometry } from 'ol/geom';\nimport { GeoJSON, WKT } from 'ol/format';\nimport { DrawSelectionAreaCommand } from '../../messages/commands/draw-selection-area.command';\nimport { GetFeaturesInAreaQuery } from '../../messages/queries/get-features-in-area.query';\nimport { IIdentified } from '../../models/i-identified';\nimport { GenerateDrawExecutor } from '../../messages/executors/generate-draw.executor';\n\n@Injectable()\nexport class DrawingService implements IPostboyDependingService {\n private drawInteraction?: Draw;\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeDrawing();\n this.observeSelectArea();\n this.observeMapRender();\n }\n\n private observeSelectArea() {\n this.postboy.subscribe<DrawSelectionAreaCommand>(DrawSelectionAreaCommand.ID).subscribe((ev) => {\n const drawingCommand = new StartDrawingCommand(ev.type, ev.style);\n drawingCommand.result.subscribe((r) => {\n if (!r) {\n ev.finish(new Dictionary<IIdentified[]>());\n return;\n }\n const area = PolygonModel.fromGeoJson(1, r).feature.getGeometry()!;\n const getFeaturesCommand = new GetFeaturesInAreaQuery(area, ev.ignore);\n getFeaturesCommand.result.subscribe((result) => ev.finish(result));\n this.postboy.fire(getFeaturesCommand);\n });\n this.postboy.fire(drawingCommand);\n });\n }\n\n private observeDrawing() {\n this.postboy.subscribe<StartDrawingCommand>(StartDrawingCommand.ID).subscribe((ev) => {\n this.draw((l) => {\n if (!l || !this.map) {\n this.clearInteraction(l);\n return;\n }\n const cancelSub = this.observeCancelation(ev, l);\n this.drawInteraction = this.postboy.execute(new GenerateDrawExecutor(l, ev.style, ev.type))!;\n this.map?.addInteraction(this.drawInteraction);\n this.drawInteraction.on('drawend', (evt: DrawEvent) => {\n cancelSub.unsubscribe();\n this.onEnd(evt, ev, l);\n });\n });\n });\n }\n\n private onEnd(evt: DrawEvent, command: StartDrawingCommand, layer: Layer<VectorSource<Geometry>>): void {\n command.finish(\n command.format === FeatureOutputFormat.GeoJson\n ? new GeoJSON().writeFeature(evt.feature)\n : new WKT().writeFeature(evt.feature),\n );\n this.clearInteraction(layer);\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n });\n }\n\n private draw(action: (layer: Layer<VectorSource<any>> | null) => void): void {\n const query = new GetLayerQuery(MapConstants.DrawingLayerId);\n query.result.subscribe((l) => action(l));\n this.postboy.fire(query);\n }\n\n private observeCancelation(ev: StartDrawingCommand, layer: Layer<VectorSource<any>> | null): Subscription {\n return this.postboy\n .subscribe<CancelDrawingCommand>(CancelDrawingCommand.ID)\n .pipe(first())\n .subscribe(() => {\n ev.finish(null);\n this.clearInteraction(layer);\n });\n }\n\n private clearInteraction(layer: Layer<Source<Geometry>> | null): void {\n if (!!this.drawInteraction) {\n this.map?.removeInteraction(this.drawInteraction);\n layer?.setSource(new Source({}));\n }\n setTimeout(() => this.postboy.fire(new DrawingFinishedEvent()), 300);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { Modify, Translate } from 'ol/interaction';\nimport { Collection, Feature, Map } from 'ol';\nimport { MapPostboyService } from '../map-postboy.service';\nimport { MapRenderedEvent } from '../../messages';\nimport { FeatureOutputFormat } from '../../models';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport { Geometry } from 'ol/geom';\nimport { GeoJSON, WKT } from 'ol/format';\nimport { GetLayerQuery } from '../../messages/queries/get-layer.query';\nimport { MapConstants } from '../../models/map.constants';\nimport { Subscription } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport { Vector as Source } from 'ol/source';\nimport { CancelFeatureModificationCommand } from '../../messages/commands/cancel-feature-modification.command';\nimport { ModifyFeatureCommand } from '../../messages/commands/modify-feature.command';\n\n@Injectable()\nexport class FeatureModificationService implements IPostboyDependingService {\n private modify?: Modify;\n private translate?: Translate;\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeModification();\n this.observeMapRender();\n }\n\n private observeModification() {\n this.postboy.subscribe<ModifyFeatureCommand>(ModifyFeatureCommand.ID).subscribe((ev) => {\n this.defineLayer((l) => {\n if (!l || !this.map) {\n this.clearInteraction(l);\n return;\n }\n this.observeCancelation(ev, l);\n this.initFeature(l, ev.model.feature);\n this.addModify(ev);\n this.addDragging(ev);\n });\n });\n }\n\n private initFeature(layer: Layer<VectorSource<Geometry>>, feature: Feature<Geometry>): void {\n layer.getSource()?.clear();\n layer.getSource()?.addFeature(feature);\n }\n\n private addModify(command: ModifyFeatureCommand): void {\n this.modify = new Modify({\n features: new Collection([command.model.feature]),\n style: command.style,\n });\n this.modify.on('modifyend', () => {\n this.onModified(command);\n command.model.feature.changed();\n });\n this.map?.addInteraction(this.modify);\n }\n\n private addDragging(command: ModifyFeatureCommand): void {\n this.translate = new Translate({\n features: new Collection([command.model.feature]),\n condition: (ev) => {\n const clone = command.model.feature.clone();\n clone.getGeometry()?.scale(0.999);\n return clone.getGeometry()!.intersectsCoordinate(ev.coordinate);\n },\n });\n this.translate.on('translateend', () => this.onModified(command));\n this.map?.addInteraction(this.translate);\n }\n\n private onModified(command: ModifyFeatureCommand): void {\n command.next(\n command.format === FeatureOutputFormat.GeoJson\n ? new GeoJSON().writeFeature(command.model.feature)\n : new WKT().writeFeature(command.model.feature),\n );\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n });\n }\n\n private defineLayer(action: (layer: Layer<VectorSource<any>> | null) => void): void {\n const query = new GetLayerQuery(MapConstants.DrawingLayerId);\n query.result.subscribe((l) => action(l));\n this.postboy.fire(query);\n }\n\n private observeCancelation(ev: ModifyFeatureCommand, layer: Layer<VectorSource<any>> | null): Subscription {\n return this.postboy\n .subscribe(CancelFeatureModificationCommand.ID)\n .pipe(first())\n .subscribe(() => {\n ev.finish(null);\n this.clearInteraction(layer);\n });\n }\n\n private clearInteraction(layer: Layer<Source<Geometry>> | null): void {\n if (this.modify) this.map?.removeInteraction(this.modify);\n if (this.translate) this.map?.removeInteraction(this.translate);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Map } from 'ol';\nimport { MapPostboyService } from '../map-postboy.service';\nimport { AddControlCommand, MapRenderedEvent, RemoveControlCommand } from '../../messages';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { first } from 'rxjs/operators';\n\n@Injectable()\nexport class ControlsService implements IPostboyDependingService {\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeMapRender();\n }\n\n private observeMapRender() {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(first())\n .subscribe((m) => {\n this.map = m.map;\n this.observeAdding();\n this.observeRemoving();\n });\n }\n\n private observeAdding() {\n this.postboy.subscribe<AddControlCommand>(AddControlCommand.ID).subscribe((c) => this.map?.addControl(c.item));\n }\n\n private observeRemoving() {\n this.postboy\n .subscribe<RemoveControlCommand>(RemoveControlCommand.ID)\n .subscribe((c) => this.map?.removeControl(c.item));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MapPostboyService } from './map-postboy.service';\nimport { MapRenderedEvent } from '../messages';\nimport { AddLayerCommand } from '../messages/commands/add-layer.command';\nimport { PlaceLayerFeaturesCommand } from '../messages/commands/place-layer-features.command';\nimport { RemoveLayerCommand } from '../messages/commands/remove-layer.command';\nimport { AddTileCommand } from '../messages/commands/add-tile.command';\nimport { RemoveTileCommand } from '../messages/commands/remove-tile.command';\nimport { PostboyAbstractRegistrator } from '@artstesh/postboy';\nimport { MapManagementService } from './map-management.service';\nimport { MapStateService } from './map-state.service';\nimport { MapClickService } from './map-click.service';\nimport { MapClickEvent } from '../messages/events/map-click.event';\nimport { CloseTooltipCommand } from '../messages/commands/close-tooltip.command';\nimport { MapFeatureService } from './map-feature.service';\nimport { FitToFeaturesCommand } from '../messages/commands/fit-to-features.command';\nimport { MapMoveEndEvent } from '../messages/events/map-move-end.event';\nimport { CancelDrawingCommand } from '../messages/commands/cancel-drawing.command';\nimport { StartDrawingCommand } from '../messages/commands/start-drawing.command';\nimport { DrawingService } from './drawing/drawing.service';\nimport { GetLayerQuery } from '../messages/queries/get-layer.query';\nimport { DrawingFinishedEvent } from '../messages/events/drawing-finished.event';\nimport { DrawingGenerationService } from './drawing/drawing-generation.service';\nimport { FeatureService } from './feature.service';\nimport { GetFeaturesInAreaQuery } from '../messages/queries/get-features-in-area.query';\nimport { DrawSelectionAreaCommand } from '../messages/commands/draw-selection-area.command';\nimport { FilterFeaturesInAreaExecutor } from '../messages/executors/filter-features-in-area.executor';\nimport { GenerateDrawExecutor } from '../messages/executors/generate-draw.executor';\nimport { FeatureModificationService } from './drawing/feature-modification.service';\nimport { CancelFeatureModificationCommand } from '../messages/commands/cancel-feature-modification.command';\nimport { ModifyFeatureCommand } from '../messages/commands/modify-feature.command';\nimport { GenerateZoomControlExecutor } from '../messages/executors/generate-zoom-control.executor';\nimport { ZoomControlFactory } from '../map-plate/controls/map-control-zoom/zoom-control.factory';\nimport { RemoveControlCommand } from '../messages/commands/remove-control.command';\nimport { AddControlCommand } from '../messages/commands/add-control.command';\nimport { ControlsService } from './controls/controls.service';\nimport { SetMapCenterCommand } from '../messages/commands/set-map-center.command';\n\n@Injectable()\nexport class MessageRegistratorService extends PostboyAbstractRegistrator {\n constructor(\n service: MapPostboyService,\n management: MapManagementService,\n state: MapStateService,\n mapFeature: MapFeatureService,\n interaction: MapClickService,\n drawing: DrawingService,\n featureModification: FeatureModificationService,\n controls: ControlsService,\n ) {\n super(service);\n this.registerServices([management, state, interaction, mapFeature, drawing, featureModification, controls]);\n }\n\n protected _up(): void {\n this.registerReplay(MapRenderedEvent.ID);\n this.registerReplay(PlaceLayerFeaturesCommand.ID);\n this.registerReplay(RemoveControlCommand.ID);\n this.registerReplay(AddControlCommand.ID);\n this.registerReplay(SetMapCenterCommand.ID);\n this.registerSubject(AddLayerCommand.ID);\n this.registerSubject(RemoveLayerCommand.ID);\n this.registerSubject(AddTileCommand.ID);\n this.registerSubject(RemoveTileCommand.ID);\n this.registerSubject(MapClickEvent.ID);\n this.registerSubject(CloseTooltipCommand.ID);\n this.registerSubject(FitToFeaturesCommand.ID);\n this.registerSubject(MapMoveEndEvent.ID);\n this.registerSubject(CancelDrawingCommand.ID);\n this.registerSubject(StartDrawingCommand.ID);\n this.registerSubject(GetLayerQuery.ID);\n this.registerSubject(DrawingFinishedEvent.ID);\n this.registerSubject(GetFeaturesInAreaQuery.ID);\n this.registerSubject(DrawSelectionAreaCommand.ID);\n this.registerSubject(CancelFeatureModificationCommand.ID);\n this.registerSubject(ModifyFeatureCommand.ID);\n this.setExecutors();\n }\n\n private setExecutors() {\n this.registerExecutor(FilterFeaturesInAreaExecutor.ID, (e: FilterFeaturesInAreaExecutor) =>\n FeatureService.filterFeaturesInArea(e),\n );\n this.registerExecutor(GenerateDrawExecutor.ID, (e: GenerateDrawExecutor) => DrawingGenerationService.getDraw(e));\n this.registerExecutor(GenerateZoomControlExecutor.ID, (e: GenerateZoomControlExecutor) =>\n ZoomControlFactory.build(e.settings),\n );\n }\n}\n","export class TileLayerSettings {\n maxZoom: number = 19;\n minZoom: number = 0;\n opacity: number = 0.6;\n url: string = '';\n projection: string = 'EPSG:3857';\n\n public static copy(model: TileLayerSettings): TileLayerSettings {\n const result = new TileLayerSettings();\n result.maxZoom = model.maxZoom;\n result.minZoom = model.minZoom;\n result.projection = model.projection;\n result.opacity = model.opacity;\n result.url = model.url;\n return result;\n }\n\n setUrl(url: string): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, url });\n }\n\n setMaxZoom(maxZoom: number): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, maxZoom });\n }\n\n setMinZoom(minZoom: number): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, minZoom });\n }\n\n setOpacity(opacity: number): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, opacity });\n }\n\n setProjection(projection: string): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, projection });\n }\n\n public isSame(model: TileLayerSettings): boolean {\n if (this.maxZoom !== model.maxZoom) return false;\n if (this.minZoom !== model.minZoom) return false;\n if (this.url !== model.url) return false;\n if (this.projection !== model.projection) return false;\n if (this.opacity !== model.opacity) return false;\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { XYZ } from 'ol/source';\nimport { TileLayerSettings } from './tile-layer.settings';\nimport { TileCoord } from 'ol/tilecoord';\nimport { get } from 'ol/proj';\nimport TileLayer from 'ol/layer/Tile';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TileLayerFactory {\n public build(settings: TileLayerSettings): TileLayer<XYZ> {\n const source = new XYZ({\n tileSize: 256,\n maxZoom: settings.maxZoom || 14,\n minZoom: settings.minZoom || 1,\n projection: get(settings.projection)!,\n tileUrlFunction: this.getTileFunc(settings),\n crossOrigin: 'Anonymous',\n });\n return new TileLayer({ source, opacity: settings.opacity });\n }\n\n private getTileFunc(settings: TileLayerSettings): (tileCoord: TileCoord) => string {\n return (tileCoord) => {\n const zoom = tileCoord[0];\n const x = tileCoord[1];\n const y = tileCoord[2];\n const normalizedCoord = this.getNormalizedCoord({ x: x, y: y }, zoom);\n const bound = 1 << zoom;\n return settings.url\n .replace('{x}', String(normalizedCoord?.x || x))\n .replace('{z}', String(zoom))\n .replace('{y}', String(bound - (normalizedCoord?.y || y) - 1));\n };\n }\n\n private getNormalizedCoord(coord: { x: number; y: number }, zoom: number) {\n const y = coord.y;\n let x = coord.x;\n const tileRange = 1 << zoom;\n if (y < 0 || y >= tileRange) return null;\n if (x < 0 || x >= tileRange) x = ((x % tileRange) + tileRange) % tileRange;\n return { x: x, y: y };\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { XYZ } from 'ol/source';\nimport TileLayer from 'ol/layer/Tile';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { TileLayerFactory } from './tile-layer.factory';\nimport { MapRenderedEvent } from '../../../messages';\nimport { filter, first } from 'rxjs/operators';\nimport { TileLayerSettings } from './tile-layer.settings';\nimport { AddTileCommand } from '../../../messages/commands/add-tile.command';\nimport { RemoveTileCommand } from '../../../messages/commands/remove-tile.command';\n\n@Component({\n selector: 'art-tile-layer',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TileLayerComponent extends DestructibleComponent {\n public layer?: TileLayer<XYZ>;\n\n constructor(private postboy: MapPostboyService, private factory: TileLayerFactory) {\n super();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe((m) => this.initLayer());\n }\n\n _settings: TileLayerSettings = new TileLayerSettings();\n\n @Input() set settings(value: TileLayerSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.initLayer();\n }\n\n onDestroy = () => this.removeLayer();\n\n private initLayer() {\n this.removeLayer();\n this.layer = this.factory.build(this._settings);\n this.postboy.fire(new AddTileCommand(this.layer));\n }\n\n private removeLayer() {\n if (this.layer) this.postboy.fire(new RemoveTileCommand(this.layer));\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport TileLayer from 'ol/layer/Tile';\nimport TileSource from 'ol/source/Tile';\nimport OSM from 'ol/source/OSM';\nimport { Map } from 'ol';\n\n@Component({\n selector: 'art-osm-tile-layer',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OsmTileLayerComponent extends DestructibleComponent implements OnInit {\n public layer?: TileLayer<TileSource>;\n\n constructor() {\n super();\n }\n\n private _url: string = '';\n\n @Input() set url(value: string | undefined) {\n if (!value || this._url === value) return;\n this._url = value;\n this.initLayer();\n }\n\n private _map?: Map;\n\n @Input() set map(value: Map | undefined) {\n if (!value || this._map === value) return;\n this._map = value;\n this.initLayer();\n }\n\n ngOnInit(): void {}\n\n ngOnDestroy(): void {\n if (this.layer) {\n this._map?.removeLayer(this.layer);\n }\n // @ts-ignore\n this.layer?.setMap(null);\n }\n\n private initLayer(): void {\n if (!this._url || !this._map) return;\n if (this.layer) this._map.removeLayer(this.layer);\n this.layer = new TileLayer({\n source: new OSM({\n url: this._url,\n }),\n });\n this.layer.set('name', 'osm-tile-layer');\n this._map.addLayer(this.layer);\n }\n}\n","import Style, { StyleFunction } from 'ol/style/Style';\nimport { IdGenerator } from '../../../common/id.generator';\n\n/**\n * A layer that is responsible for showing and styling main features on the map, such as markers and polygons\n */\nexport class FeatureLayerSettings {\n /**\n * The identifier of the field, it is autogenerated by default, but can be set manually\n */\n name: string = IdGenerator.get();\n /**\n * The priority of showing - layers with higher zIndex cover others in case of collisions\n */\n zIndex: number = 1;\n /**\n * The maximum zoom at which the layer is visible. 19 by default\n */\n maxZoom: number = 19;\n /**\n * The minimum zoom at which the layer is visible. 0 by default\n */\n minZoom: number = 0;\n /**\n * The styling definition of layer's features. The easiest way is to use {@link PolygonStyleHelper},{@link MarkerStyleHelper}\n */\n style?: Style | StyleFunction;\n\n /**\n * Creates a clone of the existing settings\n * @param model\n */\n public static copy(model: FeatureLayerSettings): FeatureLayerSettings {\n const result = new FeatureLayerSettings();\n result.name = model.name;\n result.maxZoom = model.maxZoom;\n result.minZoom = model.minZoom;\n result.zIndex = model.zIndex;\n result.style = model.style;\n return result;\n }\n\n /**\n Setter for {@link FeatureLayerSettings.zIndex}\n * @param zIndex\n */\n setZIndex(zIndex: number): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, zIndex });\n }\n\n /**\n * Setter for {@link FeatureLayerSettings.name}\n * @param name\n */\n setName(name: string): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, name });\n }\n\n /**\n * Setter for {@link FeatureLayerSettings.maxZoom}\n * @param maxZoom\n */\n setMaxZoom(maxZoom: number): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, maxZoom });\n }\n\n /**\n * Setter for {@link FeatureLayerSettings.minZoom}\n * @param minZoom\n */\n setMinZoom(minZoom: number): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, minZoom });\n }\n\n /**\n * Setter for {@link FeatureLayerSettings.style}\n * @param style\n */\n setStyle(style: Style | StyleFunction): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, style });\n }\n\n /**\n * Checks if the model has the same content\n * @param model - the object to compare\n */\n public isSame(model: FeatureLayerSettings): boolean {\n if (this.maxZoom !== model.maxZoom) return false;\n if (this.minZoom !== model.minZoom) return false;\n if (this.zIndex !== model.zIndex) return false;\n if (this.name !== model.name) return false;\n if (this.style !== model.style) return false;\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FeatureLayerSettings } from './feature-layer.settings';\nimport { Vector as Source } from 'ol/source';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FeatureLayerFactory {\n public build(settings: FeatureLayerSettings): Layer<VectorSource<any>> {\n const source = new Source({});\n const layer = new Layer({\n source: source,\n maxZoom: settings.maxZoom,\n minZoom: settings.minZoom,\n zIndex: settings.zIndex,\n });\n if (settings.style) layer.setStyle(settings.style);\n layer.set('name', settings.name);\n return layer;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MapRenderedEvent } from '../../../messages';\nimport VectorSource from 'ol/source/Vector';\nimport { Vector as Layer } from 'ol/layer';\nimport { FeatureLayerSettings } from './feature-layer.settings';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { AddLayerCommand } from '../../../messages/commands/add-layer.command';\nimport { filter, first } from 'rxjs/operators';\nimport { RemoveLayerCommand } from '../../../messages/commands/remove-layer.command';\nimport { FeatureLayerFactory } from './feature-layer.factory';\n\n@Component({\n selector: 'art-feature-layer',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FeatureLayerComponent extends DestructibleComponent implements OnInit {\n public layer: Layer<VectorSource<any>> | null = null;\n _settings: FeatureLayerSettings = new FeatureLayerSettings();\n\n constructor(private postboy: MapPostboyService, private factory: FeatureLayerFactory) {\n super();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe((m) => this.initLayer());\n }\n\n @Input() set settings(value: FeatureLayerSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.initLayer();\n }\n\n onDestroy = () => this.removeLayer();\n\n private initLayer() {\n this.removeLayer();\n this.layer = this.factory.build(this._settings);\n this.postboy.fire(new AddLayerCommand(this.layer));\n }\n\n private removeLayer() {\n if (this.layer) this.postboy.fire(new RemoveLayerCommand(this.layer));\n }\n}\n","import { IdGenerator } from '../../../common/id.generator';\nimport Style, { StyleFunction } from 'ol/style/Style';\nimport { IIdentified } from '../../../models/i-identified';\n\nexport class ClusterLayerSettings {\n name: string = IdGenerator.get();\n zIndex: number = 1;\n maxZoom: number = 19;\n minZoom: number = 0;\n distance: number = 20;\n bbox: boolean = false;\n clusterCancel: number = 14;\n style?: (features: IIdentified[]) => Style;\n\n public static copy(model: ClusterLayerSettings): ClusterLayerSettings {\n const result = new ClusterLayerSettings();\n result.name = model.name;\n result.maxZoom = model.maxZoom;\n result.minZoom = model.minZoom;\n result.zIndex = model.zIndex;\n result.bbox = model.bbox;\n result.clusterCancel = model.clusterCancel;\n result.distance = model.distance;\n result.style = model.style;\n return result;\n }\n\n setZIndex(zIndex: number): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, zIndex });\n }\n\n setDistance(distance: number): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, distance });\n }\n\n setName(name: string): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, name });\n }\n\n setMaxZoom(maxZoom: number): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, maxZoom });\n }\n\n setMinZoom(minZoom: number): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, minZoom });\n }\n\n setClusterCancel(clusterCancel: number): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, clusterCancel });\n }\n\n setBbox(bbox: boolean): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, bbox });\n }\n\n setStyle(style: (features: IIdentified[]) => Style | StyleFunction): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, style });\n }\n\n public isSame(model: ClusterLayerSettings): boolean {\n if (this.maxZoom !== model.maxZoom) return false;\n if (this.minZoom !== model.minZoom) return false;\n if (this.zIndex !== model.zIndex) return false;\n if (this.name !== model.name) return false;\n if (this.distance !== model.distance) return false;\n if (this.clusterCancel !== model.clusterCancel) return false;\n if (this.bbox !== model.bbox) return false;\n if (this.style !== model.style) return false;\n return true;\n }\n}\n","import { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MapClickEvent, MapRenderedEvent } from '../../../messages';\nimport { Vector as Layer } from 'ol/layer';\nimport Cluster from 'ol/source/Cluster';\nimport { ClusterLayerSettings } from './cluster-layer.settings';\nimport { FitToFeaturesCommand } from '../../../messages/commands/fit-to-features.command';\nimport { MapMoveEndEvent } from '../../../messages/events/map-move-end.event';\nimport { auditTime } from 'rxjs/operators';\nimport { combineLatest } from 'rxjs';\nimport { Map } from 'ol';\n\nexport class ClusterLayerManager {\n constructor(\n private settings: ClusterLayerSettings,\n public readonly layer: Layer<Cluster>,\n private postboy: MapPostboyService,\n ) {\n this.observeClick();\n this.observeMapMovement();\n }\n\n private observeMapMovement() {\n combineLatest([\n this.postboy.subscribe<MapMoveEndEvent>(MapMoveEndEvent.ID).pipe(auditTime(250)),\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID),\n ]).subscribe(([movement, renderEvent]) => {\n this.checkClusterNecessity(renderEvent.map);\n });\n }\n\n private observeClick() {\n this.postboy.subscribe<MapClickEvent>(MapClickEvent.ID).subscribe((m) => {\n if ((m.features[this.settings.name]?.length ?? 0) > 1) {\n this.postboy.fire(new FitToFeaturesCommand(m.features[this.settings.name], -1));\n }\n });\n }\n\n private checkClusterNecessity(map: Map): void {\n let zoom = map.getView().getZoom() ?? 0;\n const distance = zoom > this.settings.clusterCancel ? 0 : this.settings.distance;\n this.layer?.getSource()?.setDistance(distance);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ClusterLayerSettings } from './cluster-layer.settings';\nimport { Vector as Source } from 'ol/source';\nimport { Vector as Layer } from 'ol/layer';\nimport { bbox } from 'ol/loadingstrategy';\nimport Polygon, { fromExtent } from 'ol/geom/Polygon';\nimport Cluster from 'ol/source/Cluster';\nimport { Geometry, Point } from 'ol/geom';\nimport { ClusterLayerManager } from './cluster-layer.manager';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { StyleFunction } from 'ol/style/Style';\nimport { Feature } from 'ol';\nimport { MapConstants } from '../../../models/map.constants';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ClusterLayerFactory {\n public build(settings: ClusterLayerSettings, postboy: MapPostboyService): ClusterLayerManager {\n const source = new Source({\n strategy: settings.bbox ? bbox : undefined,\n });\n const cluster = new Cluster({\n distance: settings.distance,\n source: source,\n geometryFunction: (feature) => {\n const geom = feature.getGeometry();\n if (geom?.getType() == 'Point') {\n return geom as Point;\n } else if (geom?.getType() == 'Polygon') {\n return (geom as Polygon)?.getInteriorPoint();\n } else if (geom?.getType() == 'MultiPolygon') {\n return fromExtent(geom.getExtent())?.getInteriorPoint();\n }\n return undefined as any;\n },\n });\n const layer = new Layer({\n source: cluster,\n maxZoom: settings.maxZoom || undefined,\n minZoom: settings.minZoom || undefined,\n zIndex: settings.zIndex || 0,\n });\n layer.setStyle(this.styleFunc(settings));\n layer.set('name', settings.name);\n return new ClusterLayerManager(settings, layer, postboy);\n }\n\n styleFunc(settings: ClusterLayerSettings): StyleFunction {\n return (feature) => {\n const features = feature.get('features') as Feature<Geometry>[];\n if (!settings.style) return undefined;\n return settings.style(features.map((f) => ({ id: f.getId()!, ...f.get(MapConstants.FeatureInfo) })));\n };\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MapRenderedEvent } from '../../../messages';\nimport { filter, first } from 'rxjs/operators';\nimport { AddLayerCommand } from '../../../messages/commands/add-layer.command';\nimport { RemoveLayerCommand } from '../../../messages/commands/remove-layer.command';\nimport { ClusterLayerManager } from './cluster-layer.manager';\nimport { ClusterLayerSettings } from './cluster-layer.settings';\nimport { ClusterLayerFactory } from './cluster-layer-factory.service';\n\n@Component({\n selector: 'art-cluster-layer',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ClusterLayerComponent extends DestructibleComponent implements OnInit {\n public manager: ClusterLayerManager | null = null;\n _settings: ClusterLayerSettings = new ClusterLayerSettings();\n\n constructor(private postboy: MapPostboyService, private factory: ClusterLayerFactory) {\n super();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe((m) => this.initLayer());\n }\n\n @Input() set settings(value: ClusterLayerSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.initLayer();\n }\n\n onDestroy = () => this.removeLayer();\n\n private initLayer() {\n this.removeLayer();\n this.manager = this.factory.build(this._settings, this.postboy);\n this.postboy.fire(new AddLayerCommand(this.manager.layer));\n }\n\n private removeLayer() {\n if (this.manager?.layer) this.postboy.fire(new RemoveLayerCommand(this.manager.layer));\n }\n}\n","import { Injectable } from '@angular/core';\nimport Map from 'ol/Map';\nimport { MapSettings } from '../models';\nimport View from 'ol/View';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MapPlateFactory {\n public build(settings: MapSettings): Map {\n return new Map({\n controls: [],\n view: new View({\n center: settings?.center || [0, 0],\n zoom: settings?.zoom || 4,\n minZoom: settings?.minZoom || 0,\n maxZoom: settings?.maxZoom || 19,\n }),\n layers: [],\n });\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, OnInit } from '@angular/core';\nimport { MapLyrsLabel, MapSettings } from '../models';\nimport Map from 'ol/Map';\nimport { useGeographic } from 'ol/proj';\nimport { DestructibleComponent } from '../common/destructible.component';\nimport { MessageRegistratorService } from '../services/message-registrator.service';\nimport { MapPostboyService } from '../services/map-postboy.service';\nimport { MapRenderedEvent } from '../messages';\nimport { MapStateService } from '../services/map-state.service';\nimport { MapManagementService } from '../services/map-management.service';\nimport { MapPlateFactory } from './map-plate.factory.service';\nimport { MapClickService } from '../services/map-click.service';\nimport { MapFeatureService } from '../services/map-feature.service';\nimport { FeatureLayerSettings } from './layers';\nimport { MapConstants } from '../models/map.constants';\nimport { DrawingService } from '../services/drawing/drawing.service';\nimport { DrawingGenerationService } from '../services/drawing/drawing-generation.service';\nimport { FeatureService } from '../services/feature.service';\nimport { FeatureModificationService } from '../services/drawing/feature-modification.service';\nimport { ControlsService } from '../services/controls/controls.service';\n\n@Component({\n selector: 'art-map-plate',\n templateUrl: './map-plate.component.html',\n styleUrls: ['./map-plate.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n MessageRegistratorService,\n MapStateService,\n MapManagementService,\n MapClickService,\n MapFeatureService,\n DrawingService,\n DrawingGenerationService,\n FeatureService,\n FeatureModificationService,\n ControlsService,\n ],\n})\nexport class MapPlateComponent extends DestructibleComponent implements OnInit {\n map!: Map;\n osmUrl = '';\n\n constructor(\n private elementRef: ElementRef,\n private postboy: MapPostboyService,\n private mapFactory: MapPlateFactory,\n private registrator: MessageRegistratorService,\n private detector: ChangeDetectorRef,\n ) {\n super();\n registrator.up();\n }\n\n _settings: MapSettings = new MapSettings();\n drawingLayerSettings = new FeatureLayerSettings().setName(MapConstants.DrawingLayerId);\n\n @Input() set settings(value: MapSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.setOsm();\n }\n\n ngOnInit(): void {\n useGeographic();\n this.map = this.mapFactory.build(this._settings);\n this.map.setTarget(this.elementRef.nativeElement);\n this.detector.detectChanges();\n this.map.once('postrender', () => {\n this.map.updateSize();\n this.postboy.fire(new MapRenderedEvent(this.map));\n });\n this.setOsm();\n }\n\n private setOsm(): void {\n if (!this.map) return;\n this.osmUrl = `https://mt{0-3}.google.com/vt/lyrs=${MapLyrsLabel.get(this._settings.lyrs)}&hl=${\n this._settings.language\n }&x={x}&y={y}&z={z}`;\n this.detector.detectChanges();\n this.map.updateSize();\n }\n\n onDestroy = () => {\n this.registrator.down();\n };\n}\n","<ng-content></ng-content>\r\n<art-osm-tile-layer *ngIf=\"osmUrl && map\" [map]=\"map\" [url]=\"osmUrl\"></art-osm-tile-layer>\r\n<art-feature-layer *ngIf=\"map\" [settings]=\"drawingLayerSettings\"></art-feature-layer>\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MarkerModel } from '../../../models/marker-model';\nimport { PlaceLayerFeaturesCommand } from '../../../messages/commands/place-layer-features.command';\nimport { MapRenderedEvent } from '../../../messages';\nimport { filter, first } from 'rxjs/operators';\n\n@Component({\n selector: 'art-markers',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MarkersComponent extends DestructibleComponent implements OnInit {\n @Input() layerName = '';\n\n constructor(private postboy: MapPostboyService) {\n super();\n }\n\n _markers: MarkerModel[] = [];\n\n @Input() set markers(value: MarkerModel[]) {\n this._markers = value ?? [];\n this.putMarkers();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe(() => this.putMarkers());\n }\n\n private putMarkers(): void {\n if (!this._markers) return;\n this.postboy.fire(\n new PlaceLayerFeaturesCommand(\n this.layerName,\n this._markers.map((m) => m.feature),\n ),\n );\n }\n}\n","import { MapClickEvent } from '../../../messages';\nimport { IdGenerator } from '../../../common/id.generator';\n\nexport class TooltipSettings {\n public readonly id: string;\n containerClass: string = 'custom-tooltip-class';\n show: (ev: MapClickEvent) => boolean = (e) => true;\n\n public constructor(id?: string) {\n this.id = id ?? IdGenerator.get();\n }\n\n public static copy(model: TooltipSettings): TooltipSettings {\n const result = new TooltipSettings(model.id);\n result.show = model.show;\n result.containerClass = model.containerClass;\n return result;\n }\n\n setShow(show: (ev: MapClickEvent) => boolean): TooltipSettings {\n return TooltipSettings.copy({ ...this, show });\n }\n\n setClass(containerClass: string): TooltipSettings {\n return TooltipSettings.copy({ ...this, containerClass });\n }\n\n public isSame(model: TooltipSettings): boolean {\n if (this.show !== model.show) return false;\n if (this.containerClass !== model.containerClass) return false;\n if (this.id !== model.id) return false;\n return true;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { TooltipSettings } from './tooltip.settings';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MapClickEvent, MapRenderedEvent } from '../../../messages';\nimport Map from 'ol/Map';\nimport { CloseTooltipCommand } from '../../../messages/commands/close-tooltip.command';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport Overlay, { Options as OverlayOptions } from 'ol/Overlay';\n\n@Component({\n selector: 'art-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TooltipComponent extends DestructibleComponent implements OnInit {\n @ViewChild('tip') container!: ElementRef<HTMLElement>;\n _settings: TooltipSettings = new TooltipSettings();\n private map?: Map;\n overlay?: Overlay;\n show = false;\n\n @Input() set settings(value: TooltipSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.detector.detectChanges();\n }\n constructor(private postboy: MapPostboyService, private detector: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit(): void {\n this.subs.push(this.observeMapRender());\n this.subs.push(this.observeMapClick());\n this.subs.push(this.observeClose());\n }\n\n private observeMapClick(): Subscription {\n return this.postboy.subscribe<MapClickEvent>(MapClickEvent.ID).subscribe((ev) => {\n this._settings.show(ev) ? this.addOverlay(ev.coordinates) : this.removeOverlay();\n });\n }\n\n private observeClose(): Subscription {\n return this.postboy\n .subscribe<CloseTooltipCommand>(CloseTooltipCommand.ID)\n .pipe(filter((ev) => ev.tooltipId === this._settings.id))\n .subscribe(() => this.removeOverlay());\n }\n\n private observeMapRender() {\n return this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n });\n }\n\n private removeOverlay = () => {\n !!this.overlay && this.map?.removeOverlay(this.overlay);\n this.show = false;\n };\n\n addOverlay(coordinates: number[]): void {\n this.removeOverlay();\n this.overlay = new Overlay(this.options(coordinates));\n this.map?.addOverlay(this.overlay);\n this.show = true;\n this.detector.detectChanges();\n }\n\n options = (coordinates: number[]): OverlayOptions => {\n return {\n element: this.container?.nativeElement,\n autoPan: false,\n autoPanAnimation: { duration: 0 },\n position: coordinates,\n };\n };\n}\n","<div #tip [class]=\"['tooltip-wrapper', _settings.containerClass]\" [hidden]=\"!show\">\r\n <ng-content></ng-content>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MapRenderedEvent } from '../../../messages';\nimport { filter, first } from 'rxjs/operators';\nimport { PlaceLayerFeaturesCommand } from '../../../messages/commands/place-layer-features.command';\nimport { PolygonModel } from '../../../models/polygon.model';\n\n@Component({\n selector: 'art-polygons',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PolygonsComponent extends DestructibleComponent implements OnInit {\n @Input() layerName = '';\n\n constructor(private postboy: MapPostboyService) {\n super();\n }\n\n _polygons: PolygonModel[] = [];\n\n @Input() set polygons(value: PolygonModel[]) {\n this._polygons = value ?? [];\n this.putPolygons();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe(() => this.putPolygons());\n }\n\n private putPolygons(): void {\n if (!this._polygons) return;\n this.postboy.fire(\n new PlaceLayerFeaturesCommand(\n this.layerName,\n this._polygons.map((m) => m.feature),\n ),\n );\n }\n}\n","export class ZoomControlSettings {\n controlClass: string = 'ol-zoom';\n zoomInClass: string = 'ol-zoom-in';\n zoomOutClass: string = 'ol-zoom-out';\n zoomInLabel: string = 'Zoom In';\n zoomOutLabel: string = 'Zoom Out';\n\n public static copy(model: ZoomControlSettings): ZoomControlSettings {\n const result = new ZoomControlSettings();\n result.controlClass = model.controlClass;\n result.zoomInClass = model.zoomInClass;\n result.zoomOutClass = model.zoomOutClass;\n result.zoomInLabel = model.zoomInLabel;\n result.zoomOutLabel = model.zoomOutLabel;\n return result;\n }\n\n public isSame(model: ZoomControlSettings): boolean {\n if (this.zoomInClass !== model.zoomInClass) return false;\n if (this.zoomOutClass !== model.zoomOutClass) return false;\n if (this.zoomInLabel !== model.zoomInLabel) return false;\n if (this.controlClass !== model.controlClass) return false;\n if (this.zoomOutLabel !== model.zoomOutLabel) return false;\n return true;\n }\n\n setZoomInLabel(zoomInLabel: string): ZoomControlSettings {\n return ZoomControlSettings.copy({ ...this, zoomInLabel });\n }\n\n setZoomOutClass(zoomOutClass: string): ZoomControlSettings {\n return ZoomControlSettings.copy({ ...this, zoomOutClass });\n }\n\n setZoomInClass(zoomInClass: string): ZoomControlSettings {\n return ZoomControlSettings.copy({ ...this, zoomInClass });\n }\n\n setZoomOutLabel(zoomOutLabel: string): ZoomControlSettings {\n return ZoomControlSettings.copy({ ...this, zoomOutLabel });\n }\n\n setControlClass(controlClass: string): ZoomControlSettings {\n return ZoomControlSettings.copy({ ...this, controlClass });\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport Map from 'ol/Map';\nimport { ZoomControlSettings } from './zoom-control.settings';\nimport { MapRenderedEvent } from '../../../messages';\nimport { filter, first } from 'rxjs/operators';\nimport { Zoom } from 'ol/control';\nimport { GenerateZoomControlExecutor } from '../../../messages/executors/generate-zoom-control.executor';\n\n@Component({\n selector: 'art-map-control-zoom',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MapControlZoomComponent extends DestructibleComponent implements OnInit {\n private _settings: ZoomControlSettings = new ZoomControlSettings();\n private map?: Map;\n private control?: Zoom;\n\n @Input() set settings(value: ZoomControlSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.setControl();\n }\n\n constructor(private postboy: MapPostboyService) {\n super();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe((m) => {\n this.map = m.map;\n this.setControl();\n });\n }\n\n private setControl(): void {\n if (!this.map) return;\n this.control = this.postboy.execute(new GenerateZoomControlExecutor(this._settings));\n this.map.addControl(this.control!);\n }\n\n onDestroy = () => {\n this.eliminate();\n };\n\n private eliminate = () => !!this.map && !!this.control && this.map.removeControl(this.control);\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DestructibleComponent } from './common/destructible.component';\nimport { MapPlateComponent } from './map-plate/map-plate.component';\nimport { TileLayerComponent } from './map-plate/layers/tile-layer/tile-layer.component';\nimport { OsmTileLayerComponent } from './map-plate/layers/osm-tile-layer/osm-tile-layer.component';\nimport { FeatureLayerComponent } from './map-plate/layers/feature-layer/feature-layer.component';\nimport { MarkersComponent } from './map-plate/features/markers/markers.component';\nimport { TooltipComponent } from './map-plate/tooltips/tooltip/tooltip.component';\nimport { PolygonsComponent } from './map-plate/features/polygons/polygons.component';\nimport { ClusterLayerComponent } from './map-plate/layers/cluster-layer/cluster-layer.component';\nimport { MapControlZoomComponent } from './map-plate/controls/map-control-zoom/map-control-zoom.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n DestructibleComponent,\n MapPlateComponent,\n TileLayerComponent,\n OsmTileLayerComponent,\n FeatureLayerComponent,\n MarkersComponent,\n TooltipComponent,\n PolygonsComponent,\n ClusterLayerComponent,\n MapControlZoomComponent,\n ],\n exports: [\n MapPlateComponent,\n FeatureLayerComponent,\n MarkersComponent,\n TileLayerComponent,\n TooltipComponent,\n PolygonsComponent,\n ClusterLayerComponent,\n MapControlZoomComponent,\n ],\n})\nexport class MapModule {}\n","import Style from 'ol/style/Style';\nimport { Circle, Fill, Icon, Stroke, Text } from 'ol/style';\n\nexport class MarkerStyleHelper {\n public static fromSvg(svg: string, size: [number, number] = [30, 30], zIndex = 400): Style {\n let image = new Image();\n image.src = 'data:image/svg+xml,' + escape(svg);\n return new Style({\n image: new Icon({\n img: image,\n imgSize: size,\n }),\n zIndex,\n });\n }\n\n public static circle(radius: number, fill: string, strokeColor: string, strokeWidth = 1): Style {\n return new Style({\n image: new Circle({\n radius,\n fill: new Fill({ color: fill }),\n stroke: new Stroke({ color: strokeColor, width: strokeWidth }),\n }),\n });\n }\n\n public static withText(style: Style, text: Text): Style {\n style.setText(text);\n return style;\n }\n}\n","import Style from 'ol/style/Style';\nimport { Circle, Fill, Stroke } from 'ol/style';\n\nexport class PolygonStyleHelper {\n public static simple(fill: string, stroke: string, strokeWidth: number = 1): Style {\n return new Style({\n fill: new Fill({\n color: fill,\n }),\n stroke: new Stroke({\n color: stroke,\n width: strokeWidth,\n }),\n });\n }\n public static edit(fill: string, stroke: string, strokeWidth: number = 1, pinRadius = 5): Style {\n return new Style({\n image: new Circle({\n fill: new Fill({\n color: stroke,\n }),\n radius: pinRadius,\n }),\n fill: new Fill({\n color: fill,\n }),\n stroke: new Stroke({\n color: stroke,\n width: strokeWidth,\n }),\n });\n }\n}\n","import { Fill, Text } from 'ol/style';\n\nexport class TextStyleHelper {\n public static get(text: string, font: string, color: string): Text {\n return new Text({\n text: text,\n font: font,\n textAlign: 'center',\n fill: new Fill({\n color: color,\n }),\n });\n }\n}\n","import { Feature } from 'ol';\nimport { Circle, Geometry, LineString } from 'ol/geom';\nimport { FeatureOutputFormat } from '../models';\nimport { GeoJSON, WKT } from 'ol/format';\nimport Polygon from 'ol/geom/Polygon';\nimport { Coordinate } from 'ol/coordinate';\nimport { transform } from 'ol/proj';\nimport { METERS_PER_UNIT } from 'ol/proj/epsg4326';\n\nexport class StringifyFeatureHelper {\n public static polygon(feature: Feature<Geometry>, format: FeatureOutputFormat = FeatureOutputFormat.GeoJson): string {\n return format === FeatureOutputFormat.GeoJson\n ? new GeoJSON().writeFeature(feature)\n : new WKT().writeFeature(feature);\n }\n public static circle(feature: Feature<Geometry>, format: FeatureOutputFormat = FeatureOutputFormat.GeoJson): string {\n // const clone = feature.clone();\n // clone.setGeometry(fromCircle(feature.getGeometry()! as Circle));\n const tetemp = feature.getGeometryName();\n const circle = feature.getGeometry()! as Circle;\n // const temp = StringifyFeatureHelper.drawCircle(circle.getCenter(), circle.getRadius());\n const ttt = feature.getGeometry()!.getExtent()!;\n const eastPoint = [ttt[2], (ttt[1] + ttt[3]) / 2];\n const aaa = [\n ...transform([ttt[0], ttt[1]], 'EPSG:4326', 'EPSG:3857'),\n ...transform([ttt[2], ttt[3]], 'EPSG:4326', 'EPSG:3857'),\n ];\n const radius = (aaa[2] - aaa[0]) / 2;\n const radius2 = new LineString([circle.getCenter(), eastPoint]).getLength();\n\n const polygonGeom = new Polygon(StringifyFeatureHelper.drawCircle(circle.getCenter(), radius));\n\n // var edgeCoordinate = [circle.getCenter()[0] + radius, circle.getCenter()[1]];\n // var wgs84Sphere = new Sphere(6378137);\n return StringifyFeatureHelper.polygon(new Feature<Geometry>(polygonGeom), format);\n // const rad = circle.getRadius();\n // const degrees = 180 / Math.PI; // radians to degrees\n // const radians = Math.PI / 180; // degrees to radians\n // const rlat = rad * degrees * 1000;\n // const rlng = rad * radians;\n // return StringifyFeatureHelper.polygon(new Feature<Geometry>(circular(circle.getCenter(),circle.getRadius() * METERS_PER_UNIT)), format);\n }\n\n private static drawCircle(point: number[], radius: number): Coordinate[][] {\n const tetetemp = transform(point, 'EPSG:4326', 'EPSG:3857');\n // const tetetemp = point;\n const radians = Math.PI / 180; // degrees to radians\n const degrees = 180 / Math.PI; // radians to degrees\n const earthsradius = 6378137.0;\n const rlat = (radius / earthsradius) * degrees;\n const rlng = rlat / Math.cos(tetetemp[1] * radians);\n const extp: number[][] = [];\n for (let i = 0; i <= 32; i++) {\n const theta = Math.PI * (i / 16);\n extp.push([\n tetetemp[0] + rlng * Math.cos(theta) * METERS_PER_UNIT,\n tetetemp[1] + rlat * Math.sin(theta) * METERS_PER_UNIT,\n ]);\n }\n return [extp.map((e) => transform(e, 'EPSG:3857', 'EPSG:4326'))];\n }\n}\n","/*\n * Public API Surface of maps\n */\n\nexport * from './map.module';\nexport * from './models/index';\nexport * from './map-plate/map-plate.component';\nexport * from './services/map-postboy.service';\nexport * from './messages/index';\nexport * from './map-plate/layers/index';\nexport * from './map-plate/features/index';\nexport * from './services/map-postboy.service';\nexport * from './services/message-registrator.service';\nexport * from './helpers/index';\nexport * from './map-plate/controls/index';\nexport * from './map-plate/tooltips/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.MapPostboyService","Source","i2.MapManagementService","i3.MapStateService","i4.MapFeatureService","i5.MapClickService","i6.DrawingService","i7.FeatureModificationService","i8.ControlsService","i2.TileLayerFactory","Layer","i2.FeatureLayerFactory","i2.ClusterLayerFactory","i2.MapPlateFactory","i3.MessageRegistratorService","i5.OsmTileLayerComponent","i6.FeatureLayerComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"maps-components-src-map.mjs","sources":["../../projects/maps-components/src/map/common/destructible.component.ts","../../projects/maps-components/src/map/models/map-lyrs.enum.ts","../../projects/maps-components/src/map/models/map-settings.ts","../../projects/maps-components/src/map/common/id.generator.ts","../../projects/maps-components/src/map/models/map.constants.ts","../../projects/maps-components/src/map/models/marker-model.ts","../../projects/maps-components/src/map/models/polygon.model.ts","../../projects/maps-components/src/map/models/drawing-type.enum.ts","../../projects/maps-components/src/map/models/feature-format.enum.ts","../../projects/maps-components/src/map/models/dictionary.ts","../../projects/maps-components/src/map/models/map-control.ts","../../projects/maps-components/src/map/messages/events/map-rendered.event.ts","../../projects/maps-components/src/map/messages/events/map-click.event.ts","../../projects/maps-components/src/map/messages/events/map-move-end.event.ts","../../projects/maps-components/src/map/messages/commands/close-tooltip.command.ts","../../projects/maps-components/src/map/messages/commands/start-drawing.command.ts","../../projects/maps-components/src/map/messages/commands/cancel-drawing.command.ts","../../projects/maps-components/src/map/messages/commands/draw-selection-area.command.ts","../../projects/maps-components/src/map/messages/commands/modify-feature.command.ts","../../projects/maps-components/src/map/messages/commands/cancel-feature-modification.command.ts","../../projects/maps-components/src/map/messages/commands/add-control.command.ts","../../projects/maps-components/src/map/messages/commands/remove-control.command.ts","../../projects/maps-components/src/map/messages/commands/set-map-center.command.ts","../../projects/maps-components/src/map/messages/executors/calculate-area.executor.ts","../../projects/maps-components/src/map/messages/commands/add-layer.command.ts","../../projects/maps-components/src/map/messages/commands/place-layer-features.command.ts","../../projects/maps-components/src/map/messages/commands/remove-layer.command.ts","../../projects/maps-components/src/map/messages/commands/add-tile.command.ts","../../projects/maps-components/src/map/messages/commands/remove-tile.command.ts","../../projects/maps-components/src/map/messages/commands/fit-to-features.command.ts","../../projects/maps-components/src/map/messages/queries/get-layer.query.ts","../../projects/maps-components/src/map/messages/events/drawing-finished.event.ts","../../projects/maps-components/src/map/services/drawing/drawing-generation.service.ts","../../projects/maps-components/src/map/services/feature.service.ts","../../projects/maps-components/src/map/messages/queries/get-features-in-area.query.ts","../../projects/maps-components/src/map/messages/executors/filter-features-in-area.executor.ts","../../projects/maps-components/src/map/messages/executors/generate-draw.executor.ts","../../projects/maps-components/src/map/messages/executors/generate-zoom-control.executor.ts","../../projects/maps-components/src/map/map-plate/controls/map-control-zoom/zoom-control.factory.ts","../../projects/maps-components/src/map/services/map-postboy.service.ts","../../projects/maps-components/src/map/services/map-management.service.ts","../../projects/maps-components/src/map/services/map-state.service.ts","../../projects/maps-components/src/map/services/map-feature.service.ts","../../projects/maps-components/src/map/services/map-click.service.ts","../../projects/maps-components/src/map/services/drawing/drawing.service.ts","../../projects/maps-components/src/map/services/drawing/feature-modification.service.ts","../../projects/maps-components/src/map/services/controls/controls.service.ts","../../projects/maps-components/src/map/services/message-registrator.service.ts","../../projects/maps-components/src/map/map-plate/layers/tile-layer/tile-layer.settings.ts","../../projects/maps-components/src/map/map-plate/layers/tile-layer/tile-layer.factory.ts","../../projects/maps-components/src/map/map-plate/layers/tile-layer/tile-layer.component.ts","../../projects/maps-components/src/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.ts","../../projects/maps-components/src/map/map-plate/layers/feature-layer/feature-layer.settings.ts","../../projects/maps-components/src/map/map-plate/layers/feature-layer/feature-layer.factory.ts","../../projects/maps-components/src/map/map-plate/layers/feature-layer/feature-layer.component.ts","../../projects/maps-components/src/map/map-plate/layers/cluster-layer/cluster-layer.settings.ts","../../projects/maps-components/src/map/map-plate/layers/cluster-layer/cluster-layer.manager.ts","../../projects/maps-components/src/map/map-plate/layers/cluster-layer/cluster-layer-factory.service.ts","../../projects/maps-components/src/map/map-plate/layers/cluster-layer/cluster-layer.component.ts","../../projects/maps-components/src/map/map-plate/map-plate.factory.service.ts","../../projects/maps-components/src/map/map-plate/map-plate.component.ts","../../projects/maps-components/src/map/map-plate/map-plate.component.html","../../projects/maps-components/src/map/map-plate/features/markers/markers.component.ts","../../projects/maps-components/src/map/map-plate/tooltips/tooltip/tooltip.settings.ts","../../projects/maps-components/src/map/map-plate/tooltips/tooltip/tooltip.component.ts","../../projects/maps-components/src/map/map-plate/tooltips/tooltip/tooltip.component.html","../../projects/maps-components/src/map/map-plate/features/polygons/polygons.component.ts","../../projects/maps-components/src/map/map-plate/controls/map-control-zoom/zoom-control.settings.ts","../../projects/maps-components/src/map/map-plate/controls/map-control-zoom/map-control-zoom.component.ts","../../projects/maps-components/src/map/map.module.ts","../../projects/maps-components/src/map/helpers/marker-style.helper.ts","../../projects/maps-components/src/map/helpers/polygon-style.helper.ts","../../projects/maps-components/src/map/helpers/text-style.helper.ts","../../projects/maps-components/src/map/helpers/stringify-feature.helper.ts","../../projects/maps-components/src/map/public-api.ts","../../projects/maps-components/src/map/maps-components-src-map.ts"],"sourcesContent":["import { Component, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\n@Component({ template: '' })\nexport class DestructibleComponent implements OnDestroy {\n protected subs: Subscription[] = [];\n protected onDestroy?: () => void;\n\n ngOnDestroy(): void {\n this.subs.forEach((s) => s.unsubscribe());\n if (this.onDestroy) this.onDestroy();\n }\n}\n","export enum MapLyrs {\n Hybrid = 1,\n Satellite,\n Streets,\n Terrain,\n}\n\nexport class MapLyrsLabel {\n private static lyrs = {\n [MapLyrs.Hybrid]: 's,h',\n [MapLyrs.Satellite]: 's',\n [MapLyrs.Streets]: 'm',\n [MapLyrs.Terrain]: 'p',\n };\n\n public static get(lyrs: MapLyrs): string {\n return MapLyrsLabel.lyrs[lyrs];\n }\n}\n","import { MapLyrs } from './map-lyrs.enum';\n\nexport class MapSettings {\n center: number[] = [0, 0];\n maxZoom: number = 19;\n minZoom: number = 0;\n zoom: number = 4;\n lyrs: MapLyrs = MapLyrs.Hybrid;\n language: string = 'en';\n\n public static copy(model: MapSettings): MapSettings {\n const result = new MapSettings();\n result.center = model.center;\n result.maxZoom = model.maxZoom;\n result.minZoom = model.minZoom;\n result.zoom = model.zoom;\n result.lyrs = model.lyrs;\n result.language = model.language;\n return result;\n }\n\n setCenter(center: number[]): MapSettings {\n return MapSettings.copy({ ...this, center });\n }\n\n setMaxZoom(maxZoom: number): MapSettings {\n return MapSettings.copy({ ...this, maxZoom });\n }\n\n setMinZoom(minZoom: number): MapSettings {\n return MapSettings.copy({ ...this, minZoom });\n }\n\n setZoom(zoom: number): MapSettings {\n return MapSettings.copy({ ...this, zoom });\n }\n\n setLyrs(lyrs: MapLyrs): MapSettings {\n return MapSettings.copy({ ...this, lyrs });\n }\n\n setLanguage(language: string): MapSettings {\n return MapSettings.copy({ ...this, language });\n }\n\n public isSame(model: MapSettings): boolean {\n if (this.maxZoom !== model.maxZoom) return false;\n if (this.minZoom !== model.minZoom) return false;\n if (this.zoom !== model.zoom) return false;\n if (this.lyrs !== model.lyrs) return false;\n if (this.language !== model.language) return false;\n return this.center.length === model.center.length && !this.center.filter((c, i) => c !== model.center[i]).length;\n }\n}\n","export class IdGenerator {\n private static collection = 'ABCDEFGHIJKLMNOPQRSTUVWXTZ0123456789'.split('');\n\n public static get(): string {\n let result: string[] = [];\n for (let i = 0; i < 7; i++) {\n result.push(\n IdGenerator.collection\n .sort(() => 0.5 - Math.random())\n .slice(0, 5)\n .join(''),\n );\n }\n return result.join('-');\n }\n}\n","export class MapConstants {\n public static FeatureInfo = 'f-info';\n public static DrawingLayerId = '93a981756ec7';\n}\n","import { IdGenerator } from '../common/id.generator';\nimport { Feature } from 'ol';\nimport { Geometry, Point } from 'ol/geom';\nimport { MapConstants } from './map.constants';\n\nexport class MarkerModel {\n public readonly id: string | number;\n constructor(\n public readonly lat: number,\n public readonly lng: number,\n id?: string | number,\n public info?: {\n [id: string]: any;\n },\n ) {\n this.id = id == null ? IdGenerator.get() : id;\n this._feature = this.getFeature();\n }\n\n private _feature: Feature<Geometry>;\n\n public get feature(): Feature<Geometry> {\n return this._feature;\n }\n\n private getFeature(): Feature<Geometry> {\n const feature = new Feature(new Point([this.lng, this.lat]));\n feature.setId(this.id);\n if (this.info) feature.set(MapConstants.FeatureInfo, this.info);\n return feature;\n }\n}\n","import { IdGenerator } from '../common/id.generator';\nimport { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\nimport { GeoJSON, WKT } from 'ol/format';\nimport { getCenter } from 'ol/extent';\nimport { MapConstants } from './map.constants';\n\nexport class PolygonModel {\n public readonly id: string | number;\n public readonly lat: number;\n public readonly lng: number;\n private _feature: Feature<Geometry>;\n\n public static fromGeoJson(id: string | number, json: string, info?: { [id: string]: any }): PolygonModel {\n let feature = new GeoJSON().readFeature(json);\n feature.setId(id);\n return new PolygonModel(feature, id, info);\n }\n\n public static fromWKT(id: string | number, wkt: string, info?: { [id: string]: any }): PolygonModel {\n let feature = new WKT().readFeature(wkt);\n feature.setId(id);\n return new PolygonModel(feature, id, info);\n }\n\n private constructor(feature: Feature<Geometry>, id?: string | number, public info?: { [id: string]: any }) {\n this.id = id == null ? IdGenerator.get() : id;\n this._feature = feature;\n if (this.info) this._feature?.set(MapConstants.FeatureInfo, this.info);\n [this.lng, this.lat] = getCenter(this._feature.getGeometry()?.getExtent()!);\n }\n\n public get feature(): Feature<Geometry> {\n return this._feature;\n }\n}\n","export enum DrawingType {\n Polygon = 1,\n Circle,\n Square,\n Box,\n}\n","export enum FeatureOutputFormat {\n GeoJson = 1,\n WKT,\n}\n","export class Dictionary<T> {\n public collection: DictionaryType<T> = {};\n private _keys = new Set<string>();\n\n public get keys(): string[] {\n return Array.from(this._keys);\n }\n\n public get size(): number {\n return this._keys.size;\n }\n\n public static clone<T>(dic: Dictionary<T>, action?: (e: T, k: string) => T): Dictionary<T> {\n return Dictionary.create(dic.collection, action);\n }\n\n public static create<T>(dic: DictionaryType<T>, action?: (e: T, k: string) => T): Dictionary<T> {\n let keyList = Object.keys(dic);\n const result = new Dictionary<T>();\n for (let i = 0; i < keyList.length; i++) {\n let key = keyList[i];\n result._keys.add(key);\n result.collection[key] = action ? action(dic[key], key) : dic[key];\n }\n return result;\n }\n\n public find(predicate: (value: T) => boolean): T | null {\n let result: T | null = null;\n this.forEach((e) => {\n if (result === null && predicate(e)) result = e;\n });\n return result;\n }\n\n public has = (key: string) => this._keys.has(key);\n\n public take(key: string): T | null {\n return this._keys.has(key) ? this.collection[key] : null;\n }\n\n public put(key: string, value?: T | null): void {\n if (value == null) return;\n this.collection[key] = value;\n this._keys.add(key);\n }\n\n public rmv(key: string): void {\n if (!this._keys.has(key)) return;\n delete this.collection[key];\n this._keys.delete(key);\n }\n\n public forEach(callback: (value: T, index: number) => void): void {\n let keys = Object.keys(this.collection);\n for (let i = 0; i < keys.length; i++) {\n callback(this.collection[keys[i]], i);\n }\n }\n}\n\nexport type DictionaryType<T> = { [id: string]: T };\n","import { Control } from 'ol/control';\nimport { Options } from 'ol/control/Control';\n\n/**\n *\n * A control is a visible widget with a DOM element in a fixed position on the screen. They can involve user input (buttons), or be informational only; the position is determined using CSS. By default these are placed in the container with CSS class name ol-overlaycontainer-stopevent, but can use any outside DOM element.\n * This is the base class for controls. You can use it for simple custom controls by creating the element with listeners, creating an instance:\n * var myControl = new Control({element: myElement}); and then adding this to the map.\n * The main advantage of having this as a control rather than a simple separate DOM element is that preventing propagation is handled for you. Controls will also be objects in a module:ol/Collection~Collection, so you can use their methods.\n * You can also extend this base for your own control class. See examples/custom-controls for an example of how to do this.\n */\nexport class MapControl extends Control {\n constructor(options: Options) {\n super(options);\n }\n}\n","import Map from 'ol/Map';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class MapRenderedEvent extends PostboyGenericMessage {\n public static readonly ID: string = 'b6121807-3b89-4cd3-82cf-089d2cefdc4f';\n\n constructor(public map: Map) {\n super();\n }\n\n public get id(): string {\n return MapRenderedEvent.ID;\n }\n}\n","import { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\nimport { IIdentified } from '../../models/i-identified';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class MapClickEvent extends PostboyGenericMessage {\n public static readonly ID: string = '323df526-8d9c-49c6-83e8-6e9a1e7762f7';\n\n constructor(\n public coordinates: number[],\n public entities: { [layer: string]: IIdentified[] },\n public features: { [layer: string]: Feature<Geometry>[] },\n ) {\n super();\n }\n\n public get id(): string {\n return MapClickEvent.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class MapMoveEndEvent extends PostboyGenericMessage {\n public static readonly ID: string = 'f21f783e-b5af-4489-9fec-8027fd07a8ad';\n\n constructor(public zoom: number, public extent: number[]) {\n super();\n }\n\n public get id(): string {\n return MapMoveEndEvent.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class CloseTooltipCommand extends PostboyGenericMessage {\n public static readonly ID: string = '4896d52c-e34f-4994-bcfd-32832d12dbe4';\n\n constructor(public tooltipId: string) {\n super();\n }\n\n public get id(): string {\n return CloseTooltipCommand.ID;\n }\n}\n","import { PostboyCallbackMessage } from '@artstesh/postboy';\nimport { DrawingType, FeatureOutputFormat } from '../../models';\nimport Style from 'ol/style/Style';\n\nexport class StartDrawingCommand extends PostboyCallbackMessage<string | null> {\n public static readonly ID: string = 'da904f4b-a1c8-4db7-a6af-14d9ee18ec8c';\n\n constructor(\n public type: DrawingType,\n public style: Style,\n public format: FeatureOutputFormat = FeatureOutputFormat.GeoJson,\n ) {\n super();\n }\n\n public get id(): string {\n return StartDrawingCommand.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class CancelDrawingCommand extends PostboyGenericMessage {\n public static readonly ID: string = '7d38d983-feba-4176-a66b-18175e5ecd6b';\n\n public get id(): string {\n return CancelDrawingCommand.ID;\n }\n}\n","import { PostboyCallbackMessage } from '@artstesh/postboy';\nimport { Dictionary, DrawingType } from '../../models';\nimport Style from 'ol/style/Style';\nimport { IIdentified } from '../../models/i-identified';\n\nexport class DrawSelectionAreaCommand extends PostboyCallbackMessage<Dictionary<IIdentified[]>> {\n public static readonly ID: string = '573d8a0d-f25b-42b7-9ad7-0ac6d86ac362';\n\n constructor(public type: DrawingType, public style: Style, public ignore: Set<string> = new Set<string>()) {\n super();\n }\n\n public get id(): string {\n return DrawSelectionAreaCommand.ID;\n }\n}\n","import { PostboyCallbackMessage } from '@artstesh/postboy';\nimport { FeatureOutputFormat, PolygonModel } from '../../models';\nimport Style from 'ol/style/Style';\n\nexport class ModifyFeatureCommand extends PostboyCallbackMessage<string | null> {\n public static readonly ID: string = 'ead85caa-24c6-4844-a68c-2cea91774c8c';\n\n constructor(\n public model: PolygonModel,\n public style: Style,\n public format: FeatureOutputFormat = FeatureOutputFormat.GeoJson,\n ) {\n super();\n }\n\n public get id(): string {\n return ModifyFeatureCommand.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class CancelFeatureModificationCommand extends PostboyGenericMessage {\n public static readonly ID: string = '9c9fb40f-ea95-4704-8177-0e9ecabf36fa';\n\n public get id(): string {\n return CancelFeatureModificationCommand.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\nimport { MapControl } from '../../models/map-control';\n\nexport class AddControlCommand extends PostboyGenericMessage {\n public static readonly ID: string = '8e1c06eb-b395-4fe1-929c-ebf0805eeb49';\n\n constructor(public item: MapControl) {\n super();\n }\n\n public get id(): string {\n return AddControlCommand.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\nimport { MapControl } from '../../models/map-control';\n\nexport class RemoveControlCommand extends PostboyGenericMessage {\n public static readonly ID: string = '361641e0-804a-4930-8c27-0cea6330dbfc';\n\n constructor(public item: MapControl) {\n super();\n }\n\n public get id(): string {\n return RemoveControlCommand.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\n\n/**\n * Forces map to move to a specific point\n */\nexport class SetMapCenterCommand extends PostboyGenericMessage {\n public static readonly ID: string = 'd50e89c9-6707-4f8c-ab57-65fcef232182';\n\n /**\n *\n * @param lat - the desired latitude\n * @param lng - the desired longitude\n * @param zoom - the desired zoom; doesn't change zoom if undefined\n */\n constructor(public lat: number, public lng: number, public zoom?: number) {\n super();\n }\n\n public get id(): string {\n return SetMapCenterCommand.ID;\n }\n}\n","import { PostboyExecutor } from '@artstesh/postboy';\nimport { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\nimport { PolygonModel } from '../../models';\n\nexport class CalculateAreaExecutor extends PostboyExecutor<Feature<Geometry>[]> {\n public static readonly ID: string = '172ecf46-86b5-4f46-a5f1-96ba2cbb1694';\n\n constructor(public polygon: PolygonModel) {\n super();\n }\n\n public get id(): string {\n return CalculateAreaExecutor.ID;\n }\n}\n","import { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport Cluster from 'ol/source/Cluster';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class AddLayerCommand extends PostboyGenericMessage {\n public static readonly ID: string = 'd93e250f-92bc-43ac-9c6a-46c521a1aaa5';\n\n constructor(public layer: Layer<VectorSource<any> | Cluster>) {\n super();\n }\n\n public get id(): string {\n return AddLayerCommand.ID;\n }\n}\n","import { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class PlaceLayerFeaturesCommand extends PostboyGenericMessage {\n public static readonly ID: string = '8caf86bc-869b-426f-b36d-4642f6b8aab0';\n\n constructor(public layer: string, public features: Feature<Geometry>[]) {\n super();\n }\n\n public get id(): string {\n return PlaceLayerFeaturesCommand.ID;\n }\n}\n","import BaseLayer from 'ol/layer/Base';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class RemoveLayerCommand extends PostboyGenericMessage {\n public static readonly ID: string = 'ab484e0e-e185-45cd-8434-12101f3c7eb1';\n\n constructor(public layer: BaseLayer) {\n super();\n }\n\n public get id(): string {\n return RemoveLayerCommand.ID;\n }\n}\n","import TileLayer from 'ol/layer/Tile';\nimport { XYZ } from 'ol/source';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class AddTileCommand extends PostboyGenericMessage {\n public static readonly ID: string = '25b7df28-72ce-4453-9fe6-54285a2fdc57';\n\n constructor(public layer: TileLayer<XYZ>) {\n super();\n }\n\n public get id(): string {\n return AddTileCommand.ID;\n }\n}\n","import TileLayer from 'ol/layer/Tile';\nimport { XYZ } from 'ol/source';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class RemoveTileCommand extends PostboyGenericMessage {\n public static readonly ID: string = 'c36ccc0b-5638-4819-b148-2de57a59a5b7';\n\n constructor(public layer: TileLayer<XYZ>) {\n super();\n }\n\n public get id(): string {\n return RemoveTileCommand.ID;\n }\n}\n","import { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\nimport { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class FitToFeaturesCommand extends PostboyGenericMessage {\n public static readonly ID: string = '76cdc091-3793-4b6c-82f7-1e0334cf08a8';\n\n constructor(public features: Feature<Geometry>[], public zoomAfter = 0) {\n super();\n }\n\n public get id(): string {\n return FitToFeaturesCommand.ID;\n }\n}\n","import { PostboyCallbackMessage } from '@artstesh/postboy';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport Cluster from 'ol/source/Cluster';\n\nexport class GetLayerQuery extends PostboyCallbackMessage<Layer<VectorSource<any> | Cluster> | null> {\n public static readonly ID: string = '5c04c87b-8a93-4c2a-979e-d1e313d860ed';\n\n constructor(public name: string) {\n super();\n }\n\n public get id(): string {\n return GetLayerQuery.ID;\n }\n}\n","import { PostboyGenericMessage } from '@artstesh/postboy';\n\nexport class DrawingFinishedEvent extends PostboyGenericMessage {\n public static readonly ID: string = 'c724b68e-b4eb-4783-90f1-a8e31973fd36';\n\n constructor() {\n super();\n }\n\n public get id(): string {\n return DrawingFinishedEvent.ID;\n }\n}\n","import { Draw } from 'ol/interaction';\nimport { DrawingType } from '../../models';\nimport { createBox, createRegularPolygon, GeometryFunction } from 'ol/interaction/Draw';\nimport { GenerateDrawExecutor } from '../../messages/executors/generate-draw.executor';\n\nexport class DrawingGenerationService {\n public static getDraw(ev: GenerateDrawExecutor) {\n return new Draw({\n source: ev.layer.getSource()!,\n type: ev.type === DrawingType.Polygon ? 'Polygon' : 'Circle',\n style: ev.style,\n geometryFunction: DrawingGenerationService.geometryFunc(ev.type),\n });\n }\n\n private static geometryFunc(type: DrawingType): GeometryFunction | undefined {\n switch (type) {\n case DrawingType.Circle:\n return createRegularPolygon(32);\n case DrawingType.Box:\n return createBox();\n case DrawingType.Square:\n return createRegularPolygon(4);\n }\n return undefined;\n }\n}\n","import { Circle, Geometry, Point } from 'ol/geom';\nimport Polygon from 'ol/geom/Polygon';\nimport { Feature } from 'ol';\nimport * as Sphere from 'ol/sphere';\nimport { FilterFeaturesInAreaExecutor } from '../messages/executors/filter-features-in-area.executor';\nimport { PolygonModel } from '../models';\n\nexport class FeatureService {\n constructor() {}\n\n public static filterFeaturesInArea(query: FilterFeaturesInAreaExecutor): Feature<Geometry>[] {\n return query.features.filter((f) => FeatureService.booleanIntersects(query.area, f.getGeometry()!));\n }\n\n private static booleanIntersects(g1: Geometry, g2: Geometry): boolean {\n if (g2.getType() === 'Point') return g1.intersectsCoordinate((g2 as Point).getCoordinates());\n if (g2.getType() === 'Circle') return g1.intersectsCoordinate((g2 as Circle).getCenter());\n if (g2.getType() === 'Polygon') return g1.intersectsCoordinate((g2 as Polygon).getInteriorPoint().getCoordinates());\n return false;\n }\n\n public static calculateArea(g: Geometry | undefined): number {\n if (!g) return 0;\n return Sphere.getArea(g, { projection: 'EPSG:4326' });\n }\n}\n","import { PostboyCallbackMessage } from '@artstesh/postboy';\nimport { Geometry } from 'ol/geom';\nimport { Dictionary } from '../../models';\nimport { IIdentified } from '../../models/i-identified';\n\nexport class GetFeaturesInAreaQuery extends PostboyCallbackMessage<Dictionary<IIdentified[]>> {\n public static readonly ID: string = 'efcf4271-a07a-40e0-9f02-d4dade40b8ac';\n\n constructor(public area: Geometry, public ignore: Set<string> = new Set<string>()) {\n super();\n }\n\n public get id(): string {\n return GetFeaturesInAreaQuery.ID;\n }\n}\n","import { PostboyExecutor } from '@artstesh/postboy';\nimport { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\n\nexport class FilterFeaturesInAreaExecutor extends PostboyExecutor<Feature<Geometry>[]> {\n public static readonly ID: string = '36bb2d94-8028-4512-90dd-2386af3fc67c';\n\n constructor(public area: Geometry, public features: Feature<Geometry>[]) {\n super();\n }\n\n public get id(): string {\n return FilterFeaturesInAreaExecutor.ID;\n }\n}\n","import { PostboyExecutor } from '@artstesh/postboy';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport { Draw } from 'ol/interaction';\nimport { DrawingType } from '../../models';\nimport Style from 'ol/style/Style';\n\nexport class GenerateDrawExecutor extends PostboyExecutor<Draw> {\n public static readonly ID: string = 'f01c99ba-0953-4ab5-82f9-04e6fbb678c1';\n\n constructor(public layer: Layer<VectorSource<any>>, public style: Style, public type: DrawingType) {\n super();\n }\n\n public get id(): string {\n return GenerateDrawExecutor.ID;\n }\n}\n","import { PostboyExecutor } from '@artstesh/postboy';\nimport { Draw } from 'ol/interaction';\nimport { ZoomControlSettings } from '../../map-plate/controls/map-control-zoom/zoom-control.settings';\n\nexport class GenerateZoomControlExecutor extends PostboyExecutor<Draw> {\n public static readonly ID: string = 'ff16a833-c68e-4b1a-bc23-c0d16b002810';\n\n constructor(public settings: ZoomControlSettings) {\n super();\n }\n\n public get id(): string {\n return GenerateZoomControlExecutor.ID;\n }\n}\n","import { ZoomControlSettings } from './zoom-control.settings';\nimport { Zoom } from 'ol/control';\n\nexport class ZoomControlFactory {\n public static build(settings: ZoomControlSettings): Zoom {\n return new Zoom({\n zoomInTipLabel: settings.zoomInLabel,\n zoomOutTipLabel: settings.zoomOutLabel,\n zoomInClassName: settings.zoomInClass,\n zoomOutClassName: settings.zoomOutClass,\n className: settings.controlClass,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { PostboyService } from '@artstesh/postboy';\nimport { StartDrawingCommand } from '../messages/commands/start-drawing.command';\nimport { MapClickEvent } from '../messages';\nimport { DrawingFinishedEvent } from '../messages/events/drawing-finished.event';\n\n@Injectable()\nexport class MapPostboyService extends PostboyService {\n constructor() {\n super();\n this.addLocker({ locker: StartDrawingCommand.ID, unlocker: DrawingFinishedEvent.ID, locking: [MapClickEvent.ID] });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Feature, Map } from 'ol';\nimport { MapPostboyService } from './map-postboy.service';\nimport { AddLayerCommand } from '../messages/commands/add-layer.command';\nimport { RemoveLayerCommand } from '../messages/commands/remove-layer.command';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport { MapRenderedEvent } from '../messages';\nimport { PlaceLayerFeaturesCommand } from '../messages/commands/place-layer-features.command';\nimport { AddTileCommand } from '../messages/commands/add-tile.command';\nimport { RemoveTileCommand } from '../messages/commands/remove-tile.command';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport Cluster from 'ol/source/Cluster';\nimport { GetLayerQuery } from '../messages/queries/get-layer.query';\nimport { GetFeaturesInAreaQuery } from '../messages/queries/get-features-in-area.query';\nimport { IIdentified } from '../models/i-identified';\nimport { Dictionary } from '../models';\nimport { MapConstants } from '../models/map.constants';\nimport { FilterFeaturesInAreaExecutor } from '../messages/executors/filter-features-in-area.executor';\nimport { Geometry } from 'ol/geom';\n\n@Injectable()\nexport class MapManagementService implements IPostboyDependingService {\n private map?: Map;\n private layers = new Dictionary<Layer<VectorSource<any> | Cluster>>();\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeMapRender();\n this.observeAddLayer();\n this.observeRemoveLayer();\n this.observePlaceFeatures();\n this.observeAddTile();\n this.observeRemoveTile();\n this.observeLayerQuery();\n this.observeFeaturesInArea();\n }\n\n private observeRemoveTile() {\n this.postboy.subscribe<RemoveTileCommand>(RemoveTileCommand.ID).subscribe((c) => {\n if (!this.map) return;\n this.map.removeLayer(c.layer);\n });\n }\n\n private observeLayerQuery() {\n this.postboy.subscribe<GetLayerQuery>(GetLayerQuery.ID).subscribe((ev) => ev.finish(this.layers.take(ev.name)));\n }\n\n private observeAddTile() {\n this.postboy.subscribe<AddTileCommand>(AddTileCommand.ID).subscribe((c) => {\n if (!this.map) return;\n this.map.addLayer(c.layer);\n });\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n });\n }\n\n private observeAddLayer() {\n this.postboy.subscribe<AddLayerCommand>(AddLayerCommand.ID).subscribe((c) => {\n if (!this.map) return;\n this.layers.put(c.layer.get('name'), c.layer);\n this.map.addLayer(c.layer);\n });\n }\n\n private observePlaceFeatures() {\n this.postboy.subscribe<PlaceLayerFeaturesCommand>(PlaceLayerFeaturesCommand.ID).subscribe((c) => {\n if (!this.layers.has(c.layer)) return;\n let source = this.layers.take(c.layer)!.getSource();\n if (!!(source as any)['getSource']) source = (source as any)?.getSource();\n source?.clear();\n !!c.features?.length && source?.addFeatures(c.features);\n });\n }\n\n private observeRemoveLayer() {\n this.postboy.subscribe<RemoveLayerCommand>(RemoveLayerCommand.ID).subscribe((c) => {\n if (!this.map) return;\n this.layers.rmv(c.layer.get('name'));\n this.map.removeLayer(c.layer);\n });\n }\n\n private observeFeaturesInArea() {\n this.postboy.subscribe<GetFeaturesInAreaQuery>(GetFeaturesInAreaQuery.ID).subscribe((qr) => {\n let result = new Dictionary<IIdentified[]>();\n this.layers.forEach((l) => {\n let layerName = l.get('name');\n if (qr.ignore.has(layerName) || layerName === MapConstants.DrawingLayerId) return;\n let source = l.getSource();\n if (!!(source as any)['getSource']) source = (source as any)?.getSource();\n let features = this.postboy.execute<FilterFeaturesInAreaExecutor, Feature<Geometry>[]>(\n new FilterFeaturesInAreaExecutor(qr.area, source?.getFeatures() ?? []),\n );\n result.put(\n layerName,\n features.map((e) => ({ id: e.getId(), ...e.get(MapConstants.FeatureInfo) })),\n );\n });\n qr.finish(result);\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Map } from 'ol';\nimport { MapRenderedEvent, SetMapCenterCommand } from '../messages';\nimport { MapPostboyService } from './map-postboy.service';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { MapMoveEndEvent } from '../messages';\nimport { first } from 'rxjs/operators';\n\n@Injectable()\nexport class MapStateService implements IPostboyDependingService {\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeMapRendering();\n this.observeCenter();\n }\n\n private observeMapRendering() {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(first())\n .subscribe((ev) => {\n this.map = ev.map;\n this.map?.on('moveend', () => {\n const zoom = Math.floor(this.map?.getView().getZoom() || -1);\n const extent = this.map?.getView().calculateExtent() || [];\n this.postboy.fire(new MapMoveEndEvent(zoom, extent));\n });\n });\n }\n\n private observeCenter() {\n this.postboy.subscribe<SetMapCenterCommand>(SetMapCenterCommand.ID).subscribe((c) => {\n this.map?.getView().setCenter([c.lng, c.lat]);\n if (c.zoom) this.map?.getView().setZoom(c.zoom);\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { Map } from 'ol';\nimport { MapPostboyService } from './map-postboy.service';\nimport { MapRenderedEvent } from '../messages';\nimport { FitToFeaturesCommand } from '../messages/commands/fit-to-features.command';\nimport { Geometry } from 'ol/geom';\nimport { createEmpty, extend } from 'ol/extent';\n\n@Injectable()\nexport class MapFeatureService implements IPostboyDependingService {\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeMapRender();\n this.observeFitToFeatures();\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n });\n }\n\n private observeFitToFeatures() {\n this.postboy.subscribe<FitToFeaturesCommand>(FitToFeaturesCommand.ID).subscribe((m) => {\n this.fitToGeometries(\n m.features.map((f) => f.getGeometry()!),\n m.zoomAfter,\n );\n });\n }\n\n private fitToGeometries(geometries: Geometry[], zoomAfter: number): void {\n if (!geometries?.length || !this.map) return;\n const extent = createEmpty();\n geometries.forEach((g) => extend(extent, g.getExtent()));\n this.map.getView().fit(extent);\n this.map.getView().setZoom(this.map.getView().getZoom()! + zoomAfter);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { Feature, Map, MapBrowserEvent } from 'ol';\nimport { MapPostboyService } from './map-postboy.service';\nimport { MapRenderedEvent } from '../messages';\nimport { MapClickEvent } from '../messages/events/map-click.event';\nimport { Geometry } from 'ol/geom';\nimport { MapConstants } from '../models/map.constants';\n\n@Injectable()\nexport class MapClickService implements IPostboyDependingService {\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeMapRender();\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n this.map?.on('singleclick', (e) => {\n this.postboy.fire(this.onClick(e));\n });\n });\n }\n\n onClick(ev: MapBrowserEvent<UIEvent>): MapClickEvent {\n const model: MapClickEvent = new MapClickEvent(ev.coordinate, {}, {});\n this.map?.forEachFeatureAtPixel(ev.pixel, (f, l) => {\n this.getFeatureCollectionWithInner([f as Feature<Geometry>])\n .filter((f) => f.getId() != null)\n .forEach((fs: Feature<Geometry>) => {\n let layerName = l.get('name');\n if (!model.entities[layerName]) model.entities[layerName] = [];\n if (!model.features[layerName]) model.features[layerName] = [];\n model.entities[layerName].push({ id: fs.getId()!, ...fs.get(MapConstants.FeatureInfo) });\n model.features[layerName].push(fs);\n });\n });\n return model;\n }\n\n private getFeatureCollectionWithInner(features: Feature<Geometry>[]): Feature<Geometry>[] {\n const result: Feature<Geometry>[] = [];\n features?.forEach((f) => {\n const innerFeatures = f.get('features') as Feature<Geometry>[];\n innerFeatures?.length ? result.push(...innerFeatures) : result.push(f);\n });\n return result;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { MapPostboyService } from '../map-postboy.service';\nimport { StartDrawingCommand } from '../../messages/commands/start-drawing.command';\nimport { CancelDrawingCommand } from '../../messages/commands/cancel-drawing.command';\nimport { first } from 'rxjs/operators';\nimport { DrawingFinishedEvent } from '../../messages/events/drawing-finished.event';\nimport { Subscription } from 'rxjs';\nimport { MapRenderedEvent } from '../../messages';\nimport { GetLayerQuery } from '../../messages/queries/get-layer.query';\nimport { MapConstants } from '../../models/map.constants';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport { Vector as Source } from 'ol/source';\nimport { Draw } from 'ol/interaction';\nimport { Dictionary, FeatureOutputFormat, PolygonModel } from '../../models';\nimport { Map } from 'ol';\nimport { DrawEvent } from 'ol/interaction/Draw';\nimport { Geometry } from 'ol/geom';\nimport { GeoJSON, WKT } from 'ol/format';\nimport { DrawSelectionAreaCommand } from '../../messages/commands/draw-selection-area.command';\nimport { GetFeaturesInAreaQuery } from '../../messages/queries/get-features-in-area.query';\nimport { IIdentified } from '../../models/i-identified';\nimport { GenerateDrawExecutor } from '../../messages/executors/generate-draw.executor';\n\n@Injectable()\nexport class DrawingService implements IPostboyDependingService {\n private drawInteraction?: Draw;\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeDrawing();\n this.observeSelectArea();\n this.observeMapRender();\n }\n\n private observeSelectArea() {\n this.postboy.subscribe<DrawSelectionAreaCommand>(DrawSelectionAreaCommand.ID).subscribe((ev) => {\n const drawingCommand = new StartDrawingCommand(ev.type, ev.style);\n drawingCommand.result.subscribe((r) => {\n if (!r) {\n ev.finish(new Dictionary<IIdentified[]>());\n return;\n }\n const area = PolygonModel.fromGeoJson(1, r).feature.getGeometry()!;\n const getFeaturesCommand = new GetFeaturesInAreaQuery(area, ev.ignore);\n getFeaturesCommand.result.subscribe((result) => ev.finish(result));\n this.postboy.fire(getFeaturesCommand);\n });\n this.postboy.fire(drawingCommand);\n });\n }\n\n private observeDrawing() {\n this.postboy.subscribe<StartDrawingCommand>(StartDrawingCommand.ID).subscribe((ev) => {\n this.draw((l) => {\n if (!l || !this.map) {\n this.clearInteraction(l);\n return;\n }\n const cancelSub = this.observeCancelation(ev, l);\n this.drawInteraction = this.postboy.execute(new GenerateDrawExecutor(l, ev.style, ev.type))!;\n this.map?.addInteraction(this.drawInteraction);\n this.drawInteraction.on('drawend', (evt: DrawEvent) => {\n cancelSub.unsubscribe();\n this.onEnd(evt, ev, l);\n });\n });\n });\n }\n\n private onEnd(evt: DrawEvent, command: StartDrawingCommand, layer: Layer<VectorSource<Geometry>>): void {\n command.finish(\n command.format === FeatureOutputFormat.GeoJson\n ? new GeoJSON().writeFeature(evt.feature)\n : new WKT().writeFeature(evt.feature),\n );\n this.clearInteraction(layer);\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n });\n }\n\n private draw(action: (layer: Layer<VectorSource<any>> | null) => void): void {\n const query = new GetLayerQuery(MapConstants.DrawingLayerId);\n query.result.subscribe((l) => action(l));\n this.postboy.fire(query);\n }\n\n private observeCancelation(ev: StartDrawingCommand, layer: Layer<VectorSource<any>> | null): Subscription {\n return this.postboy\n .subscribe<CancelDrawingCommand>(CancelDrawingCommand.ID)\n .pipe(first())\n .subscribe(() => {\n ev.finish(null);\n this.clearInteraction(layer);\n });\n }\n\n private clearInteraction(layer: Layer<Source<Geometry>> | null): void {\n if (!!this.drawInteraction) {\n this.map?.removeInteraction(this.drawInteraction);\n layer?.setSource(new Source({}));\n }\n setTimeout(() => this.postboy.fire(new DrawingFinishedEvent()), 300);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { Modify, Translate } from 'ol/interaction';\nimport { Collection, Feature, Map } from 'ol';\nimport { MapPostboyService } from '../map-postboy.service';\nimport { MapRenderedEvent } from '../../messages';\nimport { FeatureOutputFormat } from '../../models';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\nimport { Geometry } from 'ol/geom';\nimport { GeoJSON, WKT } from 'ol/format';\nimport { GetLayerQuery } from '../../messages/queries/get-layer.query';\nimport { MapConstants } from '../../models/map.constants';\nimport { Subscription } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport { Vector as Source } from 'ol/source';\nimport { CancelFeatureModificationCommand } from '../../messages/commands/cancel-feature-modification.command';\nimport { ModifyFeatureCommand } from '../../messages/commands/modify-feature.command';\n\n@Injectable()\nexport class FeatureModificationService implements IPostboyDependingService {\n private modify?: Modify;\n private translate?: Translate;\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeModification();\n this.observeMapRender();\n }\n\n private observeModification() {\n this.postboy.subscribe<ModifyFeatureCommand>(ModifyFeatureCommand.ID).subscribe((ev) => {\n this.defineLayer((l) => {\n if (!l || !this.map) {\n this.clearInteraction(l);\n return;\n }\n this.observeCancelation(ev, l);\n this.initFeature(l, ev.model.feature);\n this.addModify(ev);\n this.addDragging(ev);\n });\n });\n }\n\n private initFeature(layer: Layer<VectorSource<Geometry>>, feature: Feature<Geometry>): void {\n layer.getSource()?.clear();\n layer.getSource()?.addFeature(feature);\n }\n\n private addModify(command: ModifyFeatureCommand): void {\n this.modify = new Modify({\n features: new Collection([command.model.feature]),\n style: command.style,\n });\n this.modify.on('modifyend', () => {\n this.onModified(command);\n command.model.feature.changed();\n });\n this.map?.addInteraction(this.modify);\n }\n\n private addDragging(command: ModifyFeatureCommand): void {\n this.translate = new Translate({\n features: new Collection([command.model.feature]),\n condition: (ev) => {\n const clone = command.model.feature.clone();\n clone.getGeometry()?.scale(0.999);\n return clone.getGeometry()!.intersectsCoordinate(ev.coordinate);\n },\n });\n this.translate.on('translateend', () => this.onModified(command));\n this.map?.addInteraction(this.translate);\n }\n\n private onModified(command: ModifyFeatureCommand): void {\n command.next(\n command.format === FeatureOutputFormat.GeoJson\n ? new GeoJSON().writeFeature(command.model.feature)\n : new WKT().writeFeature(command.model.feature),\n );\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n });\n }\n\n private defineLayer(action: (layer: Layer<VectorSource<any>> | null) => void): void {\n const query = new GetLayerQuery(MapConstants.DrawingLayerId);\n query.result.subscribe((l) => action(l));\n this.postboy.fire(query);\n }\n\n private observeCancelation(ev: ModifyFeatureCommand, layer: Layer<VectorSource<any>> | null): Subscription {\n return this.postboy\n .subscribe(CancelFeatureModificationCommand.ID)\n .pipe(first())\n .subscribe(() => {\n ev.finish(null);\n this.clearInteraction(layer);\n });\n }\n\n private clearInteraction(layer: Layer<Source<Geometry>> | null): void {\n if (this.modify) this.map?.removeInteraction(this.modify);\n if (this.translate) this.map?.removeInteraction(this.translate);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Map } from 'ol';\nimport { MapPostboyService } from '../map-postboy.service';\nimport { AddControlCommand, MapRenderedEvent, RemoveControlCommand } from '../../messages';\nimport { IPostboyDependingService } from '@artstesh/postboy';\nimport { first } from 'rxjs/operators';\n\n@Injectable()\nexport class ControlsService implements IPostboyDependingService {\n private map?: Map;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeMapRender();\n }\n\n private observeMapRender() {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(first())\n .subscribe((m) => {\n this.map = m.map;\n this.observeAdding();\n this.observeRemoving();\n });\n }\n\n private observeAdding() {\n this.postboy.subscribe<AddControlCommand>(AddControlCommand.ID).subscribe((c) => this.map?.addControl(c.item));\n }\n\n private observeRemoving() {\n this.postboy\n .subscribe<RemoveControlCommand>(RemoveControlCommand.ID)\n .subscribe((c) => this.map?.removeControl(c.item));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MapPostboyService } from './map-postboy.service';\nimport { MapRenderedEvent } from '../messages';\nimport { AddLayerCommand } from '../messages/commands/add-layer.command';\nimport { PlaceLayerFeaturesCommand } from '../messages/commands/place-layer-features.command';\nimport { RemoveLayerCommand } from '../messages/commands/remove-layer.command';\nimport { AddTileCommand } from '../messages/commands/add-tile.command';\nimport { RemoveTileCommand } from '../messages/commands/remove-tile.command';\nimport { PostboyAbstractRegistrator } from '@artstesh/postboy';\nimport { MapManagementService } from './map-management.service';\nimport { MapStateService } from './map-state.service';\nimport { MapClickService } from './map-click.service';\nimport { MapClickEvent } from '../messages/events/map-click.event';\nimport { CloseTooltipCommand } from '../messages/commands/close-tooltip.command';\nimport { MapFeatureService } from './map-feature.service';\nimport { FitToFeaturesCommand } from '../messages/commands/fit-to-features.command';\nimport { MapMoveEndEvent } from '../messages/events/map-move-end.event';\nimport { CancelDrawingCommand } from '../messages/commands/cancel-drawing.command';\nimport { StartDrawingCommand } from '../messages/commands/start-drawing.command';\nimport { DrawingService } from './drawing/drawing.service';\nimport { GetLayerQuery } from '../messages/queries/get-layer.query';\nimport { DrawingFinishedEvent } from '../messages/events/drawing-finished.event';\nimport { DrawingGenerationService } from './drawing/drawing-generation.service';\nimport { FeatureService } from './feature.service';\nimport { GetFeaturesInAreaQuery } from '../messages/queries/get-features-in-area.query';\nimport { DrawSelectionAreaCommand } from '../messages/commands/draw-selection-area.command';\nimport { FilterFeaturesInAreaExecutor } from '../messages/executors/filter-features-in-area.executor';\nimport { GenerateDrawExecutor } from '../messages/executors/generate-draw.executor';\nimport { FeatureModificationService } from './drawing/feature-modification.service';\nimport { CancelFeatureModificationCommand } from '../messages/commands/cancel-feature-modification.command';\nimport { ModifyFeatureCommand } from '../messages/commands/modify-feature.command';\nimport { GenerateZoomControlExecutor } from '../messages/executors/generate-zoom-control.executor';\nimport { ZoomControlFactory } from '../map-plate/controls/map-control-zoom/zoom-control.factory';\nimport { RemoveControlCommand } from '../messages/commands/remove-control.command';\nimport { AddControlCommand } from '../messages/commands/add-control.command';\nimport { ControlsService } from './controls/controls.service';\nimport { SetMapCenterCommand } from '../messages/commands/set-map-center.command';\nimport { CalculateAreaExecutor } from '../messages/executors/calculate-area.executor';\n\n@Injectable()\nexport class MessageRegistratorService extends PostboyAbstractRegistrator {\n constructor(\n service: MapPostboyService,\n management: MapManagementService,\n state: MapStateService,\n mapFeature: MapFeatureService,\n interaction: MapClickService,\n drawing: DrawingService,\n featureModification: FeatureModificationService,\n controls: ControlsService,\n ) {\n super(service);\n this.registerServices([management, state, interaction, mapFeature, drawing, featureModification, controls]);\n }\n\n protected _up(): void {\n this.registerReplay(MapRenderedEvent.ID);\n this.registerReplay(PlaceLayerFeaturesCommand.ID);\n this.registerReplay(RemoveControlCommand.ID);\n this.registerReplay(AddControlCommand.ID);\n this.registerReplay(SetMapCenterCommand.ID);\n this.registerSubject(AddLayerCommand.ID);\n this.registerSubject(RemoveLayerCommand.ID);\n this.registerSubject(AddTileCommand.ID);\n this.registerSubject(RemoveTileCommand.ID);\n this.registerSubject(MapClickEvent.ID);\n this.registerSubject(CloseTooltipCommand.ID);\n this.registerSubject(FitToFeaturesCommand.ID);\n this.registerSubject(MapMoveEndEvent.ID);\n this.registerSubject(CancelDrawingCommand.ID);\n this.registerSubject(StartDrawingCommand.ID);\n this.registerSubject(GetLayerQuery.ID);\n this.registerSubject(DrawingFinishedEvent.ID);\n this.registerSubject(GetFeaturesInAreaQuery.ID);\n this.registerSubject(DrawSelectionAreaCommand.ID);\n this.registerSubject(CancelFeatureModificationCommand.ID);\n this.registerSubject(ModifyFeatureCommand.ID);\n this.setExecutors();\n }\n\n private setExecutors() {\n this.registerExecutor(FilterFeaturesInAreaExecutor.ID, (e: FilterFeaturesInAreaExecutor) =>\n FeatureService.filterFeaturesInArea(e),\n );\n this.registerExecutor(CalculateAreaExecutor.ID, (e: CalculateAreaExecutor) =>\n FeatureService.calculateArea(e.polygon?.feature?.getGeometry()),\n );\n this.registerExecutor(GenerateDrawExecutor.ID, (e: GenerateDrawExecutor) => DrawingGenerationService.getDraw(e));\n this.registerExecutor(GenerateZoomControlExecutor.ID, (e: GenerateZoomControlExecutor) =>\n ZoomControlFactory.build(e.settings),\n );\n }\n}\n","export class TileLayerSettings {\n maxZoom: number = 19;\n minZoom: number = 0;\n opacity: number = 0.6;\n url: string = '';\n projection: string = 'EPSG:3857';\n\n public static copy(model: TileLayerSettings): TileLayerSettings {\n const result = new TileLayerSettings();\n result.maxZoom = model.maxZoom;\n result.minZoom = model.minZoom;\n result.projection = model.projection;\n result.opacity = model.opacity;\n result.url = model.url;\n return result;\n }\n\n setUrl(url: string): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, url });\n }\n\n setMaxZoom(maxZoom: number): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, maxZoom });\n }\n\n setMinZoom(minZoom: number): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, minZoom });\n }\n\n setOpacity(opacity: number): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, opacity });\n }\n\n setProjection(projection: string): TileLayerSettings {\n return TileLayerSettings.copy({ ...this, projection });\n }\n\n public isSame(model: TileLayerSettings): boolean {\n if (this.maxZoom !== model.maxZoom) return false;\n if (this.minZoom !== model.minZoom) return false;\n if (this.url !== model.url) return false;\n if (this.projection !== model.projection) return false;\n if (this.opacity !== model.opacity) return false;\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { XYZ } from 'ol/source';\nimport { TileLayerSettings } from './tile-layer.settings';\nimport { TileCoord } from 'ol/tilecoord';\nimport { get } from 'ol/proj';\nimport TileLayer from 'ol/layer/Tile';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TileLayerFactory {\n public build(settings: TileLayerSettings): TileLayer<XYZ> {\n const source = new XYZ({\n tileSize: 256,\n maxZoom: settings.maxZoom || 14,\n minZoom: settings.minZoom || 1,\n projection: get(settings.projection)!,\n tileUrlFunction: this.getTileFunc(settings),\n crossOrigin: 'Anonymous',\n });\n return new TileLayer({ source, opacity: settings.opacity });\n }\n\n private getTileFunc(settings: TileLayerSettings): (tileCoord: TileCoord) => string {\n return (tileCoord) => {\n const zoom = tileCoord[0];\n const x = tileCoord[1];\n const y = tileCoord[2];\n const normalizedCoord = this.getNormalizedCoord({ x: x, y: y }, zoom);\n const bound = 1 << zoom;\n return settings.url\n .replace('{x}', String(normalizedCoord?.x || x))\n .replace('{z}', String(zoom))\n .replace('{y}', String(bound - (normalizedCoord?.y || y) - 1));\n };\n }\n\n private getNormalizedCoord(coord: { x: number; y: number }, zoom: number) {\n const y = coord.y;\n let x = coord.x;\n const tileRange = 1 << zoom;\n if (y < 0 || y >= tileRange) return null;\n if (x < 0 || x >= tileRange) x = ((x % tileRange) + tileRange) % tileRange;\n return { x: x, y: y };\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { XYZ } from 'ol/source';\nimport TileLayer from 'ol/layer/Tile';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { TileLayerFactory } from './tile-layer.factory';\nimport { MapRenderedEvent } from '../../../messages';\nimport { filter, first } from 'rxjs/operators';\nimport { TileLayerSettings } from './tile-layer.settings';\nimport { AddTileCommand } from '../../../messages/commands/add-tile.command';\nimport { RemoveTileCommand } from '../../../messages/commands/remove-tile.command';\n\n@Component({\n selector: 'art-tile-layer',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TileLayerComponent extends DestructibleComponent {\n public layer?: TileLayer<XYZ>;\n\n constructor(private postboy: MapPostboyService, private factory: TileLayerFactory) {\n super();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe((m) => this.initLayer());\n }\n\n _settings: TileLayerSettings = new TileLayerSettings();\n\n @Input() set settings(value: TileLayerSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.initLayer();\n }\n\n onDestroy = () => this.removeLayer();\n\n private initLayer() {\n this.removeLayer();\n this.layer = this.factory.build(this._settings);\n this.postboy.fire(new AddTileCommand(this.layer));\n }\n\n private removeLayer() {\n if (this.layer) this.postboy.fire(new RemoveTileCommand(this.layer));\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport TileLayer from 'ol/layer/Tile';\nimport TileSource from 'ol/source/Tile';\nimport OSM from 'ol/source/OSM';\nimport { Map } from 'ol';\n\n@Component({\n selector: 'art-osm-tile-layer',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OsmTileLayerComponent extends DestructibleComponent implements OnInit {\n public layer?: TileLayer<TileSource>;\n\n constructor() {\n super();\n }\n\n private _url: string = '';\n\n @Input() set url(value: string | undefined) {\n if (!value || this._url === value) return;\n this._url = value;\n this.initLayer();\n }\n\n private _map?: Map;\n\n @Input() set map(value: Map | undefined) {\n if (!value || this._map === value) return;\n this._map = value;\n this.initLayer();\n }\n\n ngOnInit(): void {}\n\n ngOnDestroy(): void {\n if (this.layer) {\n this._map?.removeLayer(this.layer);\n }\n // @ts-ignore\n this.layer?.setMap(null);\n }\n\n private initLayer(): void {\n if (!this._url || !this._map) return;\n if (this.layer) this._map.removeLayer(this.layer);\n this.layer = new TileLayer({\n source: new OSM({\n url: this._url,\n }),\n });\n this.layer.set('name', 'osm-tile-layer');\n this._map.addLayer(this.layer);\n }\n}\n","import Style, { StyleFunction } from 'ol/style/Style';\nimport { IdGenerator } from '../../../common/id.generator';\n\n/**\n * A layer that is responsible for showing and styling main features on the map, such as markers and polygons\n */\nexport class FeatureLayerSettings {\n /**\n * The identifier of the field, it is autogenerated by default, but can be set manually\n */\n name: string = IdGenerator.get();\n /**\n * The priority of showing - layers with higher zIndex cover others in case of collisions\n */\n zIndex: number = 1;\n /**\n * The maximum zoom at which the layer is visible. 19 by default\n */\n maxZoom: number = 19;\n /**\n * The minimum zoom at which the layer is visible. 0 by default\n */\n minZoom: number = 0;\n /**\n * The styling definition of layer's features. The easiest way is to use {@link PolygonStyleHelper},{@link MarkerStyleHelper}\n */\n style?: Style | StyleFunction;\n\n /**\n * Creates a clone of the existing settings\n * @param model\n */\n public static copy(model: FeatureLayerSettings): FeatureLayerSettings {\n const result = new FeatureLayerSettings();\n result.name = model.name;\n result.maxZoom = model.maxZoom;\n result.minZoom = model.minZoom;\n result.zIndex = model.zIndex;\n result.style = model.style;\n return result;\n }\n\n /**\n Setter for {@link FeatureLayerSettings.zIndex}\n * @param zIndex\n */\n setZIndex(zIndex: number): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, zIndex });\n }\n\n /**\n * Setter for {@link FeatureLayerSettings.name}\n * @param name\n */\n setName(name: string): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, name });\n }\n\n /**\n * Setter for {@link FeatureLayerSettings.maxZoom}\n * @param maxZoom\n */\n setMaxZoom(maxZoom: number): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, maxZoom });\n }\n\n /**\n * Setter for {@link FeatureLayerSettings.minZoom}\n * @param minZoom\n */\n setMinZoom(minZoom: number): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, minZoom });\n }\n\n /**\n * Setter for {@link FeatureLayerSettings.style}\n * @param style\n */\n setStyle(style: Style | StyleFunction): FeatureLayerSettings {\n return FeatureLayerSettings.copy({ ...this, style });\n }\n\n /**\n * Checks if the model has the same content\n * @param model - the object to compare\n */\n public isSame(model: FeatureLayerSettings): boolean {\n if (this.maxZoom !== model.maxZoom) return false;\n if (this.minZoom !== model.minZoom) return false;\n if (this.zIndex !== model.zIndex) return false;\n if (this.name !== model.name) return false;\n if (this.style !== model.style) return false;\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FeatureLayerSettings } from './feature-layer.settings';\nimport { Vector as Source } from 'ol/source';\nimport { Vector as Layer } from 'ol/layer';\nimport VectorSource from 'ol/source/Vector';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FeatureLayerFactory {\n public build(settings: FeatureLayerSettings): Layer<VectorSource<any>> {\n const source = new Source({});\n const layer = new Layer({\n source: source,\n maxZoom: settings.maxZoom,\n minZoom: settings.minZoom,\n zIndex: settings.zIndex,\n });\n if (settings.style) layer.setStyle(settings.style);\n layer.set('name', settings.name);\n return layer;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MapRenderedEvent } from '../../../messages';\nimport VectorSource from 'ol/source/Vector';\nimport { Vector as Layer } from 'ol/layer';\nimport { FeatureLayerSettings } from './feature-layer.settings';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { AddLayerCommand } from '../../../messages/commands/add-layer.command';\nimport { filter, first } from 'rxjs/operators';\nimport { RemoveLayerCommand } from '../../../messages/commands/remove-layer.command';\nimport { FeatureLayerFactory } from './feature-layer.factory';\n\n@Component({\n selector: 'art-feature-layer',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FeatureLayerComponent extends DestructibleComponent implements OnInit {\n public layer: Layer<VectorSource<any>> | null = null;\n _settings: FeatureLayerSettings = new FeatureLayerSettings();\n\n constructor(private postboy: MapPostboyService, private factory: FeatureLayerFactory) {\n super();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe((m) => this.initLayer());\n }\n\n @Input() set settings(value: FeatureLayerSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.initLayer();\n }\n\n onDestroy = () => this.removeLayer();\n\n private initLayer() {\n this.removeLayer();\n this.layer = this.factory.build(this._settings);\n this.postboy.fire(new AddLayerCommand(this.layer));\n }\n\n private removeLayer() {\n if (this.layer) this.postboy.fire(new RemoveLayerCommand(this.layer));\n }\n}\n","import { IdGenerator } from '../../../common/id.generator';\nimport Style, { StyleFunction } from 'ol/style/Style';\nimport { IIdentified } from '../../../models/i-identified';\n\nexport class ClusterLayerSettings {\n name: string = IdGenerator.get();\n zIndex: number = 1;\n maxZoom: number = 19;\n minZoom: number = 0;\n distance: number = 20;\n bbox: boolean = false;\n clusterCancel: number = 14;\n style?: (features: IIdentified[]) => Style;\n\n public static copy(model: ClusterLayerSettings): ClusterLayerSettings {\n const result = new ClusterLayerSettings();\n result.name = model.name;\n result.maxZoom = model.maxZoom;\n result.minZoom = model.minZoom;\n result.zIndex = model.zIndex;\n result.bbox = model.bbox;\n result.clusterCancel = model.clusterCancel;\n result.distance = model.distance;\n result.style = model.style;\n return result;\n }\n\n setZIndex(zIndex: number): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, zIndex });\n }\n\n setDistance(distance: number): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, distance });\n }\n\n setName(name: string): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, name });\n }\n\n setMaxZoom(maxZoom: number): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, maxZoom });\n }\n\n setMinZoom(minZoom: number): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, minZoom });\n }\n\n setClusterCancel(clusterCancel: number): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, clusterCancel });\n }\n\n setBbox(bbox: boolean): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, bbox });\n }\n\n setStyle(style: (features: IIdentified[]) => Style | StyleFunction): ClusterLayerSettings {\n return ClusterLayerSettings.copy({ ...this, style });\n }\n\n public isSame(model: ClusterLayerSettings): boolean {\n if (this.maxZoom !== model.maxZoom) return false;\n if (this.minZoom !== model.minZoom) return false;\n if (this.zIndex !== model.zIndex) return false;\n if (this.name !== model.name) return false;\n if (this.distance !== model.distance) return false;\n if (this.clusterCancel !== model.clusterCancel) return false;\n if (this.bbox !== model.bbox) return false;\n if (this.style !== model.style) return false;\n return true;\n }\n}\n","import { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MapClickEvent, MapRenderedEvent } from '../../../messages';\nimport { Vector as Layer } from 'ol/layer';\nimport Cluster from 'ol/source/Cluster';\nimport { ClusterLayerSettings } from './cluster-layer.settings';\nimport { FitToFeaturesCommand } from '../../../messages/commands/fit-to-features.command';\nimport { MapMoveEndEvent } from '../../../messages/events/map-move-end.event';\nimport { auditTime } from 'rxjs/operators';\nimport { combineLatest } from 'rxjs';\nimport { Map } from 'ol';\n\nexport class ClusterLayerManager {\n constructor(\n private settings: ClusterLayerSettings,\n public readonly layer: Layer<Cluster>,\n private postboy: MapPostboyService,\n ) {\n this.observeClick();\n this.observeMapMovement();\n }\n\n private observeMapMovement() {\n combineLatest([\n this.postboy.subscribe<MapMoveEndEvent>(MapMoveEndEvent.ID).pipe(auditTime(250)),\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID),\n ]).subscribe(([movement, renderEvent]) => {\n this.checkClusterNecessity(renderEvent.map);\n });\n }\n\n private observeClick() {\n this.postboy.subscribe<MapClickEvent>(MapClickEvent.ID).subscribe((m) => {\n if ((m.features[this.settings.name]?.length ?? 0) > 1) {\n this.postboy.fire(new FitToFeaturesCommand(m.features[this.settings.name], -1));\n }\n });\n }\n\n private checkClusterNecessity(map: Map): void {\n let zoom = map.getView().getZoom() ?? 0;\n const distance = zoom > this.settings.clusterCancel ? 0 : this.settings.distance;\n this.layer?.getSource()?.setDistance(distance);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ClusterLayerSettings } from './cluster-layer.settings';\nimport { Vector as Source } from 'ol/source';\nimport { Vector as Layer } from 'ol/layer';\nimport { bbox } from 'ol/loadingstrategy';\nimport Polygon, { fromExtent } from 'ol/geom/Polygon';\nimport Cluster from 'ol/source/Cluster';\nimport { Geometry, Point } from 'ol/geom';\nimport { ClusterLayerManager } from './cluster-layer.manager';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { StyleFunction } from 'ol/style/Style';\nimport { Feature } from 'ol';\nimport { MapConstants } from '../../../models/map.constants';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ClusterLayerFactory {\n public build(settings: ClusterLayerSettings, postboy: MapPostboyService): ClusterLayerManager {\n const source = new Source({\n strategy: settings.bbox ? bbox : undefined,\n });\n const cluster = new Cluster({\n distance: settings.distance,\n source: source,\n geometryFunction: (feature) => {\n const geom = feature.getGeometry();\n if (geom?.getType() == 'Point') {\n return geom as Point;\n } else if (geom?.getType() == 'Polygon') {\n return (geom as Polygon)?.getInteriorPoint();\n } else if (geom?.getType() == 'MultiPolygon') {\n return fromExtent(geom.getExtent())?.getInteriorPoint();\n }\n return undefined as any;\n },\n });\n const layer = new Layer({\n source: cluster,\n maxZoom: settings.maxZoom || undefined,\n minZoom: settings.minZoom || undefined,\n zIndex: settings.zIndex || 0,\n });\n layer.setStyle(this.styleFunc(settings));\n layer.set('name', settings.name);\n return new ClusterLayerManager(settings, layer, postboy);\n }\n\n styleFunc(settings: ClusterLayerSettings): StyleFunction {\n return (feature) => {\n const features = feature.get('features') as Feature<Geometry>[];\n if (!settings.style) return undefined;\n return settings.style(features.map((f) => ({ id: f.getId()!, ...f.get(MapConstants.FeatureInfo) })));\n };\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MapRenderedEvent } from '../../../messages';\nimport { filter, first } from 'rxjs/operators';\nimport { AddLayerCommand } from '../../../messages/commands/add-layer.command';\nimport { RemoveLayerCommand } from '../../../messages/commands/remove-layer.command';\nimport { ClusterLayerManager } from './cluster-layer.manager';\nimport { ClusterLayerSettings } from './cluster-layer.settings';\nimport { ClusterLayerFactory } from './cluster-layer-factory.service';\n\n@Component({\n selector: 'art-cluster-layer',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ClusterLayerComponent extends DestructibleComponent implements OnInit {\n public manager: ClusterLayerManager | null = null;\n _settings: ClusterLayerSettings = new ClusterLayerSettings();\n\n constructor(private postboy: MapPostboyService, private factory: ClusterLayerFactory) {\n super();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe((m) => this.initLayer());\n }\n\n @Input() set settings(value: ClusterLayerSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.initLayer();\n }\n\n onDestroy = () => this.removeLayer();\n\n private initLayer() {\n this.removeLayer();\n this.manager = this.factory.build(this._settings, this.postboy);\n this.postboy.fire(new AddLayerCommand(this.manager.layer));\n }\n\n private removeLayer() {\n if (this.manager?.layer) this.postboy.fire(new RemoveLayerCommand(this.manager.layer));\n }\n}\n","import { Injectable } from '@angular/core';\nimport Map from 'ol/Map';\nimport { MapSettings } from '../models';\nimport View from 'ol/View';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MapPlateFactory {\n public build(settings: MapSettings): Map {\n return new Map({\n controls: [],\n view: new View({\n center: settings?.center || [0, 0],\n zoom: settings?.zoom || 4,\n minZoom: settings?.minZoom || 0,\n maxZoom: settings?.maxZoom || 19,\n }),\n layers: [],\n });\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, OnInit } from '@angular/core';\nimport { MapLyrsLabel, MapSettings } from '../models';\nimport Map from 'ol/Map';\nimport { useGeographic } from 'ol/proj';\nimport { DestructibleComponent } from '../common/destructible.component';\nimport { MessageRegistratorService } from '../services/message-registrator.service';\nimport { MapPostboyService } from '../services/map-postboy.service';\nimport { MapRenderedEvent } from '../messages';\nimport { MapStateService } from '../services/map-state.service';\nimport { MapManagementService } from '../services/map-management.service';\nimport { MapPlateFactory } from './map-plate.factory.service';\nimport { MapClickService } from '../services/map-click.service';\nimport { MapFeatureService } from '../services/map-feature.service';\nimport { FeatureLayerSettings } from './layers';\nimport { MapConstants } from '../models/map.constants';\nimport { DrawingService } from '../services/drawing/drawing.service';\nimport { DrawingGenerationService } from '../services/drawing/drawing-generation.service';\nimport { FeatureService } from '../services/feature.service';\nimport { FeatureModificationService } from '../services/drawing/feature-modification.service';\nimport { ControlsService } from '../services/controls/controls.service';\n\n@Component({\n selector: 'art-map-plate',\n templateUrl: './map-plate.component.html',\n styleUrls: ['./map-plate.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n MessageRegistratorService,\n MapStateService,\n MapManagementService,\n MapClickService,\n MapFeatureService,\n DrawingService,\n DrawingGenerationService,\n FeatureService,\n FeatureModificationService,\n ControlsService,\n ],\n})\nexport class MapPlateComponent extends DestructibleComponent implements OnInit {\n map!: Map;\n osmUrl = '';\n\n constructor(\n private elementRef: ElementRef,\n private postboy: MapPostboyService,\n private mapFactory: MapPlateFactory,\n private registrator: MessageRegistratorService,\n private detector: ChangeDetectorRef,\n ) {\n super();\n registrator.up();\n }\n\n _settings: MapSettings = new MapSettings();\n drawingLayerSettings = new FeatureLayerSettings().setName(MapConstants.DrawingLayerId);\n\n @Input() set settings(value: MapSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.setOsm();\n }\n\n ngOnInit(): void {\n useGeographic();\n this.map = this.mapFactory.build(this._settings);\n this.map.setTarget(this.elementRef.nativeElement);\n this.detector.detectChanges();\n this.map.once('postrender', () => {\n this.map.updateSize();\n this.postboy.fire(new MapRenderedEvent(this.map));\n });\n this.setOsm();\n }\n\n private setOsm(): void {\n if (!this.map) return;\n this.osmUrl = `https://mt{0-3}.google.com/vt/lyrs=${MapLyrsLabel.get(this._settings.lyrs)}&hl=${\n this._settings.language\n }&x={x}&y={y}&z={z}`;\n this.detector.detectChanges();\n this.map.updateSize();\n }\n\n onDestroy = () => {\n this.registrator.down();\n };\n}\n","<ng-content></ng-content>\r\n<art-osm-tile-layer *ngIf=\"osmUrl && map\" [map]=\"map\" [url]=\"osmUrl\"></art-osm-tile-layer>\r\n<art-feature-layer *ngIf=\"map\" [settings]=\"drawingLayerSettings\"></art-feature-layer>\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MarkerModel } from '../../../models/marker-model';\nimport { PlaceLayerFeaturesCommand } from '../../../messages/commands/place-layer-features.command';\nimport { MapRenderedEvent } from '../../../messages';\nimport { filter, first } from 'rxjs/operators';\n\n@Component({\n selector: 'art-markers',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MarkersComponent extends DestructibleComponent implements OnInit {\n @Input() layerName = '';\n\n constructor(private postboy: MapPostboyService) {\n super();\n }\n\n _markers: MarkerModel[] = [];\n\n @Input() set markers(value: MarkerModel[]) {\n this._markers = value ?? [];\n this.putMarkers();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe(() => this.putMarkers());\n }\n\n private putMarkers(): void {\n if (!this._markers) return;\n this.postboy.fire(\n new PlaceLayerFeaturesCommand(\n this.layerName,\n this._markers.map((m) => m.feature),\n ),\n );\n }\n}\n","import { MapClickEvent } from '../../../messages';\nimport { IdGenerator } from '../../../common/id.generator';\n\nexport class TooltipSettings {\n public readonly id: string;\n containerClass: string = 'custom-tooltip-class';\n show: (ev: MapClickEvent) => boolean = (e) => true;\n\n public constructor(id?: string) {\n this.id = id ?? IdGenerator.get();\n }\n\n public static copy(model: TooltipSettings): TooltipSettings {\n const result = new TooltipSettings(model.id);\n result.show = model.show;\n result.containerClass = model.containerClass;\n return result;\n }\n\n setShow(show: (ev: MapClickEvent) => boolean): TooltipSettings {\n return TooltipSettings.copy({ ...this, show });\n }\n\n setClass(containerClass: string): TooltipSettings {\n return TooltipSettings.copy({ ...this, containerClass });\n }\n\n public isSame(model: TooltipSettings): boolean {\n if (this.show !== model.show) return false;\n if (this.containerClass !== model.containerClass) return false;\n if (this.id !== model.id) return false;\n return true;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { TooltipSettings } from './tooltip.settings';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MapClickEvent, MapRenderedEvent } from '../../../messages';\nimport Map from 'ol/Map';\nimport { CloseTooltipCommand } from '../../../messages/commands/close-tooltip.command';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport Overlay, { Options as OverlayOptions } from 'ol/Overlay';\n\n@Component({\n selector: 'art-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TooltipComponent extends DestructibleComponent implements OnInit {\n @ViewChild('tip') container!: ElementRef<HTMLElement>;\n _settings: TooltipSettings = new TooltipSettings();\n private map?: Map;\n overlay?: Overlay;\n show = false;\n\n @Input() set settings(value: TooltipSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.detector.detectChanges();\n }\n constructor(private postboy: MapPostboyService, private detector: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit(): void {\n this.subs.push(this.observeMapRender());\n this.subs.push(this.observeMapClick());\n this.subs.push(this.observeClose());\n }\n\n private observeMapClick(): Subscription {\n return this.postboy.subscribe<MapClickEvent>(MapClickEvent.ID).subscribe((ev) => {\n this._settings.show(ev) ? this.addOverlay(ev.coordinates) : this.removeOverlay();\n });\n }\n\n private observeClose(): Subscription {\n return this.postboy\n .subscribe<CloseTooltipCommand>(CloseTooltipCommand.ID)\n .pipe(filter((ev) => ev.tooltipId === this._settings.id))\n .subscribe(() => this.removeOverlay());\n }\n\n private observeMapRender() {\n return this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n });\n }\n\n private removeOverlay = () => {\n !!this.overlay && this.map?.removeOverlay(this.overlay);\n this.show = false;\n };\n\n addOverlay(coordinates: number[]): void {\n this.removeOverlay();\n this.overlay = new Overlay(this.options(coordinates));\n this.map?.addOverlay(this.overlay);\n this.show = true;\n this.detector.detectChanges();\n }\n\n options = (coordinates: number[]): OverlayOptions => {\n return {\n element: this.container?.nativeElement,\n autoPan: false,\n autoPanAnimation: { duration: 0 },\n position: coordinates,\n };\n };\n}\n","<div #tip [class]=\"['tooltip-wrapper', _settings.containerClass]\" [hidden]=\"!show\">\r\n <ng-content></ng-content>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { MapRenderedEvent } from '../../../messages';\nimport { filter, first } from 'rxjs/operators';\nimport { PlaceLayerFeaturesCommand } from '../../../messages/commands/place-layer-features.command';\nimport { PolygonModel } from '../../../models/polygon.model';\n\n@Component({\n selector: 'art-polygons',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PolygonsComponent extends DestructibleComponent implements OnInit {\n @Input() layerName = '';\n\n constructor(private postboy: MapPostboyService) {\n super();\n }\n\n _polygons: PolygonModel[] = [];\n\n @Input() set polygons(value: PolygonModel[]) {\n this._polygons = value ?? [];\n this.putPolygons();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe(() => this.putPolygons());\n }\n\n private putPolygons(): void {\n if (!this._polygons) return;\n this.postboy.fire(\n new PlaceLayerFeaturesCommand(\n this.layerName,\n this._polygons.map((m) => m.feature),\n ),\n );\n }\n}\n","export class ZoomControlSettings {\n controlClass: string = 'ol-zoom';\n zoomInClass: string = 'ol-zoom-in';\n zoomOutClass: string = 'ol-zoom-out';\n zoomInLabel: string = 'Zoom In';\n zoomOutLabel: string = 'Zoom Out';\n\n public static copy(model: ZoomControlSettings): ZoomControlSettings {\n const result = new ZoomControlSettings();\n result.controlClass = model.controlClass;\n result.zoomInClass = model.zoomInClass;\n result.zoomOutClass = model.zoomOutClass;\n result.zoomInLabel = model.zoomInLabel;\n result.zoomOutLabel = model.zoomOutLabel;\n return result;\n }\n\n public isSame(model: ZoomControlSettings): boolean {\n if (this.zoomInClass !== model.zoomInClass) return false;\n if (this.zoomOutClass !== model.zoomOutClass) return false;\n if (this.zoomInLabel !== model.zoomInLabel) return false;\n if (this.controlClass !== model.controlClass) return false;\n if (this.zoomOutLabel !== model.zoomOutLabel) return false;\n return true;\n }\n\n setZoomInLabel(zoomInLabel: string): ZoomControlSettings {\n return ZoomControlSettings.copy({ ...this, zoomInLabel });\n }\n\n setZoomOutClass(zoomOutClass: string): ZoomControlSettings {\n return ZoomControlSettings.copy({ ...this, zoomOutClass });\n }\n\n setZoomInClass(zoomInClass: string): ZoomControlSettings {\n return ZoomControlSettings.copy({ ...this, zoomInClass });\n }\n\n setZoomOutLabel(zoomOutLabel: string): ZoomControlSettings {\n return ZoomControlSettings.copy({ ...this, zoomOutLabel });\n }\n\n setControlClass(controlClass: string): ZoomControlSettings {\n return ZoomControlSettings.copy({ ...this, controlClass });\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { MapPostboyService } from '../../../services/map-postboy.service';\nimport { DestructibleComponent } from '../../../common/destructible.component';\nimport Map from 'ol/Map';\nimport { ZoomControlSettings } from './zoom-control.settings';\nimport { MapRenderedEvent } from '../../../messages';\nimport { filter, first } from 'rxjs/operators';\nimport { Zoom } from 'ol/control';\nimport { GenerateZoomControlExecutor } from '../../../messages/executors/generate-zoom-control.executor';\n\n@Component({\n selector: 'art-map-control-zoom',\n template: '',\n styleUrls: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MapControlZoomComponent extends DestructibleComponent implements OnInit {\n private _settings: ZoomControlSettings = new ZoomControlSettings();\n private map?: Map;\n private control?: Zoom;\n\n @Input() set settings(value: ZoomControlSettings | undefined) {\n if (!value || this._settings.isSame(value)) return;\n this._settings = value;\n this.setControl();\n }\n\n constructor(private postboy: MapPostboyService) {\n super();\n }\n\n ngOnInit(): void {\n this.postboy\n .subscribe<MapRenderedEvent>(MapRenderedEvent.ID)\n .pipe(\n filter((m) => !!m),\n first(),\n )\n .subscribe((m) => {\n this.map = m.map;\n this.setControl();\n });\n }\n\n private setControl(): void {\n if (!this.map) return;\n this.control = this.postboy.execute(new GenerateZoomControlExecutor(this._settings));\n this.map.addControl(this.control!);\n }\n\n onDestroy = () => {\n this.eliminate();\n };\n\n private eliminate = () => !!this.map && !!this.control && this.map.removeControl(this.control);\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DestructibleComponent } from './common/destructible.component';\nimport { MapPlateComponent } from './map-plate/map-plate.component';\nimport { TileLayerComponent } from './map-plate/layers/tile-layer/tile-layer.component';\nimport { OsmTileLayerComponent } from './map-plate/layers/osm-tile-layer/osm-tile-layer.component';\nimport { FeatureLayerComponent } from './map-plate/layers/feature-layer/feature-layer.component';\nimport { MarkersComponent } from './map-plate/features/markers/markers.component';\nimport { TooltipComponent } from './map-plate/tooltips/tooltip/tooltip.component';\nimport { PolygonsComponent } from './map-plate/features/polygons/polygons.component';\nimport { ClusterLayerComponent } from './map-plate/layers/cluster-layer/cluster-layer.component';\nimport { MapControlZoomComponent } from './map-plate/controls/map-control-zoom/map-control-zoom.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n DestructibleComponent,\n MapPlateComponent,\n TileLayerComponent,\n OsmTileLayerComponent,\n FeatureLayerComponent,\n MarkersComponent,\n TooltipComponent,\n PolygonsComponent,\n ClusterLayerComponent,\n MapControlZoomComponent,\n ],\n exports: [\n MapPlateComponent,\n FeatureLayerComponent,\n MarkersComponent,\n TileLayerComponent,\n TooltipComponent,\n PolygonsComponent,\n ClusterLayerComponent,\n MapControlZoomComponent,\n ],\n})\nexport class MapModule {}\n","import Style from 'ol/style/Style';\nimport { Circle, Fill, Icon, Stroke, Text } from 'ol/style';\n\nexport class MarkerStyleHelper {\n public static fromSvg(svg: string, size: [number, number] = [30, 30], zIndex = 400): Style {\n let image = new Image();\n image.src = 'data:image/svg+xml,' + escape(svg);\n return new Style({\n image: new Icon({\n img: image,\n imgSize: size,\n }),\n zIndex,\n });\n }\n\n public static circle(radius: number, fill: string, strokeColor: string, strokeWidth = 1): Style {\n return new Style({\n image: new Circle({\n radius,\n fill: new Fill({ color: fill }),\n stroke: new Stroke({ color: strokeColor, width: strokeWidth }),\n }),\n });\n }\n\n public static withText(style: Style, text: Text): Style {\n style.setText(text);\n return style;\n }\n}\n","import Style from 'ol/style/Style';\nimport { Circle, Fill, Stroke } from 'ol/style';\n\nexport class PolygonStyleHelper {\n public static simple(fill: string, stroke: string, strokeWidth: number = 1): Style {\n return new Style({\n fill: new Fill({\n color: fill,\n }),\n stroke: new Stroke({\n color: stroke,\n width: strokeWidth,\n }),\n });\n }\n public static edit(fill: string, stroke: string, strokeWidth: number = 1, pinRadius = 5): Style {\n return new Style({\n image: new Circle({\n fill: new Fill({\n color: stroke,\n }),\n radius: pinRadius,\n }),\n fill: new Fill({\n color: fill,\n }),\n stroke: new Stroke({\n color: stroke,\n width: strokeWidth,\n }),\n });\n }\n}\n","import { Fill, Text } from 'ol/style';\n\nexport class TextStyleHelper {\n public static get(text: string, font: string, color: string): Text {\n return new Text({\n text: text,\n font: font,\n textAlign: 'center',\n fill: new Fill({\n color: color,\n }),\n });\n }\n}\n","import { Feature } from 'ol';\nimport { Circle, Geometry, LineString } from 'ol/geom';\nimport { FeatureOutputFormat } from '../models';\nimport { GeoJSON, WKT } from 'ol/format';\nimport Polygon from 'ol/geom/Polygon';\nimport { Coordinate } from 'ol/coordinate';\nimport { transform } from 'ol/proj';\nimport { METERS_PER_UNIT } from 'ol/proj/epsg4326';\n\nexport class StringifyFeatureHelper {\n public static polygon(feature: Feature<Geometry>, format: FeatureOutputFormat = FeatureOutputFormat.GeoJson): string {\n return format === FeatureOutputFormat.GeoJson\n ? new GeoJSON().writeFeature(feature)\n : new WKT().writeFeature(feature);\n }\n public static circle(feature: Feature<Geometry>, format: FeatureOutputFormat = FeatureOutputFormat.GeoJson): string {\n // const clone = feature.clone();\n // clone.setGeometry(fromCircle(feature.getGeometry()! as Circle));\n const tetemp = feature.getGeometryName();\n const circle = feature.getGeometry()! as Circle;\n // const temp = StringifyFeatureHelper.drawCircle(circle.getCenter(), circle.getRadius());\n const ttt = feature.getGeometry()!.getExtent()!;\n const eastPoint = [ttt[2], (ttt[1] + ttt[3]) / 2];\n const aaa = [\n ...transform([ttt[0], ttt[1]], 'EPSG:4326', 'EPSG:3857'),\n ...transform([ttt[2], ttt[3]], 'EPSG:4326', 'EPSG:3857'),\n ];\n const radius = (aaa[2] - aaa[0]) / 2;\n const radius2 = new LineString([circle.getCenter(), eastPoint]).getLength();\n\n const polygonGeom = new Polygon(StringifyFeatureHelper.drawCircle(circle.getCenter(), radius));\n\n // var edgeCoordinate = [circle.getCenter()[0] + radius, circle.getCenter()[1]];\n // var wgs84Sphere = new Sphere(6378137);\n return StringifyFeatureHelper.polygon(new Feature<Geometry>(polygonGeom), format);\n // const rad = circle.getRadius();\n // const degrees = 180 / Math.PI; // radians to degrees\n // const radians = Math.PI / 180; // degrees to radians\n // const rlat = rad * degrees * 1000;\n // const rlng = rad * radians;\n // return StringifyFeatureHelper.polygon(new Feature<Geometry>(circular(circle.getCenter(),circle.getRadius() * METERS_PER_UNIT)), format);\n }\n\n private static drawCircle(point: number[], radius: number): Coordinate[][] {\n const tetetemp = transform(point, 'EPSG:4326', 'EPSG:3857');\n // const tetetemp = point;\n const radians = Math.PI / 180; // degrees to radians\n const degrees = 180 / Math.PI; // radians to degrees\n const earthsradius = 6378137.0;\n const rlat = (radius / earthsradius) * degrees;\n const rlng = rlat / Math.cos(tetetemp[1] * radians);\n const extp: number[][] = [];\n for (let i = 0; i <= 32; i++) {\n const theta = Math.PI * (i / 16);\n extp.push([\n tetetemp[0] + rlng * Math.cos(theta) * METERS_PER_UNIT,\n tetetemp[1] + rlat * Math.sin(theta) * METERS_PER_UNIT,\n ]);\n }\n return [extp.map((e) => transform(e, 'EPSG:3857', 'EPSG:4326'))];\n }\n}\n","/*\n * Public API Surface of maps\n */\n\nexport * from './map.module';\nexport * from './models/index';\nexport * from './map-plate/map-plate.component';\nexport * from './services/map-postboy.service';\nexport * from './messages/index';\nexport * from './map-plate/layers/index';\nexport * from './map-plate/features/index';\nexport * from './services/map-postboy.service';\nexport * from './services/message-registrator.service';\nexport * from './helpers/index';\nexport * from './map-plate/controls/index';\nexport * from './map-plate/tooltips/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.MapPostboyService","Source","i2.MapManagementService","i3.MapStateService","i4.MapFeatureService","i5.MapClickService","i6.DrawingService","i7.FeatureModificationService","i8.ControlsService","i2.TileLayerFactory","Layer","i2.FeatureLayerFactory","i2.ClusterLayerFactory","i2.MapPlateFactory","i3.MessageRegistratorService","i5.OsmTileLayerComponent","i6.FeatureLayerComponent"],"mappings":"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"}
|