@artstesh/maps 5.1.7 → 6.0.1

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.
Files changed (338) hide show
  1. package/README.md +13 -13
  2. package/dist/README.md +24 -24
  3. package/dist/esm2022/map/common/destructible.component.mjs +18 -18
  4. package/dist/esm2022/map/common/id.generator.mjs +14 -14
  5. package/dist/esm2022/map/helpers/index.mjs +4 -4
  6. package/dist/esm2022/map/helpers/marker-style.helper.mjs +28 -28
  7. package/dist/esm2022/map/helpers/polygon-style.helper.mjs +32 -32
  8. package/dist/esm2022/map/helpers/stringify-feature.helper.mjs +58 -58
  9. package/dist/esm2022/map/helpers/text-style.helper.mjs +13 -13
  10. package/dist/esm2022/map/map-plate/controls/index.mjs +2 -2
  11. package/dist/esm2022/map/map-plate/controls/map-control-zoom/map-control-zoom.component.mjs +52 -52
  12. package/dist/esm2022/map/map-plate/controls/map-control-zoom/zoom-control.factory.mjs +12 -12
  13. package/dist/esm2022/map/map-plate/controls/map-control-zoom/zoom-control.settings.mjs +44 -44
  14. package/dist/esm2022/map/map-plate/features/index.mjs +2 -2
  15. package/dist/esm2022/map/map-plate/features/markers/markers.component.mjs +42 -42
  16. package/dist/esm2022/map/map-plate/features/polygons/polygons.component.mjs +42 -42
  17. package/dist/esm2022/map/map-plate/layers/cluster-layer/cluster-layer-factory.service.mjs +59 -59
  18. package/dist/esm2022/map/map-plate/layers/cluster-layer/cluster-layer.component.mjs +52 -52
  19. package/dist/esm2022/map/map-plate/layers/cluster-layer/cluster-layer.manager.mjs +38 -38
  20. package/dist/esm2022/map/map-plate/layers/cluster-layer/cluster-layer.settings.mjs +66 -66
  21. package/dist/esm2022/map/map-plate/layers/feature-layer/feature-layer.component.mjs +52 -52
  22. package/dist/esm2022/map/map-plate/layers/feature-layer/feature-layer.factory.mjs +28 -28
  23. package/dist/esm2022/map/map-plate/layers/feature-layer/feature-layer.settings.mjs +91 -91
  24. package/dist/esm2022/map/map-plate/layers/index.mjs +7 -7
  25. package/dist/esm2022/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.mjs +57 -57
  26. package/dist/esm2022/map/map-plate/layers/tile-layer/tile-layer.component.mjs +52 -52
  27. package/dist/esm2022/map/map-plate/layers/tile-layer/tile-layer.factory.mjs +50 -50
  28. package/dist/esm2022/map/map-plate/layers/tile-layer/tile-layer.settings.mjs +44 -44
  29. package/dist/esm2022/map/map-plate/map-plate.component.mjs +102 -102
  30. package/dist/esm2022/map/map-plate/map-plate.factory.service.mjs +27 -27
  31. package/dist/esm2022/map/map-plate/tooltips/index.mjs +2 -2
  32. package/dist/esm2022/map/map-plate/tooltips/tooltip/tooltip.component.mjs +81 -81
  33. package/dist/esm2022/map/map-plate/tooltips/tooltip/tooltip.settings.mjs +30 -30
  34. package/dist/esm2022/map/map.module.mjs +63 -63
  35. package/dist/esm2022/map/messages/commands/add-control.command.mjs +12 -12
  36. package/dist/esm2022/map/messages/commands/add-layer.command.mjs +12 -12
  37. package/dist/esm2022/map/messages/commands/add-tile.command.mjs +12 -12
  38. package/dist/esm2022/map/messages/commands/cancel-drawing.command.mjs +7 -7
  39. package/dist/esm2022/map/messages/commands/cancel-feature-modification.command.mjs +7 -7
  40. package/dist/esm2022/map/messages/commands/close-tooltip.command.mjs +12 -12
  41. package/dist/esm2022/map/messages/commands/draw-selection-area.command.mjs +16 -16
  42. package/dist/esm2022/map/messages/commands/fit-to-features.command.mjs +14 -14
  43. package/dist/esm2022/map/messages/commands/fit-to-polygons.command.mjs +14 -14
  44. package/dist/esm2022/map/messages/commands/modify-feature.command.mjs +17 -17
  45. package/dist/esm2022/map/messages/commands/place-layer-features.command.mjs +14 -14
  46. package/dist/esm2022/map/messages/commands/remove-control.command.mjs +12 -12
  47. package/dist/esm2022/map/messages/commands/remove-layer.command.mjs +12 -12
  48. package/dist/esm2022/map/messages/commands/remove-tile.command.mjs +12 -12
  49. package/dist/esm2022/map/messages/commands/set-map-center.command.mjs +25 -25
  50. package/dist/esm2022/map/messages/commands/start-drawing.command.mjs +17 -17
  51. package/dist/esm2022/map/messages/events/drawing-finished.event.mjs +10 -10
  52. package/dist/esm2022/map/messages/events/map-click.event.mjs +16 -16
  53. package/dist/esm2022/map/messages/events/map-move-end.event.mjs +14 -14
  54. package/dist/esm2022/map/messages/events/map-rendered.event.mjs +12 -12
  55. package/dist/esm2022/map/messages/executors/calculate-area.executor.mjs +12 -12
  56. package/dist/esm2022/map/messages/executors/filter-features-in-area.executor.mjs +14 -14
  57. package/dist/esm2022/map/messages/executors/generate-draw.executor.mjs +16 -16
  58. package/dist/esm2022/map/messages/executors/generate-zoom-control.executor.mjs +12 -12
  59. package/dist/esm2022/map/messages/index.mjs +14 -14
  60. package/dist/esm2022/map/messages/queries/get-features-in-area.query.mjs +14 -14
  61. package/dist/esm2022/map/messages/queries/get-layer.query.mjs +12 -12
  62. package/dist/esm2022/map/models/drawing-type.enum.mjs +7 -7
  63. package/dist/esm2022/map/models/feature-format.enum.mjs +5 -5
  64. package/dist/esm2022/map/models/i-identified.mjs +1 -1
  65. package/dist/esm2022/map/models/index.mjs +7 -7
  66. package/dist/esm2022/map/models/map-control.mjs +14 -14
  67. package/dist/esm2022/map/models/map-lyrs.enum.mjs +18 -18
  68. package/dist/esm2022/map/models/map-settings.mjs +50 -50
  69. package/dist/esm2022/map/models/map.constants.mjs +4 -4
  70. package/dist/esm2022/map/models/marker-model.mjs +28 -28
  71. package/dist/esm2022/map/models/polygon.model.mjs +32 -32
  72. package/dist/esm2022/map/public-api.mjs +15 -15
  73. package/dist/esm2022/map/services/controls/controls.service.mjs +39 -39
  74. package/dist/esm2022/map/services/drawing/drawing-generation.service.mjs +25 -25
  75. package/dist/esm2022/map/services/drawing/drawing.service.mjs +101 -101
  76. package/dist/esm2022/map/services/drawing/feature-modification.service.mjs +103 -103
  77. package/dist/esm2022/map/services/feature.service.mjs +21 -21
  78. package/dist/esm2022/map/services/map-click.service.mjs +55 -55
  79. package/dist/esm2022/map/services/map-feature.service.mjs +55 -55
  80. package/dist/esm2022/map/services/map-management.service.mjs +103 -103
  81. package/dist/esm2022/map/services/map-postboy.service.mjs +18 -18
  82. package/dist/esm2022/map/services/map-state.service.mjs +43 -43
  83. package/dist/esm2022/map/services/message-registrator.service.mjs +82 -82
  84. package/dist/esm2022/maps-components.mjs +4 -4
  85. package/dist/esm2022/public-api.mjs +4 -4
  86. package/dist/esm2022/src/map/common/destructible.component.mjs +18 -18
  87. package/dist/esm2022/src/map/common/id.generator.mjs +14 -14
  88. package/dist/esm2022/src/map/helpers/index.mjs +4 -4
  89. package/dist/esm2022/src/map/helpers/marker-style.helper.mjs +28 -28
  90. package/dist/esm2022/src/map/helpers/polygon-style.helper.mjs +32 -32
  91. package/dist/esm2022/src/map/helpers/stringify-feature.helper.mjs +58 -58
  92. package/dist/esm2022/src/map/helpers/text-style.helper.mjs +13 -13
  93. package/dist/esm2022/src/map/map-plate/controls/index.mjs +2 -2
  94. package/dist/esm2022/src/map/map-plate/controls/map-control-zoom/map-control-zoom.component.mjs +52 -52
  95. package/dist/esm2022/src/map/map-plate/controls/map-control-zoom/zoom-control.factory.mjs +12 -12
  96. package/dist/esm2022/src/map/map-plate/controls/map-control-zoom/zoom-control.settings.mjs +44 -44
  97. package/dist/esm2022/src/map/map-plate/features/index.mjs +2 -2
  98. package/dist/esm2022/src/map/map-plate/features/markers/markers.component.mjs +42 -42
  99. package/dist/esm2022/src/map/map-plate/features/polygons/polygons.component.mjs +42 -42
  100. package/dist/esm2022/src/map/map-plate/layers/cluster-layer/cluster-layer-factory.service.mjs +59 -59
  101. package/dist/esm2022/src/map/map-plate/layers/cluster-layer/cluster-layer.component.mjs +52 -52
  102. package/dist/esm2022/src/map/map-plate/layers/cluster-layer/cluster-layer.manager.mjs +38 -38
  103. package/dist/esm2022/src/map/map-plate/layers/cluster-layer/cluster-layer.settings.mjs +66 -66
  104. package/dist/esm2022/src/map/map-plate/layers/feature-layer/feature-layer.component.mjs +52 -52
  105. package/dist/esm2022/src/map/map-plate/layers/feature-layer/feature-layer.factory.mjs +28 -28
  106. package/dist/esm2022/src/map/map-plate/layers/feature-layer/feature-layer.settings.mjs +91 -91
  107. package/dist/esm2022/src/map/map-plate/layers/index.mjs +7 -7
  108. package/dist/esm2022/src/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.mjs +57 -57
  109. package/dist/esm2022/src/map/map-plate/layers/tile-layer/tile-layer.component.mjs +52 -52
  110. package/dist/esm2022/src/map/map-plate/layers/tile-layer/tile-layer.factory.mjs +50 -50
  111. package/dist/esm2022/src/map/map-plate/layers/tile-layer/tile-layer.settings.mjs +44 -44
  112. package/dist/esm2022/src/map/map-plate/map-plate.component.mjs +102 -102
  113. package/dist/esm2022/src/map/map-plate/map-plate.factory.service.mjs +27 -27
  114. package/dist/esm2022/src/map/map-plate/tooltips/index.mjs +2 -2
  115. package/dist/esm2022/src/map/map-plate/tooltips/tooltip/tooltip.component.mjs +81 -81
  116. package/dist/esm2022/src/map/map-plate/tooltips/tooltip/tooltip.settings.mjs +30 -30
  117. package/dist/esm2022/src/map/map.module.mjs +63 -63
  118. package/dist/esm2022/src/map/maps-components-src-map.mjs +4 -4
  119. package/dist/esm2022/src/map/messages/commands/add-control.command.mjs +12 -12
  120. package/dist/esm2022/src/map/messages/commands/add-layer.command.mjs +12 -12
  121. package/dist/esm2022/src/map/messages/commands/add-tile.command.mjs +12 -12
  122. package/dist/esm2022/src/map/messages/commands/cancel-drawing.command.mjs +7 -7
  123. package/dist/esm2022/src/map/messages/commands/cancel-feature-modification.command.mjs +7 -7
  124. package/dist/esm2022/src/map/messages/commands/close-tooltip.command.mjs +12 -12
  125. package/dist/esm2022/src/map/messages/commands/draw-selection-area.command.mjs +16 -16
  126. package/dist/esm2022/src/map/messages/commands/fit-to-features.command.mjs +14 -14
  127. package/dist/esm2022/src/map/messages/commands/fit-to-polygons.command.mjs +14 -14
  128. package/dist/esm2022/src/map/messages/commands/modify-feature.command.mjs +17 -17
  129. package/dist/esm2022/src/map/messages/commands/place-layer-features.command.mjs +14 -14
  130. package/dist/esm2022/src/map/messages/commands/remove-control.command.mjs +12 -12
  131. package/dist/esm2022/src/map/messages/commands/remove-layer.command.mjs +12 -12
  132. package/dist/esm2022/src/map/messages/commands/remove-tile.command.mjs +12 -12
  133. package/dist/esm2022/src/map/messages/commands/set-map-center.command.mjs +25 -25
  134. package/dist/esm2022/src/map/messages/commands/start-drawing.command.mjs +17 -17
  135. package/dist/esm2022/src/map/messages/events/drawing-finished.event.mjs +10 -10
  136. package/dist/esm2022/src/map/messages/events/map-click.event.mjs +16 -16
  137. package/dist/esm2022/src/map/messages/events/map-move-end.event.mjs +14 -14
  138. package/dist/esm2022/src/map/messages/events/map-rendered.event.mjs +12 -12
  139. package/dist/esm2022/src/map/messages/executors/calculate-area.executor.mjs +12 -12
  140. package/dist/esm2022/src/map/messages/executors/filter-features-in-area.executor.mjs +14 -14
  141. package/dist/esm2022/src/map/messages/executors/generate-draw.executor.mjs +16 -16
  142. package/dist/esm2022/src/map/messages/executors/generate-zoom-control.executor.mjs +12 -12
  143. package/dist/esm2022/src/map/messages/index.mjs +14 -14
  144. package/dist/esm2022/src/map/messages/queries/get-features-in-area.query.mjs +14 -14
  145. package/dist/esm2022/src/map/messages/queries/get-layer.query.mjs +12 -12
  146. package/dist/esm2022/src/map/models/drawing-type.enum.mjs +7 -7
  147. package/dist/esm2022/src/map/models/feature-format.enum.mjs +5 -5
  148. package/dist/esm2022/src/map/models/i-identified.mjs +1 -1
  149. package/dist/esm2022/src/map/models/index.mjs +7 -7
  150. package/dist/esm2022/src/map/models/map-control.mjs +14 -14
  151. package/dist/esm2022/src/map/models/map-lyrs.enum.mjs +18 -18
  152. package/dist/esm2022/src/map/models/map-settings.mjs +50 -50
  153. package/dist/esm2022/src/map/models/map.constants.mjs +4 -4
  154. package/dist/esm2022/src/map/models/marker-model.mjs +28 -28
  155. package/dist/esm2022/src/map/models/polygon.model.mjs +32 -32
  156. package/dist/esm2022/src/map/public-api.mjs +15 -15
  157. package/dist/esm2022/src/map/services/controls/controls.service.mjs +39 -39
  158. package/dist/esm2022/src/map/services/drawing/drawing-generation.service.mjs +25 -25
  159. package/dist/esm2022/src/map/services/drawing/drawing.service.mjs +101 -101
  160. package/dist/esm2022/src/map/services/drawing/feature-modification.service.mjs +103 -103
  161. package/dist/esm2022/src/map/services/feature.service.mjs +21 -21
  162. package/dist/esm2022/src/map/services/map-click.service.mjs +55 -55
  163. package/dist/esm2022/src/map/services/map-feature.service.mjs +55 -55
  164. package/dist/esm2022/src/map/services/map-management.service.mjs +103 -103
  165. package/dist/esm2022/src/map/services/map-postboy.service.mjs +18 -18
  166. package/dist/esm2022/src/map/services/map-state.service.mjs +43 -43
  167. package/dist/esm2022/src/map/services/message-registrator.service.mjs +82 -82
  168. package/dist/fesm2022/maps-components-src-map.mjs +2109 -2109
  169. package/dist/fesm2022/maps-components-src-map.mjs.map +1 -1
  170. package/dist/fesm2022/maps-components.mjs +2111 -2111
  171. package/dist/fesm2022/maps-components.mjs.map +1 -1
  172. package/dist/index.d.ts +5 -5
  173. package/dist/map/common/destructible.component.d.ts +10 -10
  174. package/dist/map/common/id.generator.d.ts +4 -4
  175. package/dist/map/helpers/index.d.ts +4 -4
  176. package/dist/map/helpers/marker-style.helper.d.ts +7 -7
  177. package/dist/map/helpers/polygon-style.helper.d.ts +5 -5
  178. package/dist/map/helpers/stringify-feature.helper.d.ts +8 -8
  179. package/dist/map/helpers/text-style.helper.d.ts +4 -4
  180. package/dist/map/map-plate/controls/index.d.ts +2 -2
  181. package/dist/map/map-plate/controls/map-control-zoom/map-control-zoom.component.d.ts +19 -19
  182. package/dist/map/map-plate/controls/map-control-zoom/zoom-control.factory.d.ts +5 -5
  183. package/dist/map/map-plate/controls/map-control-zoom/zoom-control.settings.d.ts +14 -14
  184. package/dist/map/map-plate/features/index.d.ts +2 -2
  185. package/dist/map/map-plate/features/markers/markers.component.d.ts +16 -16
  186. package/dist/map/map-plate/features/polygons/polygons.component.d.ts +16 -16
  187. package/dist/map/map-plate/layers/cluster-layer/cluster-layer-factory.service.d.ts +11 -11
  188. package/dist/map/map-plate/layers/cluster-layer/cluster-layer.component.d.ts +21 -21
  189. package/dist/map/map-plate/layers/cluster-layer/cluster-layer.manager.d.ts +13 -13
  190. package/dist/map/map-plate/layers/cluster-layer/cluster-layer.settings.d.ts +22 -22
  191. package/dist/map/map-plate/layers/feature-layer/feature-layer.component.d.ts +22 -22
  192. package/dist/map/map-plate/layers/feature-layer/feature-layer.factory.d.ts +9 -9
  193. package/dist/map/map-plate/layers/feature-layer/feature-layer.settings.d.ts +61 -61
  194. package/dist/map/map-plate/layers/index.d.ts +7 -7
  195. package/dist/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.d.ts +19 -19
  196. package/dist/map/map-plate/layers/tile-layer/tile-layer.component.d.ts +21 -21
  197. package/dist/map/map-plate/layers/tile-layer/tile-layer.factory.d.ts +11 -11
  198. package/dist/map/map-plate/layers/tile-layer/tile-layer.settings.d.ts +14 -14
  199. package/dist/map/map-plate/map-plate.component.d.ts +27 -27
  200. package/dist/map/map-plate/map-plate.factory.service.d.ts +8 -8
  201. package/dist/map/map-plate/tooltips/index.d.ts +2 -2
  202. package/dist/map/map-plate/tooltips/tooltip/tooltip.component.d.ts +26 -26
  203. package/dist/map/map-plate/tooltips/tooltip/tooltip.settings.d.ts +11 -11
  204. package/dist/map/map.module.d.ts +17 -17
  205. package/dist/map/messages/commands/add-control.command.d.ts +8 -8
  206. package/dist/map/messages/commands/add-layer.command.d.ts +10 -10
  207. package/dist/map/messages/commands/add-tile.command.d.ts +9 -9
  208. package/dist/map/messages/commands/cancel-drawing.command.d.ts +5 -5
  209. package/dist/map/messages/commands/cancel-feature-modification.command.d.ts +5 -5
  210. package/dist/map/messages/commands/close-tooltip.command.d.ts +7 -7
  211. package/dist/map/messages/commands/draw-selection-area.command.d.ts +13 -13
  212. package/dist/map/messages/commands/fit-to-features.command.d.ts +10 -10
  213. package/dist/map/messages/commands/fit-to-polygons.command.d.ts +9 -9
  214. package/dist/map/messages/commands/modify-feature.command.d.ts +11 -11
  215. package/dist/map/messages/commands/place-layer-features.command.d.ts +10 -10
  216. package/dist/map/messages/commands/remove-control.command.d.ts +8 -8
  217. package/dist/map/messages/commands/remove-layer.command.d.ts +8 -8
  218. package/dist/map/messages/commands/remove-tile.command.d.ts +9 -9
  219. package/dist/map/messages/commands/set-map-center.command.d.ts +18 -18
  220. package/dist/map/messages/commands/start-drawing.command.d.ts +11 -11
  221. package/dist/map/messages/events/drawing-finished.event.d.ts +6 -6
  222. package/dist/map/messages/events/map-click.event.d.ts +20 -20
  223. package/dist/map/messages/events/map-move-end.event.d.ts +8 -8
  224. package/dist/map/messages/events/map-rendered.event.d.ts +8 -8
  225. package/dist/map/messages/executors/calculate-area.executor.d.ts +10 -10
  226. package/dist/map/messages/executors/filter-features-in-area.executor.d.ts +10 -10
  227. package/dist/map/messages/executors/generate-draw.executor.d.ts +14 -14
  228. package/dist/map/messages/executors/generate-zoom-control.executor.d.ts +9 -9
  229. package/dist/map/messages/index.d.ts +14 -14
  230. package/dist/map/messages/queries/get-features-in-area.query.d.ts +11 -11
  231. package/dist/map/messages/queries/get-layer.query.d.ts +10 -10
  232. package/dist/map/models/drawing-type.enum.d.ts +6 -6
  233. package/dist/map/models/feature-format.enum.d.ts +4 -4
  234. package/dist/map/models/i-identified.d.ts +3 -3
  235. package/dist/map/models/index.d.ts +7 -7
  236. package/dist/map/models/map-control.d.ts +13 -13
  237. package/dist/map/models/map-lyrs.enum.d.ts +10 -10
  238. package/dist/map/models/map-settings.d.ts +17 -17
  239. package/dist/map/models/map.constants.d.ts +4 -4
  240. package/dist/map/models/marker-model.d.ts +16 -16
  241. package/dist/map/models/polygon.model.d.ts +19 -19
  242. package/dist/map/public-api.d.ts +12 -12
  243. package/dist/map/services/controls/controls.service.d.ts +14 -14
  244. package/dist/map/services/drawing/drawing-generation.service.d.ts +6 -6
  245. package/dist/map/services/drawing/drawing.service.d.ts +19 -19
  246. package/dist/map/services/drawing/feature-modification.service.d.ts +22 -22
  247. package/dist/map/services/feature.service.d.ts +9 -9
  248. package/dist/map/services/map-click.service.d.ts +16 -16
  249. package/dist/map/services/map-feature.service.d.ts +16 -16
  250. package/dist/map/services/map-management.service.d.ts +20 -20
  251. package/dist/map/services/map-postboy.service.d.ts +7 -7
  252. package/dist/map/services/map-state.service.d.ts +13 -13
  253. package/dist/map/services/message-registrator.service.d.ts +17 -17
  254. package/dist/public-api.d.ts +1 -1
  255. package/dist/src/map/common/destructible.component.d.ts +10 -10
  256. package/dist/src/map/common/id.generator.d.ts +4 -4
  257. package/dist/src/map/helpers/index.d.ts +4 -4
  258. package/dist/src/map/helpers/marker-style.helper.d.ts +7 -7
  259. package/dist/src/map/helpers/polygon-style.helper.d.ts +5 -5
  260. package/dist/src/map/helpers/stringify-feature.helper.d.ts +8 -8
  261. package/dist/src/map/helpers/text-style.helper.d.ts +4 -4
  262. package/dist/src/map/index.d.ts +5 -5
  263. package/dist/src/map/map-plate/controls/index.d.ts +2 -2
  264. package/dist/src/map/map-plate/controls/map-control-zoom/map-control-zoom.component.d.ts +19 -19
  265. package/dist/src/map/map-plate/controls/map-control-zoom/zoom-control.factory.d.ts +5 -5
  266. package/dist/src/map/map-plate/controls/map-control-zoom/zoom-control.settings.d.ts +14 -14
  267. package/dist/src/map/map-plate/features/index.d.ts +2 -2
  268. package/dist/src/map/map-plate/features/markers/markers.component.d.ts +16 -16
  269. package/dist/src/map/map-plate/features/polygons/polygons.component.d.ts +16 -16
  270. package/dist/src/map/map-plate/layers/cluster-layer/cluster-layer-factory.service.d.ts +11 -11
  271. package/dist/src/map/map-plate/layers/cluster-layer/cluster-layer.component.d.ts +21 -21
  272. package/dist/src/map/map-plate/layers/cluster-layer/cluster-layer.manager.d.ts +13 -13
  273. package/dist/src/map/map-plate/layers/cluster-layer/cluster-layer.settings.d.ts +22 -22
  274. package/dist/src/map/map-plate/layers/feature-layer/feature-layer.component.d.ts +22 -22
  275. package/dist/src/map/map-plate/layers/feature-layer/feature-layer.factory.d.ts +9 -9
  276. package/dist/src/map/map-plate/layers/feature-layer/feature-layer.settings.d.ts +61 -61
  277. package/dist/src/map/map-plate/layers/index.d.ts +7 -7
  278. package/dist/src/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.d.ts +19 -19
  279. package/dist/src/map/map-plate/layers/tile-layer/tile-layer.component.d.ts +21 -21
  280. package/dist/src/map/map-plate/layers/tile-layer/tile-layer.factory.d.ts +11 -11
  281. package/dist/src/map/map-plate/layers/tile-layer/tile-layer.settings.d.ts +14 -14
  282. package/dist/src/map/map-plate/map-plate.component.d.ts +27 -27
  283. package/dist/src/map/map-plate/map-plate.factory.service.d.ts +8 -8
  284. package/dist/src/map/map-plate/tooltips/index.d.ts +2 -2
  285. package/dist/src/map/map-plate/tooltips/tooltip/tooltip.component.d.ts +26 -26
  286. package/dist/src/map/map-plate/tooltips/tooltip/tooltip.settings.d.ts +11 -11
  287. package/dist/src/map/map.module.d.ts +17 -17
  288. package/dist/src/map/messages/commands/add-control.command.d.ts +8 -8
  289. package/dist/src/map/messages/commands/add-layer.command.d.ts +10 -10
  290. package/dist/src/map/messages/commands/add-tile.command.d.ts +9 -9
  291. package/dist/src/map/messages/commands/cancel-drawing.command.d.ts +5 -5
  292. package/dist/src/map/messages/commands/cancel-feature-modification.command.d.ts +5 -5
  293. package/dist/src/map/messages/commands/close-tooltip.command.d.ts +7 -7
  294. package/dist/src/map/messages/commands/draw-selection-area.command.d.ts +13 -13
  295. package/dist/src/map/messages/commands/fit-to-features.command.d.ts +10 -10
  296. package/dist/src/map/messages/commands/fit-to-polygons.command.d.ts +9 -9
  297. package/dist/src/map/messages/commands/modify-feature.command.d.ts +11 -11
  298. package/dist/src/map/messages/commands/place-layer-features.command.d.ts +10 -10
  299. package/dist/src/map/messages/commands/remove-control.command.d.ts +8 -8
  300. package/dist/src/map/messages/commands/remove-layer.command.d.ts +8 -8
  301. package/dist/src/map/messages/commands/remove-tile.command.d.ts +9 -9
  302. package/dist/src/map/messages/commands/set-map-center.command.d.ts +18 -18
  303. package/dist/src/map/messages/commands/start-drawing.command.d.ts +11 -11
  304. package/dist/src/map/messages/events/drawing-finished.event.d.ts +6 -6
  305. package/dist/src/map/messages/events/map-click.event.d.ts +20 -20
  306. package/dist/src/map/messages/events/map-move-end.event.d.ts +8 -8
  307. package/dist/src/map/messages/events/map-rendered.event.d.ts +8 -8
  308. package/dist/src/map/messages/executors/calculate-area.executor.d.ts +10 -10
  309. package/dist/src/map/messages/executors/filter-features-in-area.executor.d.ts +10 -10
  310. package/dist/src/map/messages/executors/generate-draw.executor.d.ts +14 -14
  311. package/dist/src/map/messages/executors/generate-zoom-control.executor.d.ts +9 -9
  312. package/dist/src/map/messages/index.d.ts +14 -14
  313. package/dist/src/map/messages/queries/get-features-in-area.query.d.ts +11 -11
  314. package/dist/src/map/messages/queries/get-layer.query.d.ts +10 -10
  315. package/dist/src/map/models/drawing-type.enum.d.ts +6 -6
  316. package/dist/src/map/models/feature-format.enum.d.ts +4 -4
  317. package/dist/src/map/models/i-identified.d.ts +3 -3
  318. package/dist/src/map/models/index.d.ts +7 -7
  319. package/dist/src/map/models/map-control.d.ts +13 -13
  320. package/dist/src/map/models/map-lyrs.enum.d.ts +10 -10
  321. package/dist/src/map/models/map-settings.d.ts +17 -17
  322. package/dist/src/map/models/map.constants.d.ts +4 -4
  323. package/dist/src/map/models/marker-model.d.ts +16 -16
  324. package/dist/src/map/models/polygon.model.d.ts +19 -19
  325. package/dist/src/map/public-api.d.ts +12 -12
  326. package/dist/src/map/services/controls/controls.service.d.ts +14 -14
  327. package/dist/src/map/services/drawing/drawing-generation.service.d.ts +6 -6
  328. package/dist/src/map/services/drawing/drawing.service.d.ts +19 -19
  329. package/dist/src/map/services/drawing/feature-modification.service.d.ts +22 -22
  330. package/dist/src/map/services/feature.service.d.ts +9 -9
  331. package/dist/src/map/services/map-click.service.d.ts +16 -16
  332. package/dist/src/map/services/map-feature.service.d.ts +16 -16
  333. package/dist/src/map/services/map-management.service.d.ts +20 -20
  334. package/dist/src/map/services/map-postboy.service.d.ts +7 -7
  335. package/dist/src/map/services/map-state.service.d.ts +13 -13
  336. package/dist/src/map/services/message-registrator.service.d.ts +17 -17
  337. package/package.json +23 -24
  338. package/dist/package.json +0 -35
