@artstesh/maps 1.0.8 → 1.0.9

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 (37) hide show
  1. package/dist/bundles/maps-components-src-map.umd.js +120 -18
  2. package/dist/bundles/maps-components-src-map.umd.js.map +1 -1
  3. package/dist/bundles/maps-components.umd.js +120 -18
  4. package/dist/bundles/maps-components.umd.js.map +1 -1
  5. package/dist/esm2015/map/helpers/index.js +2 -1
  6. package/dist/esm2015/map/helpers/stringify-feature.helper.js +58 -0
  7. package/dist/esm2015/map/map-plate/map-plate.component.js +4 -1
  8. package/dist/esm2015/map/messages/queries/generate-draw.query.js +14 -0
  9. package/dist/esm2015/map/models/drawing-type.enum.js +2 -1
  10. package/dist/esm2015/map/services/drawing/drawing-generation.service.js +28 -0
  11. package/dist/esm2015/map/services/drawing/drawing.service.js +14 -13
  12. package/dist/esm2015/map/services/message-registrator.service.js +8 -5
  13. package/dist/esm2015/src/map/helpers/index.js +2 -1
  14. package/dist/esm2015/src/map/helpers/stringify-feature.helper.js +58 -0
  15. package/dist/esm2015/src/map/map-plate/map-plate.component.js +4 -1
  16. package/dist/esm2015/src/map/messages/queries/generate-draw.query.js +14 -0
  17. package/dist/esm2015/src/map/models/drawing-type.enum.js +2 -1
  18. package/dist/esm2015/src/map/services/drawing/drawing-generation.service.js +28 -0
  19. package/dist/esm2015/src/map/services/drawing/drawing.service.js +14 -13
  20. package/dist/esm2015/src/map/services/message-registrator.service.js +8 -5
  21. package/dist/fesm2015/maps-components-src-map.js +110 -18
  22. package/dist/fesm2015/maps-components-src-map.js.map +1 -1
  23. package/dist/fesm2015/maps-components.js +110 -18
  24. package/dist/fesm2015/maps-components.js.map +1 -1
  25. package/dist/map/helpers/index.d.ts +1 -0
  26. package/dist/map/helpers/stringify-feature.helper.d.ts +8 -0
  27. package/dist/map/messages/queries/generate-draw.query.d.ts +14 -0
  28. package/dist/map/models/drawing-type.enum.d.ts +2 -1
  29. package/dist/map/services/drawing/drawing-generation.service.d.ts +10 -0
  30. package/dist/map/services/message-registrator.service.d.ts +2 -1
  31. package/dist/src/map/helpers/index.d.ts +1 -0
  32. package/dist/src/map/helpers/stringify-feature.helper.d.ts +8 -0
  33. package/dist/src/map/messages/queries/generate-draw.query.d.ts +14 -0
  34. package/dist/src/map/models/drawing-type.enum.d.ts +2 -1
  35. package/dist/src/map/services/drawing/drawing-generation.service.d.ts +10 -0
  36. package/dist/src/map/services/message-registrator.service.d.ts +2 -1
  37. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('ol'), require('ol/geom'), require('ol/format'), require('ol/extent'), require('ol/proj'), require('@artstesh/postboy'), require('rxjs/operators'), require('ol/source'), require('ol/interaction'), require('ol/layer/Tile'), require('ol/source/OSM'), require('ol/layer'), require('ol/loadingstrategy'), require('ol/geom/Polygon'), require('ol/source/Cluster'), require('rxjs'), require('ol/Map'), require('ol/View'), require('ol/Overlay'), require('ol/style/Style'), require('ol/style')) :
