@artstesh/maps 4.1.12 → 4.1.14

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 (31) hide show
  1. package/dist/esm2020/map/messages/executors/filter-features-in-point.executor.mjs +17 -0
  2. package/dist/esm2020/map/messages/index.mjs +4 -1
  3. package/dist/esm2020/map/messages/queries/get-features-in-point.query.mjs +18 -0
  4. package/dist/esm2020/map/services/feature.service.mjs +5 -1
  5. package/dist/esm2020/map/services/map-management.service.mjs +28 -12
  6. package/dist/esm2020/map/services/message-registrator.service.mjs +5 -2
  7. package/dist/esm2020/src/map/messages/executors/filter-features-in-point.executor.mjs +17 -0
  8. package/dist/esm2020/src/map/messages/index.mjs +4 -1
  9. package/dist/esm2020/src/map/messages/queries/get-features-in-point.query.mjs +18 -0
  10. package/dist/esm2020/src/map/services/feature.service.mjs +5 -1
  11. package/dist/esm2020/src/map/services/map-management.service.mjs +28 -12
  12. package/dist/esm2020/src/map/services/message-registrator.service.mjs +5 -2
  13. package/dist/fesm2015/maps-components-src-map.mjs +78 -23
  14. package/dist/fesm2015/maps-components-src-map.mjs.map +1 -1
  15. package/dist/fesm2015/maps-components.mjs +78 -23
  16. package/dist/fesm2015/maps-components.mjs.map +1 -1
  17. package/dist/fesm2020/maps-components-src-map.mjs +77 -23
  18. package/dist/fesm2020/maps-components-src-map.mjs.map +1 -1
  19. package/dist/fesm2020/maps-components.mjs +77 -23
  20. package/dist/fesm2020/maps-components.mjs.map +1 -1
  21. package/dist/map/messages/executors/filter-features-in-point.executor.d.ts +14 -0
  22. package/dist/map/messages/index.d.ts +3 -0
  23. package/dist/map/messages/queries/get-features-in-point.query.d.ts +15 -0
  24. package/dist/map/services/feature.service.d.ts +2 -0
  25. package/dist/map/services/map-management.service.d.ts +2 -0
  26. package/dist/src/map/messages/executors/filter-features-in-point.executor.d.ts +14 -0
  27. package/dist/src/map/messages/index.d.ts +3 -0
  28. package/dist/src/map/messages/queries/get-features-in-point.query.d.ts +15 -0
  29. package/dist/src/map/services/feature.service.d.ts +2 -0
  30. package/dist/src/map/services/map-management.service.d.ts +2 -0
  31. package/package.json +1 -1
@@ -402,6 +402,51 @@ class GetFeaturesInAreaQuery extends PostboyCallbackMessage {
402
402
  }
403
403
  GetFeaturesInAreaQuery.ID = 'efcf4271-a07a-40e0-9f02-d4dade40b8ac';
404
404
 