@@ -1 +1 @@
1
- {"version":3,"file":"maps-components.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/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/fit-to-polygons.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/public-api.ts","../../projects/maps-components/src/maps-components.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","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 Style from 'ol/style/Style';\nimport { IIdentified } from '../../models/i-identified';\nimport { Dictionary } from '@artstesh/collections';\nimport { DrawingType } from '../../models';\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 { PostboyGenericMessage } from '@artstesh/postboy';\nimport { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\nimport { PolygonModel } from '../../models';\n\nexport class FitToPolygonsCommand extends PostboyGenericMessage {\n public static readonly ID: string = 'a9e42b23-ffaf-4c46-8370-e0432cd14d60';\n\n constructor(public features: PolygonModel[], public zoomAfter = 0) {\n super();\n }\n\n public get id(): string {\n return FitToPolygonsCommand.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 { IIdentified } from '../../models/i-identified';\nimport { Dictionary } from '@artstesh/collections';\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 { MapConstants } from '../models/map.constants';\nimport { FilterFeaturesInAreaExecutor } from '../messages/executors/filter-features-in-area.executor';\nimport { Geometry } from 'ol/geom';\nimport { Dictionary } from '@artstesh/collections';\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, PostboyGenericMessage } from '@artstesh/postboy';\nimport { Map } from 'ol';\nimport { MapPostboyService } from './map-postboy.service';\nimport { FitToPolygonsCommand, 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 private fitPolygonsWaiting?: FitToPolygonsCommand;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeMapRender();\n this.observeFitToFeatures();\n this.observeFitToPolygons();\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n if (this.fitPolygonsWaiting) this.postboy.fire(this.fitPolygonsWaiting);\n });\n }\n\n private observeFitToFeatures() {\n this.postboy.subscribe<FitToFeaturesCommand>(FitToFeaturesCommand.ID).subscribe((cmd) => {\n this.fitToGeometries(\n cmd.features.map((f) => f.getGeometry()!),\n cmd.zoomAfter,\n );\n });\n }\n\n private observeFitToPolygons() {\n this.postboy.subscribe<FitToPolygonsCommand>(FitToPolygonsCommand.ID).subscribe((cmd) => {\n if (!this.map) {\n this.fitPolygonsWaiting = cmd;\n return;\n }\n this.fitPolygonsWaiting = undefined;\n this.fitToGeometries(\n cmd.features.map((f) => f.feature.getGeometry()!),\n cmd.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 { 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';\nimport { Dictionary } from '@artstesh/collections';\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 { FitToPolygonsCommand, 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(FitToPolygonsCommand.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 * Public API Surface of maps-components\n */\n\nexport * from './map/public-api';\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.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/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/fit-to-polygons.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/public-api.ts","../../projects/maps-components/src/maps-components.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","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 Style from 'ol/style/Style';\nimport { IIdentified } from '../../models/i-identified';\nimport { Dictionary } from '@artstesh/collections';\nimport { DrawingType } from '../../models';\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 { PostboyGenericMessage } from '@artstesh/postboy';\nimport { Feature } from 'ol';\nimport { Geometry } from 'ol/geom';\nimport { PolygonModel } from '../../models';\n\nexport class FitToPolygonsCommand extends PostboyGenericMessage {\n public static readonly ID: string = 'a9e42b23-ffaf-4c46-8370-e0432cd14d60';\n\n constructor(public features: PolygonModel[], public zoomAfter = 0) {\n super();\n }\n\n public get id(): string {\n return FitToPolygonsCommand.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 { IIdentified } from '../../models/i-identified';\nimport { Dictionary } from '@artstesh/collections';\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 { MapConstants } from '../models/map.constants';\nimport { FilterFeaturesInAreaExecutor } from '../messages/executors/filter-features-in-area.executor';\nimport { Geometry } from 'ol/geom';\nimport { Dictionary } from '@artstesh/collections';\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, PostboyGenericMessage } from '@artstesh/postboy';\nimport { Map } from 'ol';\nimport { MapPostboyService } from './map-postboy.service';\nimport { FitToPolygonsCommand, 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 private fitPolygonsWaiting?: FitToPolygonsCommand;\n\n constructor(private postboy: MapPostboyService) {}\n\n up(): void {\n this.observeMapRender();\n this.observeFitToFeatures();\n this.observeFitToPolygons();\n }\n\n private observeMapRender() {\n this.postboy.subscribe<MapRenderedEvent>(MapRenderedEvent.ID).subscribe((m) => {\n this.map = m.map;\n if (this.fitPolygonsWaiting) this.postboy.fire(this.fitPolygonsWaiting);\n });\n }\n\n private observeFitToFeatures() {\n this.postboy.subscribe<FitToFeaturesCommand>(FitToFeaturesCommand.ID).subscribe((cmd) => {\n this.fitToGeometries(\n cmd.features.map((f) => f.getGeometry()!),\n cmd.zoomAfter,\n );\n });\n }\n\n private observeFitToPolygons() {\n this.postboy.subscribe<FitToPolygonsCommand>(FitToPolygonsCommand.ID).subscribe((cmd) => {\n if (!this.map) {\n this.fitPolygonsWaiting = cmd;\n return;\n }\n this.fitPolygonsWaiting = undefined;\n this.fitToGeometries(\n cmd.features.map((f) => f.feature.getGeometry()!),\n cmd.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 { 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';\nimport { Dictionary } from '@artstesh/collections';\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 { FitToPolygonsCommand, 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(FitToPolygonsCommand.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 * Public API Surface of maps-components\n */\n\nexport * from './map/public-api';\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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"}