3
- typeof define === 'function' && define.amd ? define('maps-components', ['exports', '@angular/core', '@angular/common', 'ol', 'ol/geom', 'ol/format', 'ol/extent', 'ol/proj', '@artstesh/postboy', 'rxjs/operators', 'ol/source', 'ol/interaction', 'ol/layer/Tile', 'ol/source/OSM', 'ol/layer', 'ol/loadingstrategy', 'ol/geom/Polygon', 'ol/source/Cluster', 'rxjs', 'ol/Map', 'ol/View', 'ol/Overlay', 'ol/style/Style', 'ol/style'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["maps-components"] = {}, global.ng.core, global.ng.common, global.ol, global.geom, global.format, global.extent, global.proj, global.postboy, global.rxjs.operators, global.source, global.interaction, global.TileLayer, global.OSM, global.layer, global.loadingstrategy, global.Polygon, global.Cluster, global.rxjs, global.Map, global.View, global.Overlay, global.Style, global.style));
5
- })(this, (function (exports, i0, i6, ol, geom, format, extent, proj, postboy, operators, source, interaction, TileLayer, OSM, layer, loadingstrategy, Polygon, Cluster, rxjs, Map, View, Overlay, Style, style) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('ol'), require('ol/geom'), require('ol/format'), require('ol/extent'), require('ol/proj'), require('@artstesh/postboy'), require('rxjs/operators'), require('ol/source'), require('ol/interaction'), require('ol/interaction/Draw'), require('ol/layer/Tile'), require('ol/source/OSM'), require('ol/layer'), require('ol/loadingstrategy'), require('ol/geom/Polygon'), require('ol/source/Cluster'), require('rxjs'), require('ol/Map'), require('ol/View'), require('ol/Overlay'), require('ol/style/Style'), require('ol/style'), require('ol/proj/epsg4326')) :
3
+ typeof define === 'function' && define.amd ? define('maps-components', ['exports', '@angular/core', '@angular/common', 'ol', 'ol/geom', 'ol/format', 'ol/extent', 'ol/proj', '@artstesh/postboy', 'rxjs/operators', 'ol/source', 'ol/interaction', 'ol/interaction/Draw', 'ol/layer/Tile', 'ol/source/OSM', 'ol/layer', 'ol/loadingstrategy', 'ol/geom/Polygon', 'ol/source/Cluster', 'rxjs', 'ol/Map', 'ol/View', 'ol/Overlay', 'ol/style/Style', 'ol/style', 'ol/proj/epsg4326'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["maps-components"] = {}, global.ng.core, global.ng.common, global.ol, global.geom, global.format, global.extent, global.proj, global.postboy, global.rxjs.operators, global.source, global.interaction, global.Draw, global.TileLayer, global.OSM, global.layer, global.loadingstrategy, global.Polygon, global.Cluster, global.rxjs, global.Map, global.View, global.Overlay, global.Style, global.style, global.epsg4326));
5
+ })(this, (function (exports, i0, i6, ol, geom, format, extent, proj, postboy, operators, source, interaction, Draw, TileLayer, OSM, layer, loadingstrategy, Polygon, Cluster, rxjs, Map, View, Overlay, Style, style, epsg4326) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -28,6 +28,7 @@
28
28
  var i6__namespace = /*#__PURE__*/_interopNamespace(i6);
29
29
  var TileLayer__default = /*#__PURE__*/_interopDefaultLegacy(TileLayer);
30
30
  var OSM__default = /*#__PURE__*/_interopDefaultLegacy(OSM);
31
+ var Polygon__default = /*#__PURE__*/_interopDefaultLegacy(Polygon);
31
32
  var Cluster__default = /*#__PURE__*/_interopDefaultLegacy(Cluster);
32
33
  var Map__default = /*#__PURE__*/_interopDefaultLegacy(Map);
33
34
  var View__default = /*#__PURE__*/_interopDefaultLegacy(View);
@@ -674,6 +675,7 @@
674
675
  exports.DrawingType = void 0;
675
676
  (function (DrawingType) {
676
677
  DrawingType[DrawingType["Polygon"] = 1] = "Polygon";
678
+ DrawingType[DrawingType["Circle"] = 2] = "Circle";
677
679
  })(exports.DrawingType || (exports.DrawingType = {}));
678
680
 
679
681
  exports.FeatureOutputFormat = void 0;
@@ -939,6 +941,26 @@
939
941
  }(postboy.PostboyGenericMessage));
940
942
  DrawingFinishedEvent.ID = 'c724b68e-b4eb-4783-90f1-a8e31973fd36';
941
943
 