405
+ class FilterFeaturesInAreaExecutor extends PostboyExecutor {
406
+ constructor(area, features) {
407
+ super();
408
+ this.area = area;
409
+ this.features = features;
410
+ }
411
+ get id() {
412
+ return FilterFeaturesInAreaExecutor.ID;
413
+ }
414
+ }
415
+ FilterFeaturesInAreaExecutor.ID = '36bb2d94-8028-4512-90dd-2386af3fc67c';
416
+
417
+ /**
418
+ * Represents a query to retrieve features located at a specific geographical point.
419
+ * The query is defined by latitude, longitude, and an optional set of features to ignore.
420
+ */
421
+ class GetFeaturesInPointQuery extends PostboyCallbackMessage {
422
+ constructor(lat, lng, ignore = new Set()) {
423
+ super();
424
+ this.lat = lat;
425
+ this.lng = lng;
426
+ this.ignore = ignore;
427
+ }
428
+ get id() {
429
+ return GetFeaturesInPointQuery.ID;
430
+ }
431
+ }
432
+ GetFeaturesInPointQuery.ID = '7c051c97-bbf1-47eb-baa3-4d1eef6f281f';
433
+
434
+ /**
435
+ * The FilterFeaturesInPointExecutor class is responsible for filtering features within a given point.
436
+ */
437
+ class FilterFeaturesInPointExecutor extends PostboyExecutor {
438
+ get id() {
439
+ return FilterFeaturesInPointExecutor.ID;
440
+ }
441
+ constructor(lat, lng, features) {
442
+ super();
443
+ this.lat = lat;
444
+ this.lng = lng;
445
+ this.features = features;
446
+ }
447
+ }
448
+ FilterFeaturesInPointExecutor.ID = '5b859282-5d5a-47ca-a6ad-863a66c8b82b';
449
+
405
450
  class AddLayerCommand extends PostboyGenericMessage {
406
451
  constructor(layer) {
407
452
  super();
@@ -518,6 +563,9 @@ class FeatureService {
518
563
  static filterFeaturesInArea(query) {
519
564
  return query.features.filter((f) => FeatureService.booleanIntersects(query.area, f.getGeometry()));
520
565
  }
566
+ static filterFeaturesInPoint(query) {
567
+ return query.features.filter((f) => FeatureService.booleanIntersects(f.getGeometry(), new Point([query.lng, query.lat])));
568
+ }
521
569
  static calculateArea(g) {
522
570
  if (!g)
523
571
  return 0;
@@ -534,18 +582,6 @@ class FeatureService {
534
582
  }
535
583
  }
536
584
 
537
- class FilterFeaturesInAreaExecutor extends PostboyExecutor {
538
- constructor(area, features) {
539
- super();
540
- this.area = area;
541
- this.features = features;
542
- }
543
- get id() {
544
- return FilterFeaturesInAreaExecutor.ID;
545
- }
546
- }
547
- FilterFeaturesInAreaExecutor.ID = '36bb2d94-8028-4512-90dd-2386af3fc67c';
548
-
549
585
  class GenerateDrawExecutor extends PostboyExecutor {
550
586
  constructor(layer, style, type) {
551
587
  super();
@@ -608,6 +644,7 @@ class MapManagementService {
608
644
  this.observeRemoveTile();
609
645
  this.observeLayerQuery();
610
646
  this.observeFeaturesInArea();
647
+ this.observeFeaturesInPoint();
611
648
  }
612
649
  observeRemoveTile() {
613
650
  this.postboy.subscribe(RemoveTileCommand.ID).subscribe((c) => {
@@ -662,20 +699,36 @@ class MapManagementService {
662
699
  observeFeaturesInArea() {
663
700
  this.postboy.subscribe(GetFeaturesInAreaQuery.ID).subscribe((qr) => {
664
701
  let result = new Dictionary();
665
- this.layers.forEach((l) => {
702
+ this.forEachLayer((l, s) => {
666
703
  var _a;
667
- let layerName = l.get('name');
668
- if (qr.ignore.has(layerName) || layerName === MapConstants.DrawingLayerId)
669
- return;
670
- let source = l.getSource();
671
- if (!!source['getSource'])
672
- source = source === null || source === void 0 ? void 0 : source.getSource();
673
- let features = this.postboy.execute(new FilterFeaturesInAreaExecutor(qr.area, (_a = source === null || source === void 0 ? void 0 : source.getFeatures()) !== null && _a !== void 0 ? _a : []));
674
- result.put(layerName, features.map((e) => (Object.assign({ id: e.getId() }, e.get(MapConstants.FeatureInfo)))));
675
- });
704
+ let features = this.postboy.execute(new FilterFeaturesInAreaExecutor(qr.area, (_a = s === null || s === void 0 ? void 0 : s.getFeatures()) !== null && _a !== void 0 ? _a : []));
705
+ result.put(l.get('name'), features.map((e) => (Object.assign({ id: e.getId() }, e.get(MapConstants.FeatureInfo)))));
706
+ }, qr.ignore);
676
707
  qr.finish(result);
677
708
  });
678
709
  }
710
+ observeFeaturesInPoint() {
711
+ this.postboy.subscribe(GetFeaturesInPointQuery.ID).subscribe((qr) => {
712
+ let result = new Dictionary();
713
+ this.forEachLayer((l, s) => {
714
+ var _a;
715
+ let features = this.postboy.execute(new FilterFeaturesInPointExecutor(qr.lat, qr.lng, (_a = s === null || s === void 0 ? void 0 : s.getFeatures()) !== null && _a !== void 0 ? _a : []));
716
+ result.put(l.get('name'), features.map((e) => (Object.assign({ id: e.getId() }, e.get(MapConstants.FeatureInfo)))));
717
+ }, qr.ignore);
718
+ qr.finish(result);
719
+ });
720
+ }
721
+ forEachLayer(action, ignore) {
722
+ this.layers.forEach((l) => {
723
+ let layerName = l.get('name');
724
+ if (ignore.has(layerName) || layerName === MapConstants.DrawingLayerId)
725
+ return;
726
+ let source = l.getSource();
727
+ if (!!source['getSource'])
728
+ source = source === null || source === void 0 ? void 0 : source.getSource();
729
+ action(l, source);
730
+ });
731
+ }
679
732
  }
680
733
  MapManagementService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapManagementService, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
681
734
  MapManagementService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapManagementService });
@@ -1056,10 +1109,12 @@ class MessageRegistratorService extends PostboyAbstractRegistrator {
1056
1109
  this.registerSubject(DrawSelectionAreaCommand.ID);
1057
1110
  this.registerSubject(CancelFeatureModificationCommand.ID);
1058
1111
  this.registerSubject(ModifyFeatureCommand.ID);
1112
+ this.registerSubject(GetFeaturesInPointQuery.ID);
1059
1113
  this.setExecutors();
1060
1114
  }
1061
1115
  setExecutors() {
1062
1116
  this.registerExecutor(FilterFeaturesInAreaExecutor.ID, (e) => FeatureService.filterFeaturesInArea(e));
1117
+ this.registerExecutor(FilterFeaturesInPointExecutor.ID, (e) => FeatureService.filterFeaturesInPoint(e));
1063
1118
  this.registerExecutor(CalculateAreaExecutor.ID, (e) => { var _a, _b; return FeatureService.calculateArea((_b = (_a = e.polygon) === null || _a === void 0 ? void 0 : _a.feature) === null || _b === void 0 ? void 0 : _b.getGeometry()); });
1064
1119
  this.registerExecutor(GenerateDrawExecutor.ID, (e) => DrawingGenerationService.getDraw(e));
1065
1120
  this.registerExecutor(GenerateZoomControlExecutor.ID, (e) => ZoomControlFactory.build(e.settings));
@@ -2520,5 +2575,5 @@ class StringifyFeatureHelper {
2520
2575
  * Generated bundle index. Do not edit.
2521
2576
  */
2522
2577
 
2523
- export { AddControlCommand, CalculateAreaExecutor, CancelDrawingCommand, CancelFeatureModificationCommand, CloseTooltipCommand, ClusterLayerComponent, ClusterLayerSettings, DrawSelectionAreaCommand, DrawingType, FeatureLayerComponent, FeatureLayerSettings, FeatureOutputFormat, FitToPolygonsCommand, GetFeaturesInAreaQuery, GetMapPositionExecutor, MapClickEvent, MapControl, MapControlZoomComponent, MapLyrs, MapLyrsLabel, MapModule, MapMoveEndEvent, MapPlateComponent, MapPostboyService, MapRenderedEvent, MapSettings, MarkerModel, MarkerStyleHelper, MarkersComponent, MessageRegistratorService, ModifyFeatureCommand, OsmTileLayerComponent, PolygonModel, PolygonStyleHelper, PolygonsComponent, RemoveControlCommand, SetMapCenterCommand, StartDrawingCommand, StringifyFeatureHelper, TextStyleHelper, TileLayerComponent, TileLayerSettings, TooltipComponent, TooltipSettings, ZoomControlSettings };
2578
+ export { AddControlCommand, CalculateAreaExecutor, CancelDrawingCommand, CancelFeatureModificationCommand, CloseTooltipCommand, ClusterLayerComponent, ClusterLayerSettings, DrawSelectionAreaCommand, DrawingType, FeatureLayerComponent, FeatureLayerSettings, FeatureOutputFormat, FilterFeaturesInAreaExecutor, FilterFeaturesInPointExecutor, FitToPolygonsCommand, GetFeaturesInAreaQuery, GetFeaturesInPointQuery, GetMapPositionExecutor, MapClickEvent, MapControl, MapControlZoomComponent, MapLyrs, MapLyrsLabel, MapModule, MapMoveEndEvent, MapPlateComponent, MapPostboyService, MapRenderedEvent, MapSettings, MarkerModel, MarkerStyleHelper, MarkersComponent, MessageRegistratorService, ModifyFeatureCommand, OsmTileLayerComponent, PolygonModel, PolygonStyleHelper, PolygonsComponent, RemoveControlCommand, SetMapCenterCommand, StartDrawingCommand, StringifyFeatureHelper, TextStyleHelper, TileLayerComponent, TileLayerSettings, TooltipComponent, TooltipSettings, ZoomControlSettings };
2524
2579
  //# sourceMappingURL=maps-components.mjs.map