944
+ var GenerateDrawQuery = /** @class */ (function (_super) {
945
+ __extends(GenerateDrawQuery, _super);
946
+ function GenerateDrawQuery(layer, style, type) {
947
+ var _this = _super.call(this) || this;
948
+ _this.layer = layer;
949
+ _this.style = style;
950
+ _this.type = type;
951
+ return _this;
952
+ }
953
+ Object.defineProperty(GenerateDrawQuery.prototype, "id", {
954
+ get: function () {
955
+ return GenerateDrawQuery.ID;
956
+ },
957
+ enumerable: false,
958
+ configurable: true
959
+ });
960
+ return GenerateDrawQuery;
961
+ }(postboy.PostboyCallbackMessage));
962
+ GenerateDrawQuery.ID = 'f01c99ba-0953-4ab5-82f9-04e6fbb678c1';
963
+
942
964
  var MapPostboyService = /** @class */ (function (_super) {
943
965
  __extends(MapPostboyService, _super);
944
966
  function MapPostboyService() {
@@ -1158,17 +1180,18 @@
1158
1180
  _this.clearInteraction(l);
1159
1181
  return;
1160
1182
  }
1161
- var cancelSub = _this.observeCancelation(ev, l);
1162
- _this.drawInteraction = new interaction.Draw({
1163
- source: l.getSource(),
1164
- type: exports.DrawingType[ev.type],
1165
- style: ev.style,
1166
- });
1167
- _this.map.addInteraction(_this.drawInteraction);
1168
- _this.drawInteraction.on('drawend', function (evt) {
1169
- cancelSub.unsubscribe();
1170
- _this.onEnd(evt, ev, l);
1183
+ var drawQuery = new GenerateDrawQuery(l, ev.style, ev.type);
1184
+ drawQuery.result.subscribe(function (draw) {
1185
+ var _a;
1186
+ var cancelSub = _this.observeCancelation(ev, l);
1187
+ _this.drawInteraction = draw;
1188
+ (_a = _this.map) === null || _a === void 0 ? void 0 : _a.addInteraction(_this.drawInteraction);
1189
+ _this.drawInteraction.on('drawend', function (evt) {
1190
+ cancelSub.unsubscribe();
1191
+ _this.onEnd(evt, ev, l);
1192
+ });
1171
1193
  });
1194
+ _this.postboy.fire(drawQuery);
1172
1195
  });
1173
1196
  });
1174
1197
  this.observeMapRender();
@@ -1217,11 +1240,33 @@
1217
1240
  type: i0.Injectable
1218
1241
  }], ctorParameters: function () { return [{ type: MapPostboyService }]; } });
1219
1242
 
1243
+ var DrawingGenerationService = /** @class */ (function () {
1244
+ function DrawingGenerationService(postboy) {
1245
+ this.postboy = postboy;
1246
+ }
1247
+ DrawingGenerationService.prototype.up = function () {
1248
+ this.postboy.subscribe(GenerateDrawQuery.ID).subscribe(function (ev) {
1249
+ ev.finish(new interaction.Draw({
1250
+ source: ev.layer.getSource(),
1251
+ type: exports.DrawingType[ev.type],
1252
+ style: ev.style,
1253
+ geometryFunction: ev.type !== exports.DrawingType.Circle ? undefined : Draw.createRegularPolygon(32),
1254
+ }));
1255
+ });
1256
+ };
1257
+ return DrawingGenerationService;
1258
+ }());
1259
+ DrawingGenerationService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DrawingGenerationService, deps: [{ token: MapPostboyService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1260
+ DrawingGenerationService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DrawingGenerationService });
1261
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DrawingGenerationService, decorators: [{
1262
+ type: i0.Injectable
1263
+ }], ctorParameters: function () { return [{ type: MapPostboyService }]; } });
1264
+
1220
1265
  var MessageRegistratorService = /** @class */ (function (_super) {
1221
1266
  __extends(MessageRegistratorService, _super);
1222
- function MessageRegistratorService(service, management, state, feature, interaction, drawing) {
1267
+ function MessageRegistratorService(service, management, state, feature, interaction, drawing, drawGenerator) {
1223
1268
  var _this = _super.call(this, service) || this;
1224
- _this.registerServices([management, state, interaction, feature, drawing]);
1269
+ _this.registerServices([management, state, interaction, feature, drawing, drawGenerator]);
1225
1270
  return _this;
1226
1271
  }
1227
1272
  MessageRegistratorService.prototype._up = function () {
@@ -1239,14 +1284,15 @@
1239
1284
  this.registerSubject(StartDrawingCommand.ID);
1240
1285
  this.registerSubject(GetLayerQuery.ID);
1241
1286
  this.registerSubject(DrawingFinishedEvent.ID);
1287
+ this.registerSubject(GenerateDrawQuery.ID);
1242
1288
  };
1243
1289
  return MessageRegistratorService;
1244
1290
  }(postboy.PostboyAbstractRegistrator));
1245
- MessageRegistratorService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MessageRegistratorService, deps: [{ token: MapPostboyService }, { token: MapManagementService }, { token: MapStateService }, { token: MapFeatureService }, { token: MapClickService }, { token: DrawingService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1291
+ MessageRegistratorService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MessageRegistratorService, deps: [{ token: MapPostboyService }, { token: MapManagementService }, { token: MapStateService }, { token: MapFeatureService }, { token: MapClickService }, { token: DrawingService }, { token: DrawingGenerationService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1246
1292
  MessageRegistratorService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MessageRegistratorService });
1247
1293
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MessageRegistratorService, decorators: [{
1248
1294
  type: i0.Injectable
1249
- }], ctorParameters: function () { return [{ type: MapPostboyService }, { type: MapManagementService }, { type: MapStateService }, { type: MapFeatureService }, { type: MapClickService }, { type: DrawingService }]; } });
1295
+ }], ctorParameters: function () { return [{ type: MapPostboyService }, { type: MapManagementService }, { type: MapStateService }, { type: MapFeatureService }, { type: MapClickService }, { type: DrawingService }, { type: DrawingGenerationService }]; } });
1250
1296
 
1251
1297
  var TileLayerSettings = /** @class */ (function () {
1252
1298
  function TileLayerSettings() {
@@ -1886,6 +1932,7 @@
1886
1932
  MapClickService,
1887
1933
  MapFeatureService,
1888
1934
  DrawingService,
1935
+ DrawingGenerationService,
1889
1936
  ], usesInheritance: true, ngImport: i0__namespace, template: "<ng-content></ng-content>\r\n<lib-osm-tile-layer *ngIf=\"osmUrl && map\" [map]=\"map\" [url]=\"osmUrl\"></lib-osm-tile-layer>\r\n<lib-feature-layer *ngIf=\"map\" [settings]=\"drawingLayerSettings\"></lib-feature-layer>\r\n", styles: ["lib-map-plate{position:relative;display:flex;flex-direction:column;height:100%}\n"], components: [{ type: OsmTileLayerComponent, selector: "lib-osm-tile-layer", inputs: ["url", "map"] }, { type: FeatureLayerComponent, selector: "lib-feature-layer", inputs: ["settings"] }], directives: [{ type: i6__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1890
1937
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MapPlateComponent, decorators: [{
1891
1938
  type: i0.Component,
@@ -1901,6 +1948,7 @@
1901
1948
  MapClickService,
1902
1949
  MapFeatureService,
1903
1950
  DrawingService,
1951
+ DrawingGenerationService,
1904
1952
  ],
1905
1953
  }]
1906
1954
  }], ctorParameters: function () { return [{ type: i0__namespace.ElementRef }, { type: MapPostboyService }, { type: MapPlateFactory }, { type: MessageRegistratorService }, { type: i0__namespace.ChangeDetectorRef }]; }, propDecorators: { settings: [{
@@ -2233,6 +2281,59 @@
2233
2281
  return TextStyleHelper;
2234
2282
  }());
2235
2283
 
2284
+ var StringifyFeatureHelper = /** @class */ (function () {
2285
+ function StringifyFeatureHelper() {
2286
+ }
2287
+ StringifyFeatureHelper.polygon = function (feature, format$1) {
2288
+ if (format$1 === void 0) { format$1 = exports.FeatureOutputFormat.GeoJson; }
2289
+ return format$1 === exports.FeatureOutputFormat.GeoJson
2290
+ ? new format.GeoJSON().writeFeature(feature)
2291
+ : new format.WKT().writeFeature(feature);
2292
+ };
2293
+ StringifyFeatureHelper.circle = function (feature, format) {
2294
+ if (format === void 0) { format = exports.FeatureOutputFormat.GeoJson; }
2295
+ // const clone = feature.clone();
2296
+ // clone.setGeometry(fromCircle(feature.getGeometry()! as Circle));
2297
+ var tetemp = feature.getGeometryName();
2298
+ var circle = feature.getGeometry();
2299
+ // const temp = StringifyFeatureHelper.drawCircle(circle.getCenter(), circle.getRadius());
2300
+ var ttt = feature.getGeometry().getExtent();
2301
+ var eastPoint = [ttt[2], (ttt[1] + ttt[3]) / 2];
2302
+ var aaa = __spreadArray(__spreadArray([], __read(proj.transform([ttt[0], ttt[1]], 'EPSG:4326', 'EPSG:3857'))), __read(proj.transform([ttt[2], ttt[3]], 'EPSG:4326', 'EPSG:3857')));
2303
+ var radius = (aaa[2] - aaa[0]) / 2;
2304
+ var radius2 = new geom.LineString([circle.getCenter(), eastPoint]).getLength();
2305
+ var polygonGeom = new Polygon__default["default"](StringifyFeatureHelper.drawCircle(circle.getCenter(), radius));
2306
+ // var edgeCoordinate = [circle.getCenter()[0] + radius, circle.getCenter()[1]];
2307
+ // var wgs84Sphere = new Sphere(6378137);
2308
+ return StringifyFeatureHelper.polygon(new ol.Feature(polygonGeom), format);
2309
+ // const rad = circle.getRadius();
2310
+ // const degrees = 180 / Math.PI; // radians to degrees
2311
+ // const radians = Math.PI / 180; // degrees to radians
2312
+ // const rlat = rad * degrees * 1000;
2313
+ // const rlng = rad * radians;
2314
+ // return StringifyFeatureHelper.polygon(new Feature<Geometry>(circular(circle.getCenter(),circle.getRadius() * METERS_PER_UNIT)), format);
2315
+ };
2316
+ StringifyFeatureHelper.drawCircle = function (point, radius) {
2317
+ var tetetemp = proj.transform(point, 'EPSG:4326', 'EPSG:3857');
2318
+ // const tetetemp = point;
2319
+ var radians = Math.PI / 180; // degrees to radians
2320
+ var degrees = 180 / Math.PI; // radians to degrees
2321
+ var earthsradius = 6378137.0;
2322
+ var rlat = (radius / earthsradius) * degrees;
2323
+ var rlng = rlat / Math.cos(tetetemp[1] * radians);
2324
+ var extp = [];
2325
+ for (var i = 0; i <= 32; i++) {
2326
+ var theta = Math.PI * (i / 16);
2327
+ extp.push([
2328
+ tetetemp[0] + rlng * Math.cos(theta) * epsg4326.METERS_PER_UNIT,
2329
+ tetetemp[1] + rlat * Math.sin(theta) * epsg4326.METERS_PER_UNIT,
2330
+ ]);
2331
+ }
2332
+ return [extp.map(function (e) { return proj.transform(e, 'EPSG:3857', 'EPSG:4326'); })];
2333
+ };
2334
+ return StringifyFeatureHelper;
2335
+ }());
2336
+
2236
2337
  /*
2237
2338
  * Public API Surface of maps
2238
2339
  */
@@ -2268,6 +2369,7 @@
2268
2369
  exports.PolygonStyleHelper = PolygonStyleHelper;
2269
2370
  exports.PolygonsComponent = PolygonsComponent;
2270
2371
  exports.StartDrawingCommand = StartDrawingCommand;
2372
+ exports.StringifyFeatureHelper = StringifyFeatureHelper;
2271
2373
  exports.TextStyleHelper = TextStyleHelper;
2272
2374
  exports.TileLayerComponent = TileLayerComponent;
2273
2375
  exports.TileLayerSettings = TileLayerSettings;