@signalk/freeboard-sk 2.0.0-beta.2 → 2.0.0-beta.4

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 (149) hide show
  1. package/CHANGELOG.md +55 -1
  2. package/package.json +24 -20
  3. package/public/590.4431be8bbcdbb3f8.js +1 -0
  4. package/public/assets/help/img/settings_course.png +0 -0
  5. package/public/assets/help/img/settings_other_vessels.png +0 -0
  6. package/public/assets/help/index.html +46 -15
  7. package/public/assets/img/alarms/weather.png +0 -0
  8. package/public/index.html +2 -2
  9. package/public/main.a54a56a8a0f02b2d.js +1 -0
  10. package/public/polyfills.12ddee7e4cb46a02.js +1 -0
  11. package/public/runtime.0360fd4b1168b48a.js +1 -0
  12. package/public/styles.a0bf4282aea78b28.css +1 -0
  13. package/dist/fb-openlayers/README.md +0 -17
  14. package/dist/fb-openlayers/bundles/fb-openlayers.umd.js +0 -4884
  15. package/dist/fb-openlayers/bundles/fb-openlayers.umd.js.map +0 -1
  16. package/dist/fb-openlayers/esm2015/fb-openlayers.js +0 -5
  17. package/dist/fb-openlayers/esm2015/index.js +0 -92
  18. package/dist/fb-openlayers/esm2015/lib/alarms/layer-anchor-alarm.component.js +0 -136
  19. package/dist/fb-openlayers/esm2015/lib/alarms/layer-cpa-alarm.component.js +0 -135
  20. package/dist/fb-openlayers/esm2015/lib/content.component.js +0 -16
  21. package/dist/fb-openlayers/esm2015/lib/control.component.js +0 -37
  22. package/dist/fb-openlayers/esm2015/lib/controls.directive.js +0 -61
  23. package/dist/fb-openlayers/esm2015/lib/interactions/interaction-draw.component.js +0 -72
  24. package/dist/fb-openlayers/esm2015/lib/interactions/interaction-modify.component.js +0 -72
  25. package/dist/fb-openlayers/esm2015/lib/interactions.directive.js +0 -61
  26. package/dist/fb-openlayers/esm2015/lib/layer.component.js +0 -157
  27. package/dist/fb-openlayers/esm2015/lib/map.component.js +0 -206
  28. package/dist/fb-openlayers/esm2015/lib/map.service.js +0 -70
  29. package/dist/fb-openlayers/esm2015/lib/models.js +0 -37
  30. package/dist/fb-openlayers/esm2015/lib/navigation/layer-arrival-circle.component.js +0 -116
  31. package/dist/fb-openlayers/esm2015/lib/navigation/layer-bearing-line.component.js +0 -229
  32. package/dist/fb-openlayers/esm2015/lib/navigation/layer-xte-path.component.js +0 -120
  33. package/dist/fb-openlayers/esm2015/lib/overlay.component.js +0 -56
  34. package/dist/fb-openlayers/esm2015/lib/resources/layer-charts.component.js +0 -141
  35. package/dist/fb-openlayers/esm2015/lib/resources/layer-notes.component.js +0 -177
  36. package/dist/fb-openlayers/esm2015/lib/resources/layer-regions.component.js +0 -184
  37. package/dist/fb-openlayers/esm2015/lib/resources/layer-resourceset.component.js +0 -226
  38. package/dist/fb-openlayers/esm2015/lib/resources/layer-routes.component.js +0 -188
  39. package/dist/fb-openlayers/esm2015/lib/resources/layer-sktarget-tracks.component.js +0 -213
  40. package/dist/fb-openlayers/esm2015/lib/resources/layer-sktargets.component.js +0 -269
  41. package/dist/fb-openlayers/esm2015/lib/resources/layer-skvessels.component.js +0 -410
  42. package/dist/fb-openlayers/esm2015/lib/resources/layer-tracks.component.js +0 -175
  43. package/dist/fb-openlayers/esm2015/lib/resources/layer-waypoints.component.js +0 -238
  44. package/dist/fb-openlayers/esm2015/lib/util.js +0 -124
  45. package/dist/fb-openlayers/esm2015/lib/vessel/layer-vessel-trail.component.js +0 -178
  46. package/dist/fb-openlayers/esm2015/lib/vessel/layer-vessel.component.js +0 -229
  47. package/dist/fb-openlayers/esm2015/lib/view.directive.js +0 -141
  48. package/dist/fb-openlayers/fb-openlayers.d.ts +0 -5
  49. package/dist/fb-openlayers/fb-openlayers.d.ts.map +0 -1
  50. package/dist/fb-openlayers/fb-openlayers.metadata.json +0 -1
  51. package/dist/fb-openlayers/fesm2015/fb-openlayers.js +0 -4326
  52. package/dist/fb-openlayers/fesm2015/fb-openlayers.js.map +0 -1
  53. package/dist/fb-openlayers/index.d.ts +0 -33
  54. package/dist/fb-openlayers/index.d.ts.map +0 -1
  55. package/dist/fb-openlayers/index.ngfactory.d.ts.map +0 -1
  56. package/dist/fb-openlayers/lib/alarms/layer-anchor-alarm.component.d.ts +0 -44
  57. package/dist/fb-openlayers/lib/alarms/layer-anchor-alarm.component.d.ts.map +0 -1
  58. package/dist/fb-openlayers/lib/alarms/layer-anchor-alarm.component.ngfactory.d.ts.map +0 -1
  59. package/dist/fb-openlayers/lib/alarms/layer-cpa-alarm.component.d.ts +0 -39
  60. package/dist/fb-openlayers/lib/alarms/layer-cpa-alarm.component.d.ts.map +0 -1
  61. package/dist/fb-openlayers/lib/alarms/layer-cpa-alarm.component.ngfactory.d.ts.map +0 -1
  62. package/dist/fb-openlayers/lib/content.component.d.ts +0 -6
  63. package/dist/fb-openlayers/lib/content.component.d.ts.map +0 -1
  64. package/dist/fb-openlayers/lib/content.component.ngfactory.d.ts.map +0 -1
  65. package/dist/fb-openlayers/lib/control.component.d.ts +0 -14
  66. package/dist/fb-openlayers/lib/control.component.d.ts.map +0 -1
  67. package/dist/fb-openlayers/lib/control.component.ngfactory.d.ts.map +0 -1
  68. package/dist/fb-openlayers/lib/controls.directive.d.ts +0 -14
  69. package/dist/fb-openlayers/lib/controls.directive.d.ts.map +0 -1
  70. package/dist/fb-openlayers/lib/controls.directive.ngfactory.d.ts.map +0 -1
  71. package/dist/fb-openlayers/lib/interactions/interaction-draw.component.d.ts +0 -27
  72. package/dist/fb-openlayers/lib/interactions/interaction-draw.component.d.ts.map +0 -1
  73. package/dist/fb-openlayers/lib/interactions/interaction-draw.component.ngfactory.d.ts.map +0 -1
  74. package/dist/fb-openlayers/lib/interactions/interaction-modify.component.d.ts +0 -26
  75. package/dist/fb-openlayers/lib/interactions/interaction-modify.component.d.ts.map +0 -1
  76. package/dist/fb-openlayers/lib/interactions/interaction-modify.component.ngfactory.d.ts.map +0 -1
  77. package/dist/fb-openlayers/lib/interactions.directive.d.ts +0 -14
  78. package/dist/fb-openlayers/lib/interactions.directive.d.ts.map +0 -1
  79. package/dist/fb-openlayers/lib/interactions.directive.ngfactory.d.ts.map +0 -1
  80. package/dist/fb-openlayers/lib/layer.component.d.ts +0 -41
  81. package/dist/fb-openlayers/lib/layer.component.d.ts.map +0 -1
  82. package/dist/fb-openlayers/lib/layer.component.ngfactory.d.ts.map +0 -1
  83. package/dist/fb-openlayers/lib/map.component.d.ts +0 -71
  84. package/dist/fb-openlayers/lib/map.component.d.ts.map +0 -1
  85. package/dist/fb-openlayers/lib/map.component.ngfactory.d.ts.map +0 -1
  86. package/dist/fb-openlayers/lib/map.component.scss.shim.ngstyle.d.ts.map +0 -1
  87. package/dist/fb-openlayers/lib/map.service.d.ts +0 -19
  88. package/dist/fb-openlayers/lib/map.service.d.ts.map +0 -1
  89. package/dist/fb-openlayers/lib/map.service.ngfactory.d.ts.map +0 -1
  90. package/dist/fb-openlayers/lib/models.d.ts +0 -42
  91. package/dist/fb-openlayers/lib/models.d.ts.map +0 -1
  92. package/dist/fb-openlayers/lib/navigation/layer-arrival-circle.component.d.ts +0 -39
  93. package/dist/fb-openlayers/lib/navigation/layer-arrival-circle.component.d.ts.map +0 -1
  94. package/dist/fb-openlayers/lib/navigation/layer-arrival-circle.component.ngfactory.d.ts.map +0 -1
  95. package/dist/fb-openlayers/lib/navigation/layer-bearing-line.component.d.ts +0 -49
  96. package/dist/fb-openlayers/lib/navigation/layer-bearing-line.component.d.ts.map +0 -1
  97. package/dist/fb-openlayers/lib/navigation/layer-bearing-line.component.ngfactory.d.ts.map +0 -1
  98. package/dist/fb-openlayers/lib/navigation/layer-xte-path.component.d.ts +0 -39
  99. package/dist/fb-openlayers/lib/navigation/layer-xte-path.component.d.ts.map +0 -1
  100. package/dist/fb-openlayers/lib/navigation/layer-xte-path.component.ngfactory.d.ts.map +0 -1
  101. package/dist/fb-openlayers/lib/overlay.component.d.ts +0 -25
  102. package/dist/fb-openlayers/lib/overlay.component.d.ts.map +0 -1
  103. package/dist/fb-openlayers/lib/overlay.component.ngfactory.d.ts.map +0 -1
  104. package/dist/fb-openlayers/lib/resources/layer-charts.component.d.ts +0 -20
  105. package/dist/fb-openlayers/lib/resources/layer-charts.component.d.ts.map +0 -1
  106. package/dist/fb-openlayers/lib/resources/layer-charts.component.ngfactory.d.ts.map +0 -1
  107. package/dist/fb-openlayers/lib/resources/layer-notes.component.d.ts +0 -51
  108. package/dist/fb-openlayers/lib/resources/layer-notes.component.d.ts.map +0 -1
  109. package/dist/fb-openlayers/lib/resources/layer-notes.component.ngfactory.d.ts.map +0 -1
  110. package/dist/fb-openlayers/lib/resources/layer-regions.component.d.ts +0 -53
  111. package/dist/fb-openlayers/lib/resources/layer-regions.component.d.ts.map +0 -1
  112. package/dist/fb-openlayers/lib/resources/layer-regions.component.ngfactory.d.ts.map +0 -1
  113. package/dist/fb-openlayers/lib/resources/layer-resourceset.component.d.ts +0 -49
  114. package/dist/fb-openlayers/lib/resources/layer-resourceset.component.d.ts.map +0 -1
  115. package/dist/fb-openlayers/lib/resources/layer-resourceset.component.ngfactory.d.ts.map +0 -1
  116. package/dist/fb-openlayers/lib/resources/layer-routes.component.d.ts +0 -52
  117. package/dist/fb-openlayers/lib/resources/layer-routes.component.d.ts.map +0 -1
  118. package/dist/fb-openlayers/lib/resources/layer-routes.component.ngfactory.d.ts.map +0 -1
  119. package/dist/fb-openlayers/lib/resources/layer-sktarget-tracks.component.d.ts +0 -44
  120. package/dist/fb-openlayers/lib/resources/layer-sktarget-tracks.component.d.ts.map +0 -1
  121. package/dist/fb-openlayers/lib/resources/layer-sktarget-tracks.component.ngfactory.d.ts.map +0 -1
  122. package/dist/fb-openlayers/lib/resources/layer-sktargets.component.d.ts +0 -51
  123. package/dist/fb-openlayers/lib/resources/layer-sktargets.component.d.ts.map +0 -1
  124. package/dist/fb-openlayers/lib/resources/layer-sktargets.component.ngfactory.d.ts.map +0 -1
  125. package/dist/fb-openlayers/lib/resources/layer-skvessels.component.d.ts +0 -60
  126. package/dist/fb-openlayers/lib/resources/layer-skvessels.component.d.ts.map +0 -1
  127. package/dist/fb-openlayers/lib/resources/layer-skvessels.component.ngfactory.d.ts.map +0 -1
  128. package/dist/fb-openlayers/lib/resources/layer-tracks.component.d.ts +0 -50
  129. package/dist/fb-openlayers/lib/resources/layer-tracks.component.d.ts.map +0 -1
  130. package/dist/fb-openlayers/lib/resources/layer-tracks.component.ngfactory.d.ts.map +0 -1
  131. package/dist/fb-openlayers/lib/resources/layer-waypoints.component.d.ts +0 -57
  132. package/dist/fb-openlayers/lib/resources/layer-waypoints.component.d.ts.map +0 -1
  133. package/dist/fb-openlayers/lib/resources/layer-waypoints.component.ngfactory.d.ts.map +0 -1
  134. package/dist/fb-openlayers/lib/util.d.ts +0 -19
  135. package/dist/fb-openlayers/lib/util.d.ts.map +0 -1
  136. package/dist/fb-openlayers/lib/vessel/layer-vessel-trail.component.d.ts +0 -45
  137. package/dist/fb-openlayers/lib/vessel/layer-vessel-trail.component.d.ts.map +0 -1
  138. package/dist/fb-openlayers/lib/vessel/layer-vessel-trail.component.ngfactory.d.ts.map +0 -1
  139. package/dist/fb-openlayers/lib/vessel/layer-vessel.component.d.ts +0 -55
  140. package/dist/fb-openlayers/lib/vessel/layer-vessel.component.d.ts.map +0 -1
  141. package/dist/fb-openlayers/lib/vessel/layer-vessel.component.ngfactory.d.ts.map +0 -1
  142. package/dist/fb-openlayers/lib/view.directive.d.ts +0 -44
  143. package/dist/fb-openlayers/lib/view.directive.d.ts.map +0 -1
  144. package/dist/fb-openlayers/lib/view.directive.ngfactory.d.ts.map +0 -1
  145. package/public/53.4babe18f9baabeea.js +0 -1
  146. package/public/main.a668c86ee67ed842.js +0 -1
  147. package/public/polyfills.1ba4e1a897c69e24.js +0 -1
  148. package/public/runtime.55118010dbcb6e60.js +0 -1
  149. package/public/styles.f013b594260c141e.css +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"fb-openlayers.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/fb-openlayers/src/lib/map.service.ts","../../../projects/fb-openlayers/src/lib/map.component.ts","../../../projects/fb-openlayers/src/lib/interactions.directive.ts","../../../projects/fb-openlayers/src/lib/overlay.component.ts","../../../projects/fb-openlayers/src/lib/controls.directive.ts","../../../projects/fb-openlayers/src/lib/view.directive.ts","../../../projects/fb-openlayers/src/lib/content.component.ts","../../../projects/fb-openlayers/src/lib/models.ts","../../../projects/fb-openlayers/src/lib/util.ts","../../../projects/fb-openlayers/src/lib/layer.component.ts","../../../projects/fb-openlayers/src/lib/control.component.ts","../../../projects/fb-openlayers/src/lib/interactions/interaction-draw.component.ts","../../../projects/fb-openlayers/src/lib/interactions/interaction-modify.component.ts","../../../projects/fb-openlayers/src/lib/resources/layer-waypoints.component.ts","../../../projects/fb-openlayers/src/lib/resources/layer-notes.component.ts","../../../projects/fb-openlayers/src/lib/resources/layer-routes.component.ts","../../../projects/fb-openlayers/src/lib/resources/layer-regions.component.ts","../../../projects/fb-openlayers/src/lib/resources/layer-charts.component.ts","../../../projects/fb-openlayers/src/lib/resources/layer-tracks.component.ts","../../../projects/fb-openlayers/src/lib/resources/layer-resourceset.component.ts","../../../projects/fb-openlayers/src/lib/resources/layer-sktargets.component.ts","../../../projects/fb-openlayers/src/lib/resources/layer-skvessels.component.ts","../../../projects/fb-openlayers/src/lib/resources/layer-sktarget-tracks.component.ts","../../../projects/fb-openlayers/src/lib/alarms/layer-anchor-alarm.component.ts","../../../projects/fb-openlayers/src/lib/alarms/layer-cpa-alarm.component.ts","../../../projects/fb-openlayers/src/lib/navigation/layer-arrival-circle.component.ts","../../../projects/fb-openlayers/src/lib/navigation/layer-xte-path.component.ts","../../../projects/fb-openlayers/src/lib/navigation/layer-bearing-line.component.ts","../../../projects/fb-openlayers/src/lib/vessel/layer-vessel.component.ts","../../../projects/fb-openlayers/src/lib/vessel/layer-vessel-trail.component.ts","../../../projects/fb-openlayers/src/index.ts","../../../projects/fb-openlayers/src/fb-openlayers.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import {Injectable} from '@angular/core';\nimport {Map} from 'ol';\nimport { Layer } from 'ol/layer';\nimport BaseLayer from 'ol/layer/Base'\nimport {get as getProj} from 'ol/proj';\nimport {register} from 'ol/proj/proj4.js';\nimport proj4 from 'proj4';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MapService {\n maps: Map[];\n\n constructor() {\n this.maps = [];\n }\n\n /**\n * Retrieves all the maps\n */\n getMaps(): Map[] {\n return this.maps;\n }\n\n /**\n * Returns a map object from the maps array\n */\n getMapById(id: string): Map {\n let map: Map = null;\n for (let i = 0; i < this.maps.length; i++) {\n if (this.maps[i].getTarget() === id) {\n map = this.maps[i];\n break;\n }\n }\n return map;\n }\n\n getLayerByKey(key: string, value: string): BaseLayer {\n let tl: BaseLayer;\n this.maps.forEach(map => {\n map.getLayers().forEach(layer => {\n if (layer.get(key) === value) {\n tl= layer;\n }\n });\n });\n return tl;\n }\n\n addMap(map: Map): void {\n this.maps.push(map);\n }\n\n updateSize() {\n this.maps.forEach(map => {\n map.updateSize();\n });\n }\n\n addProj4(epsg: string, proj4Def: string, extent?: any) {\n let projection = getProj(epsg);\n if (!projection) {\n proj4.defs(epsg, proj4Def);\n register(proj4);\n projection = getProj(epsg);\n if (extent) {\n projection.setExtent(extent);\n }\n }\n if (!projection) {\n console.error(`Failed to register ${epsg} projection in OpenLayers`);\n }\n }\n\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport {Map, MapBrowserEvent} from 'ol';\nimport MapEvent from 'ol/MapEvent';\nimport ObjectEvent from 'ol/Object';\nimport RenderEvent from 'ol/render/Event';\nimport {MapService} from './map.service';\nimport {MapReadyEvent} from './models';\nimport {AsyncSubject} from 'rxjs';\nimport {MapOptions} from 'ol/PluggableMap';\nimport { toLonLat, transformExtent } from 'ol/proj';\nimport { Coordinate } from 'ol/coordinate';\n\n@Component({\n selector: 'ol-map',\n styleUrls: ['./map.component.scss'],\n template: `\n <div style=\"width: 100%; height: 100%; margin: 0; padding: 0; touch-action: none;\" tabindex=-1>\n </div><ng-content></ng-content>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MapComponent implements OnInit, OnDestroy {\n\n private map: Map;\n private timeoutId: any;\n\n /**\n * This event is triggered after the map is initialized\n * Use this to have access to the maps and some helper functions\n */\n @Output() mapReady: AsyncSubject<MapReadyEvent> = new AsyncSubject(); // AsyncSubject will only store the last value, and only publish it when the sequence is completed\n\n /**\n * This event is triggered after the user clicks on the map.\n * A true single click with no dragging and no double click.\n * Note that this event is delayed by 250 ms to ensure that it is not a double click.\n */\n @Output() mapClick: EventEmitter<any> = new EventEmitter<any>();\n @Output() mapSingleClick: EventEmitter<MapBrowserEvent> = new EventEmitter<MapBrowserEvent>();\n @Output() mapDblClick: EventEmitter<MapBrowserEvent> = new EventEmitter<MapBrowserEvent>();\n @Output() mapMoveStart: EventEmitter<MapEvent> = new EventEmitter<MapEvent>();\n @Output() mapMoveEnd: EventEmitter<MapEvent> = new EventEmitter<MapEvent>();\n @Output() mapPointerDrag: EventEmitter<MapBrowserEvent> = new EventEmitter<MapBrowserEvent>();\n @Output() mapPointerMove: EventEmitter<MapBrowserEvent> = new EventEmitter<MapBrowserEvent>();\n @Output() mapPostCompose: EventEmitter<RenderEvent> = new EventEmitter<RenderEvent>();\n @Output() mapPostRender: EventEmitter<MapEvent> = new EventEmitter<MapEvent>();\n @Output() mapPreCompose: EventEmitter<RenderEvent> = new EventEmitter<RenderEvent>();\n @Output() mapPropertyChange: EventEmitter<ObjectEvent> = new EventEmitter<ObjectEvent>();\n\n @Input() pixelRatio: number;\n @Input() keyboardEventTarget: Element | string;\n @Input() logo: string | boolean;\n @Input() properties: { [index: string]: any };\n @Input() setFocus: boolean= false;\n @Input() hitTolerance: number= 5;\n\n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected element: ElementRef,\n protected mapService: MapService) {\n this.changeDetectorRef.detach();\n }\n\n ngOnInit() {\n const target = this.element.nativeElement.firstElementChild;\n this.map = new Map(this as MapOptions);\n this.map.setTarget(target);\n this.map.setProperties(this.properties, true);\n // register the map in the injectable mapService\n this.mapService.addMap(this.map);\n\n this.map.once('postrender', event => {\n this.afterMapReady();\n });\n\n }\n\n ngOnDestroy() {\n this.map.un('singleclick', this.emitSingleClickEvent);\n this.map.un('dblclick', this.emitDblClickEvent);\n this.map.un('click', this.emitClickEvent);\n this.map.un('movestart', this.emitMoveStartEvent);\n this.map.un('moveend', this.emitMoveEndEvent);\n this.map.un('pointerdrag', this.emitPointerDragEvent);\n this.map.un('pointermove', this.emitPointerMoveEvent);\n this.map.un('postcompose', this.emitPostComposeEvent);\n this.map.un('postrender', this.emitPostRenderEvent);\n this.map.un('precompose', this.emitPreComposeEvent);\n this.map.un('propertychange', this.emitPropertyChangeEvent);\n\n window.removeEventListener('resize', this.updateSizeThrottle);\n window.removeEventListener('orientationchange', this.updateSizeThrottle);\n\n this.map.setTarget(null);\n this.map = null;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if(this.map && typeof changes.setFocus!=='undefined') {\n if(changes.setFocus.currentValue) {\n this.focusMap();\n }\n }\n }\n\n afterMapReady() {\n // register map events\n this.map.on('singleclick', this.emitSingleClickEvent);\n this.map.on('dblclick', this.emitDblClickEvent);\n this.map.on('click', this.emitClickEvent);\n this.map.on('movestart', this.emitMoveStartEvent);\n this.map.on('moveend', this.emitMoveEndEvent);\n this.map.on('pointerdrag', this.emitPointerDragEvent);\n this.map.on('pointermove', this.emitPointerMoveEvent);\n this.map.on('postcompose', this.emitPostComposeEvent);\n this.map.on('postrender', this.emitPostRenderEvent);\n this.map.on('precompose', this.emitPreComposeEvent);\n this.map.on('propertychange', this.emitPropertyChangeEvent);\n\n // react on window events\n window.addEventListener('resize', this.updateSizeThrottle, false);\n window.addEventListener('orientationchange', this.updateSizeThrottle, false);\n\n this.updateSize();\n\n this.mapReady.next({map: this.map, mapService: this.mapService});\n this.mapReady.complete();\n\n if(this.setFocus) { this.focusMap() }\n }\n\n focusMap() {\n this.element.nativeElement.firstElementChild.focus();\n }\n\n getMap() {\n return this.map;\n }\n\n updateSize() {\n this.updateSizeThrottle();\n }\n\n getMapCenter(): Coordinate {\n if(!this.map) { return [0,0] }\n return toLonLat(this.map.getView().getCenter());\n }\n\n getMapExtent() {\n if(!this.map) { return [0,0,0,0] }\n let v= this.map.getView();\n let mrid= v.getProjection().getCode();\n\n return transformExtent(\n v.calculateExtent(this.map.getSize()),\n mrid, \n 'EPSG:4326'\n );\n }\n\n // Only arrow function works with addEventListener\n private emitClickEvent = (event: MapBrowserEvent) => {\n this.mapClick.emit(\n this.augmentClickEvent(event)\n );\n }\n\n private emitSingleClickEvent = (event: MapBrowserEvent) => {\n this.mapSingleClick.emit(\n this.augmentClickEvent(event)\n );\n }\n private emitDblClickEvent = (event: MapBrowserEvent) => {\n this.mapDblClick.emit(\n this.augmentClickEvent(event)\n );\n }\n\n // ** add {lonlat, features}fields to event \n private augmentClickEvent(event: MapBrowserEvent) {\n return Object.assign(event, {\n features: this.map.getFeaturesAtPixel(event.pixel, {hitTolerance: this.hitTolerance}),\n lonlat: toLonLat(event.coordinate)\n });\n }\n\n private emitMoveStartEvent = (event: MapEvent) => {\n this.mapMoveStart.emit(\n this.augmentMoveEvent(event)\n );\n }\n private emitMoveEndEvent = (event: MapEvent) => {\n this.mapMoveEnd.emit(\n this.augmentMoveEvent(event)\n );\n }\n\n // ** add {lonlat, zoom, extent, projection code} fields to event \n private augmentMoveEvent(event: MapEvent) {\n return Object.assign(event, {\n lonlat: this.getMapCenter(),\n zoom: this.map.getView().getZoom(),\n extent: this.getMapExtent(),\n projCode: this.map.getView().getProjection().getCode()\n });\n }\n\n private emitPointerDragEvent = (event: MapBrowserEvent) => {\n this.mapPointerDrag.emit(\n this.augmentPointerEvent(event)\n );\n }\n private emitPointerMoveEvent = (event: MapBrowserEvent) => {\n this.mapPointerMove.emit(\n this.augmentPointerEvent(event)\n );\n }\n\n // ** add {lonlat} field to event \n private augmentPointerEvent(event: MapBrowserEvent) {\n return Object.assign(event, { lonlat: toLonLat(event.coordinate) });\n }\n\n private emitPostComposeEvent = (event: RenderEvent) => this.mapPostCompose.emit(event);\n private emitPostRenderEvent = (event: MapEvent) => this.mapPostRender.emit(event);\n private emitPreComposeEvent = (event: RenderEvent) => this.mapPreCompose.emit(event);\n private emitPropertyChangeEvent = (event: ObjectEvent) => this.mapPropertyChange.emit(event);\n\n private updateSizeThrottle = () => {\n clearTimeout(this.timeoutId);\n this.timeoutId = setTimeout(() => {\n this.map.updateSize();\n }, 100);\n }\n\n}\n","import {ChangeDetectorRef, Directive, Input, OnInit} from '@angular/core';\nimport {\n DoubleClickZoom,\n DragPan,\n DragRotate,\n DragZoom,\n KeyboardPan,\n KeyboardZoom,\n MouseWheelZoom,\n PinchZoom\n} from 'ol/interaction';\nimport {MapComponent} from './map.component';\n\n@Directive({\n selector: 'ol-map > [olInteractions]'\n})\nexport class InteractionsDirective implements OnInit {\n\n private interactions = [];\n private readonly interactionList = {\n dragpan: DragPan,\n dragrotate: DragRotate,\n dragzoom: DragZoom,\n doubleclickzoom: DoubleClickZoom,\n keyboardpan: KeyboardPan,\n keyboardzoom: KeyboardZoom,\n mousewheelzoom: MouseWheelZoom,\n pinchzoom: PinchZoom\n };\n\n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n this.changeDetectorRef.detach();\n }\n\n @Input()\n set olInteractions(value: any[]) {\n this.interactions = value;\n this.setInteractions();\n }\n\n ngOnInit() {\n this.setInteractions();\n }\n\n setInteractions() {\n const map = this.mapComponent.getMap();\n if (undefined !== map) {\n map.getInteractions().clear();\n if (!this.interactions || this.interactions.length < 0) return;\n for (const config of this.interactions) {\n this.addInteraction(map, config);\n }\n this.changeDetectorRef.detectChanges();\n }\n }\n\n private addInteraction(map, controlConfig) {\n if (!this.interactionList[controlConfig.name]) {\n console.error(`Unknown interaction ${controlConfig.name}`);\n return;\n }\n const newInteraction = new this.interactionList[controlConfig.name](controlConfig.options);\n map.addInteraction(newInteraction);\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges\n} from '@angular/core';\nimport Overlay, {Options, PanIntoViewOptions} from 'ol/Overlay';\nimport OverlayPositioning from 'ol/OverlayPositioning';\nimport { fromLonLat } from 'ol/proj';\nimport {MapComponent} from './map.component';\nimport {Coordinate} from './models';\n\n@Component({\n selector: 'ol-map > ol-overlay',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OverlayComponent implements OnInit, OnChanges, OnDestroy {\n protected overlay: Overlay;\n public element: HTMLElement;\n\n @Input() id: number | string;\n @Input() className: string;\n @Input() offset: number[];\n @Input() position: Coordinate;\n @Input() positioning: OverlayPositioning | string;\n @Input() stopEvent: boolean;\n @Input() insertFirst: boolean;\n\n constructor(\n protected changeDetectorRef: ChangeDetectorRef,\n protected elementRef: ElementRef,\n protected mapComponent: MapComponent\n ) {\n this.changeDetectorRef.detach();\n }\n\n ngOnInit() {\n if(this.elementRef.nativeElement) {\n this.element = this.elementRef.nativeElement;\n this.overlay = new Overlay(this as Options);\n this.mapComponent.getMap().addOverlay(this.overlay);\n this.overlay.setPosition(fromLonLat(this.position));\n }\n }\n\n ngOnDestroy() {\n if (this.overlay) {\n this.mapComponent.getMap().removeOverlay(this.overlay);\n this.overlay = null;\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.overlay && changes.hasOwnProperty('position')) {\n this.overlay.setPosition(fromLonLat(changes.position.currentValue));\n }\n }\n\n panIntoView(panIntoViewOptions: PanIntoViewOptions) {\n this.overlay.panIntoView(panIntoViewOptions);\n }\n}\n","import {ChangeDetectorRef, Directive, Input, OnInit} from '@angular/core';\nimport {Attribution, FullScreen, Rotate, ScaleLine, Zoom, ZoomSlider, ZoomToExtent} from 'ol/control';\nimport {MapComponent} from './map.component';\n\n@Directive({\n selector: 'ol-map > [olControls]'\n})\nexport class ControlsDirective implements OnInit {\n\n private controls = [];\n private readonly controlList = {\n attribution: Attribution,\n fullscreen: FullScreen,\n rotate: Rotate,\n scaleline: ScaleLine,\n zoom: Zoom,\n zoomslider: ZoomSlider,\n zoomtoextent: ZoomToExtent\n };\n\n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n this.changeDetectorRef.detach();\n }\n\n @Input()\n set olControls(value: any[]) {\n this.controls = value;\n this.setControls();\n }\n\n ngOnInit() {\n this.setControls();\n }\n\n setControls() {\n const map = this.mapComponent.getMap();\n if (undefined !== map) {\n map.getControls().clear();\n if (!this.controls || this.controls.length < 0) {\n return;\n }\n for (const config of this.controls) {\n this.addControl(map, config);\n }\n this.changeDetectorRef.detectChanges();\n }\n }\n\n private addControl(map, controlConfig) {\n if (!this.controlList[controlConfig.name]) {\n console.warn(`Unknown control ${controlConfig.name}`);\n return;\n }\n const newControl = new this.controlList[controlConfig.name](controlConfig.options);\n map.addControl(newControl);\n }\n\n}\n","import {\n AfterViewInit, ChangeDetectorRef,\n Directive,\n EventEmitter,\n Input,\n OnChanges, OnDestroy,\n OnInit,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport View from 'ol/View';\nimport { transformExtent, toLonLat, fromLonLat} from 'ol/proj';\nimport {Coordinate, Extent} from './models';\nimport {MapComponent} from './map.component';\nimport {ProjectionLike} from 'ol/proj';\n\nconst animateDuration = 500;\n\n@Directive({\n selector: 'ol-map > [olView]'\n})\nexport class ViewDirective implements OnInit, AfterViewInit, OnChanges, OnDestroy {\n\n private timerCenterId: any;\n private timerZoomId: any;\n private timerRotationId: any;\n private view: View;\n private viewProperties: { [index: string]: any } = {};\n\n @Output() centerChange: EventEmitter<Coordinate> = new EventEmitter<Coordinate>();\n @Output() rotationChange: EventEmitter<number> = new EventEmitter<number>();\n @Output() zoomChange: EventEmitter<number> = new EventEmitter<number>();\n\n @Input() enableAnimation: boolean= false;\n @Input() constrainRotation: boolean | number;\n @Input() constrainResolution: boolean;\n @Input() enableRotation: boolean;\n @Input() extent: Extent;\n @Input() maxResolution: number;\n @Input() minResolution: number;\n @Input() maxZoom: number;\n @Input() minZoom: number;\n @Input() multiWorld: boolean;\n @Input() resolution: number;\n @Input() resolutions: number[];\n @Input() rotation: number;\n @Input() zoom: number;\n @Input() zoomFactor: number;\n @Input() center: Coordinate;\n @Input() projection: ProjectionLike;\n\n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n this.changeDetectorRef.detach();\n }\n\n ngOnInit() {\n this.view = new View(this.viewProperties);\n this.view.setRotation(this.rotation ?? 0);\n const map = this.mapComponent.getMap();\n if (map) {\n map.setView(this.view);\n map.updateSize();\n }\n }\n\n ngAfterViewInit() {\n const map = this.mapComponent.getMap();\n if (map) {\n // register view events\n this.view.on('change:center', this.emitCenterChange);\n this.view.on('change:resolution', this.emitZoomChange);\n this.view.on('change:rotation', this.emitRotationChange);\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const properties: { [index: string]: any } = {};\n\n for (const key in changes) {\n if (key === 'zoom') {\n if(this.view) {\n if(this.enableAnimation) {\n this.view.animate({zoom: changes[key].currentValue, duration: animateDuration});\n }\n else { this.view.setZoom(changes[key].currentValue) }\n }\n else { properties[key] = changes[key].currentValue }\n } \n else if (key === 'center') {\n if(this.view) {\n if(this.enableAnimation) {\n this.view.animate({center: changes[key].currentValue, duration: animateDuration});\n }\n else { this.view.setCenter( fromLonLat(changes[key].currentValue) ) }\n }\n else { properties[key] = fromLonLat(changes[key].currentValue) }\n }\n else {\n properties[key] = changes[key].currentValue;\n }\n }\n this.viewProperties= properties;\n if(this.view) {\n this.view.setProperties(this.viewProperties, false);\n this.view.setRotation(this.rotation ?? 0);\n }\n }\n\n ngOnDestroy() {\n this.view.un('change:center', this.emitCenterChange);\n this.view.un('change:resolution', this.emitZoomChange);\n this.view.un('change:rotation', this.emitRotationChange);\n }\n\n getView(): View {\n return this.view;\n }\n\n // Only arrow function works with addEventListener\n private emitCenterChange = (e: any) => {\n clearTimeout(this.timerCenterId);\n this.timerCenterId = setTimeout(() => this.centerChange.emit(\n Object.assign(e, {\n lonlat: toLonLat(this.view.getCenter()),\n zoom: this.view.getZoom(),\n extent: transformExtent(\n this.view.calculateExtent(this.mapComponent.getMap().getSize()),\n this.view.getProjection().getCode(), \n 'EPSG:4326'\n ),\n projCode: this.view.getProjection().getCode(),\n key: e.target.get(e.key)\n })\n ), animateDuration + 10);\n }\n\n private emitZoomChange = (e: any) => {\n clearTimeout(this.timerZoomId);\n this.timerZoomId = setTimeout(() => this.zoomChange.emit(\n Object.assign(e, {\n lonlat: toLonLat(this.view.getCenter()),\n zoom: this.view.getZoom(),\n extent: transformExtent(\n this.view.calculateExtent(this.mapComponent.getMap().getSize()),\n this.view.getProjection().getCode(), \n 'EPSG:4326'\n ),\n projCode: this.view.getProjection().getCode(),\n key: e.target.get(e.key)\n })\n ), animateDuration + 10);\n }\n\n private emitRotationChange = (e: any) => {\n clearTimeout(this.timerRotationId);\n this.timerRotationId = setTimeout(() => this.rotationChange.emit(e.target.get(e.key)), animateDuration + 10);\n }\n\n}\n","import {Component, ElementRef} from '@angular/core';\n\n@Component({\n selector: 'ol-map > ol-content',\n template: '<ng-content></ng-content>'\n})\nexport class ContentComponent {\n\n constructor(public elementRef: ElementRef) {\n }\n}\n","import {Map} from 'ol';\nimport {MapService} from './map.service';\n\n/* enum types */\n\nexport enum LayerType {\n IMAGE, TILE, VECTOR_TILE, VECTOR\n}\n\nexport enum SourceType {\n BINGMAPS,\n CARTODB,\n CLUSTER,\n IMAGE,\n IMAGEARCGISREST,\n IMAGECANVAS,\n IMAGEMAPGUIDE,\n IMAGESTATIC,\n IMAGEVECTOR,\n IMAGEWMS,\n OSM,\n RASTER,\n STAMEN,\n TILEARCGISREST,\n TILEDEBUG,\n TILEIMAGE,\n TILEJSON,\n TILEUTFGRID,\n TILEWMS,\n URLTILE,\n VECTOR,\n VECTORTILE,\n WMTS,\n XYZ,\n ZOOMIFY,\n}\n\n/* interface types */\nexport type Coordinate = [number, number, number?];\n\nexport type Extent = [number, number, number, number];\n\nexport interface MapReadyEvent {\n map: Map;\n mapService: MapService;\n}\n","import TileLayer from 'ol/layer/Tile.js';\nimport OSM from 'ol/source/OSM.js';\nimport { getPointResolution, fromLonLat } from 'ol/proj';\n\nimport { Coordinate } from './models';\nimport { Options } from 'ol/layer/BaseTile';\n\nexport function stringToEl(html: string) {\n const parser = new DOMParser();\n const DOM = parser.parseFromString(html, 'text/html');\n return DOM.body.firstChild;\n}\n\nexport function defaultLayers() {\n return [\n osmLayer()\n ];\n}\n\nexport function osmLayer() {\n return new TileLayer({source: new OSM()});\n}\n\nexport function osmSource() {\n return new OSM();\n}\n\nexport function fromLonLatArray(coords:Coordinate) // Point\nexport function fromLonLatArray(coords:Array<Coordinate>) //LineString\nexport function fromLonLatArray(coords:Array<Array<Coordinate>>) // MultiLineString\nexport function fromLonLatArray(coords: Array<any>) {\n if( !Array.isArray(coords) ) { return coords }\n if(typeof coords[0]=='number') {\n return fromLonLat(coords);\n }\n else if(Array.isArray(coords[0]) ) { \n return coords.map( c=> { return fromLonLatArray(c) });\n }\n else { return coords }\n}\n\n/** DateLine Crossing:\n * returns true if point is in the zone for dateline transition \n * zoneValue: lower end of 180 to xx range within which Longitude must fall for retun value to be true\n**/\nexport function inDLCrossingZone(coord:Coordinate, zoneValue:number= 170) {\n return (Math.abs(coord[0])>=zoneValue) ? true : false;\n}\n\n// update linestring coords for map display (including dateline crossing)\nexport function mapifyCoords(coords:Array<Coordinate>):Array<Coordinate> {\n if(coords.length==0) { return coords }\n let dlCrossing= 0;\n let last= coords[0];\n for(let i=0; i< coords.length; i++) { \n if( inDLCrossingZone(coords[i]) || inDLCrossingZone(last) ) {\n dlCrossing= (last[0]>0 && coords[i][0]<0) ? 1 \n : (last[0]<0 && coords[i][0]>0) ? -1 : 0;\n if(dlCrossing==1) { coords[i][0]= coords[i][0] + 360}\n if(dlCrossing==-1) { coords[i][0]= Math.abs(coords[i][0])-360 }\n } \n }\n return coords;\n} \n\n// ** return adjusted radius to correctly render circle on ground at given position.\nexport function mapifyRadius(radius:number, position:Coordinate): number {\n if(typeof radius=== 'undefined' || typeof position=== 'undefined') { return radius }\n return radius / getPointResolution('EPSG:3857', 1, fromLonLat(position));\n}\n\n/*\n* Calculate the destination point given start point\n* latitude / longitude (numeric degrees), bearing (radians) and\n* distance (in m).\n*\n* Original scripts by Chris Veness Taken from\n* http://movable-type.co.uk/scripts/latlong-vincenty-direct.html and optimized /\n* cleaned up by Mathias Bynens <http://mathiasbynens.be/> Based on the Vincenty\n* direct formula by T. Vincenty, Direct and Inverse Solutions of Geodesics on\n* the Ellipsoid with application of nested equations, Survey Review, vol XXII\n* no 176, 1975 <http://www.ngs.noaa.gov/PUBS_LIB/inverse.pdf> */\nexport function destCoordinate(coord:Coordinate, brng:number, dist:number): Coordinate {\n let lat1:number= coord[1];\n let lon1:number= coord[0];\n let a = 6378137, b = 6356752.3142, f = 1 / 298.257223563, // WGS-84\n // ellipsiod\n s = dist, alpha1 = brng, sinAlpha1 = Math.sin(alpha1), cosAlpha1 = Math\n .cos(alpha1), tanU1 = (1 - f) * Math.tan(lat1 * (Math.PI/180)), cosU1 = 1 / Math\n .sqrt((1 + tanU1 * tanU1)), sinU1 = tanU1 * cosU1, sigma1 = Math\n .atan2(tanU1, cosAlpha1), sinAlpha = cosU1 * sinAlpha1, cosSqAlpha = 1\n - sinAlpha * sinAlpha, uSq = cosSqAlpha * (a * a - b * b) / (b * b), A = 1\n + uSq / 16384 * (4096 + uSq * (-768 + uSq * (320 - 175 * uSq))), B = uSq\n / 1024 * (256 + uSq * (-128 + uSq * (74 - 47 * uSq))), sigma = s\n / (b * A), sigmaP = 2 * Math.PI;\n while (Math.abs(sigma - sigmaP) > 1e-12) {\n var cos2SigmaM = Math.cos(2 * sigma1 + sigma), sinSigma = Math\n .sin(sigma), cosSigma = Math.cos(sigma), deltaSigma = B\n * sinSigma\n * (cos2SigmaM + B\n / 4\n * (cosSigma * (-1 + 2 * cos2SigmaM * cos2SigmaM) - B\n / 6 * cos2SigmaM\n * (-3 + 4 * sinSigma * sinSigma)\n * (-3 + 4 * cos2SigmaM * cos2SigmaM)));\n sigmaP = sigma;\n sigma = s / (b * A) + deltaSigma;\n }\n\n let tmp = sinU1 * sinSigma - cosU1 * cosSigma * cosAlpha1, lat2 = Math\n .atan2(sinU1 * cosSigma + cosU1 * sinSigma * cosAlpha1, (1 - f)\n * Math.sqrt(sinAlpha * sinAlpha + tmp * tmp)), lambda = Math\n .atan2(sinSigma * sinAlpha1, cosU1 * cosSigma - sinU1 * sinSigma\n * cosAlpha1), C = f / 16 * cosSqAlpha\n * (4 + f * (4 - 3 * cosSqAlpha)), La = lambda\n - (1 - C)\n * f\n * sinAlpha\n * (sigma + C\n * sinSigma\n * (cos2SigmaM + C * cosSigma\n * (-1 + 2 * cos2SigmaM * cos2SigmaM))), revAz = Math\n .atan2(sinAlpha, -tmp); // final bearing\n let llat = lat2 * (180/Math.PI);\n let llon = lon1 + La * (180/Math.PI);\n return [llon, llat];\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport {Layer} from 'ol/layer';\nimport ImageLayer from 'ol/layer/Image';\nimport TileLayer from 'ol/layer/Tile';\nimport VectorTileLayer from 'ol/layer/VectorTile';\n// import VectorImageLayer from 'ol/layer/VectorImage';\nimport VectorTileSource from 'ol/source/VectorTile';\nimport {Cluster, ImageWMS, OSM, Source, TileImage, TileWMS, WMTS, XYZ} from 'ol/source';\nimport VectorLayer from 'ol/layer/Vector';\nimport VectorSource from 'ol/source/Vector';\n\nimport {MapComponent} from './map.component';\nimport {Extent, LayerType, SourceType} from './models';\nimport {osmLayer, osmSource} from './util';\nimport {AsyncSubject} from 'rxjs';\n\n@Component({\n selector: 'ol-map > ol-layer',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayerComponent implements OnInit, OnDestroy, OnChanges {\n\n protected layer: Layer;\n public source: any;\n\n /**\n * This event is triggered after the layer is initialized\n * Use this to have access to the layer and some helper functions\n */\n @Output() layerReady: AsyncSubject<Layer> = new AsyncSubject(); // AsyncSubject will only store the last value, and only publish it when the sequence is completed\n\n @Input() layerType: LayerType;\n @Input() sourceType: SourceType;\n @Input() opacity: number;\n @Input() visible: boolean;\n @Input() extent: Extent;\n @Input() zIndex: number;\n @Input() minResolution: number;\n @Input() maxResolution: number;\n @Input() sourceOptions: any;\n @Input() style: any;\n @Input() properties: { [index: string]: any };\n\n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n this.changeDetectorRef.detach();\n }\n\n ngOnInit() {\n\n switch (this.layerType) {\n case LayerType.IMAGE:\n this.source = new ImageWMS(this.sourceOptions);\n this.layer = new ImageLayer(Object.assign(this, {...this.properties}));\n break;\n case LayerType.TILE:\n this.source = this.getTileSource(this.sourceOptions);\n this.layer = new TileLayer(Object.assign(this, {...this.properties}));\n break;\n case LayerType.VECTOR_TILE:\n this.source = new VectorTileSource(this.sourceOptions);\n this.layer = new VectorTileLayer(Object.assign(this, {...this.properties}));\n break;\n case LayerType.VECTOR:\n if (this.sourceOptions.sourceType === SourceType.CLUSTER) {\n this.source = new Cluster(this.sourceOptions);\n this.layer = new VectorLayer(Object.assign(this, {...this.properties}));\n } else {\n this.source = new VectorSource(this.sourceOptions);\n this.layer = new VectorLayer(Object.assign(this, {...this.properties}));\n }\n break;\n default:\n this.layer = osmLayer();\n break;\n }\n\n const map = this.mapComponent.getMap();\n if (this.layer && map) {\n map.addLayer(this.layer);\n map.render();\n this.layerReady.next(this.layer);\n this.layerReady.complete();\n }\n\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.layer) {\n const properties: { [index: string]: any } = {};\n\n for (const key in changes) {\n properties[key] = changes[key].currentValue;\n }\n this.layer.setProperties(properties, false);\n }\n }\n\n ngOnDestroy() {\n const map = this.mapComponent.getMap();\n if (this.layer && map) {\n map.removeLayer(this.layer);\n map.render();\n this.layer = null;\n }\n }\n\n getLayer(): Layer {\n return this.layer;\n }\n\n getMap() {\n return this.mapComponent.getMap();\n }\n\n getSource(): Source {\n let olSource = this.layer.getSource();\n if (olSource instanceof Cluster) {\n olSource = olSource.getSource();\n }\n return olSource;\n }\n\n getUrl(): string {\n if (this.source instanceof ImageWMS) {\n return this.source.getUrl();\n }\n if (this.source instanceof WMTS) {\n return this.source.getUrls()[0];\n }\n if (this.source instanceof TileWMS) {\n return this.source.getUrls()[0];\n } else {\n return '';\n }\n }\n\n updateParams(name?: string, value?: any) {\n const params = this.source.getParams();\n if (name && value) {\n params[name.toUpperCase()] = value;\n }\n params['T'] = new Date().getMilliseconds();\n this.source.updateParams(params); // {'TIME': startDate.toISOString()}\n }\n\n private getTileSource(sourceOptions: any) {\n\n switch (sourceOptions.sourceType) {\n case SourceType.IMAGEWMS:\n return new ImageWMS(sourceOptions);\n case SourceType.OSM:\n return new OSM(sourceOptions);\n case SourceType.TILEWMS:\n return new TileWMS(sourceOptions);\n case SourceType.TILEIMAGE:\n return new TileImage(sourceOptions);\n case SourceType.WMTS:\n return new WMTS(sourceOptions);\n case SourceType.XYZ:\n return new XYZ(sourceOptions);\n default:\n return osmSource();\n }\n }\n\n}\n","import { Component, ElementRef, ChangeDetectionStrategy, ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';\nimport { Control } from 'ol/control';\nimport { MapComponent } from './map.component';\n\n@Component({\n selector: 'ol-map > ol-control',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ControlComponent implements OnInit, OnDestroy {\n\n protected control: Control;\n public element: HTMLElement;\n \n constructor(\n protected changeDetectorRef: ChangeDetectorRef,\n protected elementRef: ElementRef,\n protected mapComponent: MapComponent\n ) {\n this.changeDetectorRef.detach();\n }\n \n ngOnInit() {\n if(this.elementRef.nativeElement) {\n this.element = this.elementRef.nativeElement;\n this.control = new Control({element: this.element});\n this.mapComponent.getMap().addControl(this.control);\n }\n }\n \n ngOnDestroy() {\n if (this.control) {\n this.mapComponent.getMap().removeControl(this.control);\n this.control = null;\n }\n }\n}\n","import {ChangeDetectorRef, ChangeDetectionStrategy, Component, Output, OnInit, Input, EventEmitter } from '@angular/core';\nimport { Map } from 'ol';\nimport GeometryType from 'ol/geom/GeometryType';\nimport { Draw } from 'ol/interaction';\nimport { DrawEvent } from 'ol/interaction/Draw';\nimport { Style } from 'ol/style';\nimport { MapComponent } from '../map.component';\n\n@Component({\n selector: 'ol-map > ol-draw',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class InteractionDrawComponent implements OnInit {\n\n\n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n this.changeDetectorRef.detach();\n }\n\n @Input() type: GeometryType= GeometryType.LINE_STRING;\n @Input() style: Style;\n\n @Output() change: EventEmitter<DrawEvent>= new EventEmitter();\n @Output() drawStart: EventEmitter<DrawEvent>= new EventEmitter();\n @Output() drawEnd: EventEmitter<DrawEvent>= new EventEmitter();\n @Output() drawAbort: EventEmitter<DrawEvent>= new EventEmitter();\n\n private map: Map;\n private interaction: Draw;\n\n ngOnInit() { }\n\n ngAfterViewInit() {\n this.map= this.mapComponent.getMap();\n this.addDrawInteraction();\n }\n\n ngOnDestroy() {\n this.map.removeInteraction(this.interaction);\n this.interaction.un('change', this.emitChangeEvent);\n this.interaction.un('drawstart', this.emitDrawStartEvent);\n this.interaction.un('drawend', this.emitDrawEndEvent);\n this.interaction.un('drawabort', this.emitDrawAbortEvent);\n this.interaction= null;\n }\n\n addDrawInteraction() {\n if (undefined !== this.map) {\n let opt: any= {\n type: this.type,\n stopClick: true\n }\n if(this.style) { opt.style= this.style }\n this.interaction= new Draw(opt);\n this.interaction.on('change', this.emitChangeEvent);\n this.interaction.on('drawstart', this.emitDrawStartEvent);\n this.interaction.on('drawend', this.emitDrawEndEvent);\n this.interaction.on('drawabort', this.emitDrawAbortEvent);\n this.map.addInteraction(this.interaction);\n this.changeDetectorRef.detectChanges();\n }\n }\n\n // ** emit events\n private emitChangeEvent = (event: DrawEvent) => this.change.emit(event);\n private emitDrawStartEvent = (event: DrawEvent) => this.drawStart.emit(event);\n private emitDrawEndEvent = (event: DrawEvent) => this.drawEnd.emit(event);\n private emitDrawAbortEvent = (event: DrawEvent) => this.drawAbort.emit(event);\n\n}\n","import {ChangeDetectorRef, ChangeDetectionStrategy, Component, Output, OnInit, Input, EventEmitter } from '@angular/core';\nimport { Map, Feature, Collection, MapBrowserEvent } from 'ol';\nimport { Geometry } from 'ol/geom';\nimport { Modify } from 'ol/interaction';\nimport { ModifyEvent } from 'ol/interaction/Modify';\nimport { MapComponent } from '../map.component';\n\n@Component({\n selector: 'ol-map > ol-modify',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class InteractionModifyComponent implements OnInit {\n\n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n this.changeDetectorRef.detach();\n }\n\n @Input() features: Collection<Feature<Geometry>>;\n\n @Output() change: EventEmitter<ModifyEvent>= new EventEmitter();\n @Output() modifyStart: EventEmitter<ModifyEvent>= new EventEmitter();\n @Output() modifyEnd: EventEmitter<ModifyEvent>= new EventEmitter();\n @Output() propertyChange: EventEmitter<ModifyEvent>= new EventEmitter();\n\n private map: Map;\n private interaction: Modify;\n\n ngOnInit() { }\n\n ngAfterViewInit() {\n this.map = this.mapComponent.getMap();\n this.addModifyInteraction();\n }\n\n ngOnDestroy() {\n this.map.removeInteraction(this.interaction);\n this.interaction.un('change', this.emitChangeEvent);\n this.interaction.un('modifystart', this.emitModifyStartEvent);\n this.interaction.un('modifyend', this.emitModifyEndEvent);\n this.interaction.un('propertychange', this.emitPropertyChangeEvent);\n this.interaction= null;\n }\n\n addModifyInteraction() {\n if (undefined !== this.map) {\n this.interaction= new Modify({\n features: this.features,\n deleteCondition: (e:any)=> {\n if(e.type=='click' && e.originalEvent.ctrlKey) { return true }\n else { return false }\n }\n });\n this.interaction.on('change', this.emitChangeEvent);\n this.interaction.on('modifystart', this.emitModifyStartEvent);\n this.interaction.on('modifyend', this.emitModifyEndEvent);\n this.interaction.on('propertychange', this.emitPropertyChangeEvent);\n this.map.addInteraction(this.interaction);\n this.changeDetectorRef.detectChanges();\n }\n }\n\n // ** emit events\n \n private emitChangeEvent = (event: ModifyEvent) => this.change.emit(event);\n private emitModifyStartEvent = (event: ModifyEvent) => this.modifyStart.emit(event);\n private emitModifyEndEvent = (event: ModifyEvent) => this.modifyEnd.emit(event);\n private emitPropertyChangeEvent = (event: ModifyEvent) => this.propertyChange.emit(event);\n\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChange,\n SimpleChanges\n} from '@angular/core';\nimport { Layer } from 'ol/layer';\nimport { Feature } from 'ol';\nimport VectorLayer from 'ol/layer/Vector';\nimport VectorSource from 'ol/source/Vector';\nimport { Style, Text, Circle, Fill, Stroke } from 'ol/style';\nimport { Point } from 'ol/geom';\nimport { fromLonLat } from 'ol/proj';\nimport { MapComponent } from '../map.component';\nimport { Extent } from '../models';\nimport { AsyncSubject } from 'rxjs';\n\n// ** Signal K resource collection format **\n@Component({\n selector: 'ol-map > sk-waypoints',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WaypointLayerComponent implements OnInit, OnDestroy, OnChanges {\n\n protected layer: Layer;\n public source: VectorSource;\n protected features: Array<Feature>;\n\n /**\n * This event is triggered after the layer is initialized\n * Use this to have access to the layer and some helper functions\n */\n @Output() layerReady: AsyncSubject<Layer> = new AsyncSubject(); // AsyncSubject will only store the last value, and only publish it when the sequence is completed\n\n @Input() waypoints: {[key:string]: any};\n @Input() waypointStyles: {[key:string]: Style};\n @Input() activeWaypoint: string;\n @Input() labelMinZoom: number= 10;\n @Input() mapZoom: number= 10;\n @Input() opacity: number;\n @Input() visible: boolean;\n @Input() extent: Extent;\n @Input() zIndex: number;\n @Input() minResolution: number;\n @Input() maxResolution: number;\n @Input() layerProperties: { [index: string]: any };\n\n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n this.changeDetectorRef.detach();\n }\n\n ngOnInit() {\n this.parseWaypoints(this.waypoints);\n this.source = new VectorSource({features: this.features});\n this.layer = new VectorLayer(Object.assign(this, {...this.layerProperties}));\n\n const map = this.mapComponent.getMap();\n if(this.layer && map) {\n map.addLayer(this.layer);\n map.render();\n this.layerReady.next(this.layer);\n this.layerReady.complete();\n }\n\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if(this.layer) {\n const properties: { [index: string]: any } = {};\n\n for(const key in changes) {\n if(key=='waypoints') {\n this.parseWaypoints(changes[key].currentValue);\n if(this.source) { \n this.source.clear();\n this.source.addFeatures(this.features);\n }\n }\n else if( key=='waypointStyles') { }\n else if( key=='activeWaypoint') {\n this.parseWaypoints(this.waypoints);\n if(this.source) { \n this.source.clear();\n this.source.addFeatures(this.features);\n }\n }\n else if( key=='labelMinZoom' || key=='mapZoom') { \n this.handleLabelZoomChange(key, changes[key]);\n }\n else if( key=='layerProperties') { \n this.layer.setProperties(properties, false);\n }\n else {\n properties[key] = changes[key].currentValue;\n }\n }\n this.layer.setProperties(properties, false);\n }\n }\n\n ngOnDestroy() {\n const map = this.mapComponent.getMap();\n if (this.layer && map) {\n map.removeLayer(this.layer);\n map.render();\n this.layer = null;\n }\n }\n\n parseWaypoints(waypoints: {[key:string]: any}= this.waypoints) {\n let fa: Feature[]= [];\n for( const w in waypoints ) {\n let f= new Feature({\n geometry: new Point( fromLonLat(waypoints[w].feature.geometry.coordinates) ),\n name: waypoints[w].feature.properties.name\n });\n f.setId('waypoint.'+ w);\n f.setStyle(this.buildStyle(w, waypoints[w]));\n fa.push(f);\n }\n this.features= fa;\n }\n\n // ** assess attribute change **\n handleLabelZoomChange(key: string, change: SimpleChange) {\n if(key=='labelMinZoom') {\n if(typeof this.mapZoom!=='undefined') { \n this.updateLabels();\n }\n }\n else if(key=='mapZoom') {\n if(typeof this.labelMinZoom !=='undefined') {\n if( (change.currentValue >= this.labelMinZoom && change.previousValue < this.labelMinZoom) || \n (change.currentValue < this.labelMinZoom && change.previousValue >= this.labelMinZoom) ) {\n this.updateLabels();\n }\n }\n }\n }\n\n // build waypoint style\n buildStyle(id:string, wpt:any):Style {\n if(typeof this.waypointStyles!=='undefined') {\n if( id== this.activeWaypoint && typeof this.waypointStyles.active!=='undefined') {\n return this.setTextLabel(this.waypointStyles.active, wpt.feature.properties.name);\n }\n else if( wpt.feature.properties.skType ) {\n return this.setTextLabel(\n this.waypointStyles[wpt.feature.properties.skType], \n wpt.feature.properties.name\n );\n }\n else {\n return this.setTextLabel(this.waypointStyles.default, wpt.feature.properties.name);\n }\n }\n else if(this.layerProperties && this.layerProperties.style) {\n return this.setTextLabel(this.layerProperties.style, wpt.feature.properties.name);\n }\n else { // default styles\n let s: Style;\n if(id== this.activeWaypoint) {\n s= new Style({\n image: new Circle({\n radius: 5,\n fill: new Fill({ color: 'blue' }),\n stroke: new Stroke({\n color: 'black',\n width: 2\n })\n }),\n text: new Text({ \n text: '',\n offsetY: -12\n })\n });\n }\n else {\n s= new Style({\n image: new Circle({\n radius: 5,\n fill: new Fill({ color: 'gold' }),\n stroke: new Stroke({\n color: 'black',\n width: 2\n })\n }),\n text: new Text({ \n text: '',\n offsetY: -12\n })\n });\n }\n return this.setTextLabel(s, wpt.feature.properties.name);\n }\n }\n\n // update feature labels\n updateLabels() {\n this.source.getFeatures().forEach( (f:Feature)=> {\n let s:any= f.getStyle();\n f.setStyle( this.setTextLabel(s, f.get('name')) );\n });\n } \n\n // return a Style with label text\n setTextLabel(s:Style, text:string=''): Style {\n let cs= s.clone();\n let ts= cs.getText();\n if(ts) { ts.setText( (Math.abs(this.mapZoom)>= this.labelMinZoom) ? text : '') }\n return cs;\n }\n\n}\n\n// ** Freeboard resource collection format **\n@Component({\n selector: 'ol-map > fb-waypoints',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FreeboardWaypointLayerComponent extends WaypointLayerComponent {\n\n @Input() waypoints: Array<[string,any,boolean]>;\n\n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n super(changeDetectorRef, mapComponent);\n }\n\n parseWaypoints(waypoints: Array<[string,any,boolean]>= this.waypoints) {\n let fa: Feature[]= [];\n for( const w of waypoints ) {\n if(w[2]) { // selected\n let f= new Feature({\n geometry: new Point( fromLonLat(w[1].feature.geometry.coordinates) ),\n name: w[1].feature.properties.name\n });\n f.setId('waypoint.'+ w[0]);\n f.setStyle(this.buildStyle(w[0], w[1]));\n fa.push(f);\n }\n }\n this.features= fa;\n }\n\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { Layer } from 'ol/layer';\nimport { Feature } from 'ol';\nimport VectorLayer from 'ol/layer/Vector';\nimport VectorSource from 'ol/source/Vector';\nimport { Style, RegularShape, Stroke, Fill } from 'ol/style';\nimport { Point } from 'ol/geom';\nimport { fromLonLat } from 'ol/proj';\nimport { MapComponent } from '../map.component';\nimport { Extent } from '../models';\nimport { AsyncSubject } from 'rxjs';\n\n// ** Signal K resource collection format **\n@Component({\n selector: 'ol-map > sk-notes',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NoteLayerComponent implements OnInit, OnDestroy, OnChanges {\n\n protected layer: Layer;\n public source: VectorSource;\n protected features: Array<Feature>;\n\n /**\n * This event is triggered after the layer is initialized\n * Use this to have access to the layer and some helper functions\n */\n @Output() layerReady: AsyncSubject<Layer> = new AsyncSubject(); // AsyncSubject will only store the last value, and only publish it when the sequence is completed\n\n @Input() notes: {[key:string]: any};\n @Input() noteStyles: {[key:string]: Style};\n @Input() opacity: number;\n @Input() visible: boolean;\n @Input() extent: Extent;\n @Input() zIndex: number;\n @Input() minResolution: number;\n @Input() maxResolution: number;\n @Input() layerProperties: { [index: string]: any };\n\n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n this.changeDetectorRef.detach();\n }\n\n ngOnInit() {\n this.parseNotes(this.notes);\n this.source = new VectorSource({features: this.features});\n this.layer = new VectorLayer(Object.assign(this, {...this.layerProperties}));\n\n const map = this.mapComponent.getMap();\n if(this.layer && map) {\n map.addLayer(this.layer);\n map.render();\n this.layerReady.next(this.layer);\n this.layerReady.complete();\n }\n\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if(this.layer) {\n const properties: { [index: string]: any } = {};\n\n for(const key in changes) {\n if(key=='notes') {\n this.parseNotes(changes[key].currentValue);\n if(this.source) { \n this.source.clear();\n this.source.addFeatures(this.features);\n }\n }\n else if( key=='noteStyles') { }\n else if( key=='layerProperties') { \n this.layer.setProperties(properties, false);\n }\n else {\n properties[key] = changes[key].currentValue;\n }\n }\n this.layer.setProperties(properties, false);\n }\n }\n\n ngOnDestroy() {\n const map = this.mapComponent.getMap();\n if (this.layer && map) {\n map.removeLayer(this.layer);\n map.render();\n this.layer = null;\n }\n }\n\n parseNotes(notes: {[key:string]: any}= this.notes) {\n let fa: Feature[]= [];\n for( const w in notes ) {\n if(!notes[w].position) { continue }\n let f= new Feature({\n geometry: new Point( fromLonLat([\n notes[w].position.longitude,\n notes[w].position.latitude\n ]) ),\n name: notes[w].title\n });\n f.setId('note.'+ w);\n f.setStyle(this.buildStyle(w, notes[w]));\n fa.push(f);\n }\n this.features= fa;\n }\n\n // build note style\n buildStyle(id:string, note:any):Style {\n if(typeof this.noteStyles!=='undefined') {\n if( note.properties?.skType ) {\n return this.noteStyles[note.properties?.skType];\n }\n else {\n return this.noteStyles.default;\n }\n }\n else if(this.layerProperties && this.layerProperties.style) {\n return this.layerProperties.style;\n }\n else { // default styles\n return new Style({\n image: new RegularShape({\n points: 4,\n radius: 10,\n fill: new Fill({ color: 'gold' }),\n stroke: new Stroke({\n color: 'black',\n width: 1\n }),\n rotation: (Math.PI/180) * 45\n })\n });\n }\n }\n\n}\n\n// ** Freeboard resource collection format **\n@Component({\n selector: 'ol-map > fb-notes',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FreeboardNoteLayerComponent extends NoteLayerComponent {\n\n @Input() notes: Array<[string,any,boolean]>;\n\n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n super(changeDetectorRef, mapComponent);\n }\n\n parseNotes(notes: Array<[string,any,boolean]>= this.notes) {\n let fa: Feature[]= [];\n for( const w of notes ) {\n if(!w[1].position) { continue }\n let f= new Feature({\n geometry: new Point( fromLonLat([\n w[1].position.longitude,\n w[1].position.latitude\n ]) ),\n name: w[1].title\n });\n f.setId('note.'+ w[0]);\n f.setStyle(this.buildStyle(w[0], w[1]));\n fa.push(f);\n }\n this.features= fa;\n }\n\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { Layer } from 'ol/layer';\nimport { Feature } from 'ol';\nimport VectorLayer from 'ol/layer/Vector';\nimport VectorSource from 'ol/source/Vector';\nimport { Style, Fill, Stroke } from 'ol/style';\nimport { LineString } from 'ol/geom';\nimport { MapComponent } from '../map.component';\nimport { Extent } from '../models';\nimport { fromLonLatArray, mapifyCoords } from '../util';\nimport { AsyncSubject } from 'rxjs';\n\n\n// ** Signal K resource collection format **\n@Component({\n selector: 'ol-map > sk-routes',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RouteLayerComponent implements OnInit, OnDestroy, OnChanges {\n\n protected layer: Layer;\n public source: VectorSource;\n protected features: Array<Feature>;\n\n /**\n * This event is triggered after the layer is initialized\n * Use this to have access to the layer and some helper functions\n */\n @Output() layerReady: AsyncSubject<Layer> = new AsyncSubject(); // AsyncSubject will only store the last value, and only publish it when the sequence is completed\n\n @Input() routes: {[key:string]: any};\n @Input() routeStyles: {[key:string]: Style};\n @Input() activeRoute: string;\n @Input() opacity: number;\n @Input() visible: boolean;\n @Input() extent: Extent;\n @Input() zIndex: number;\n @Input() minResolution: number;\n @Input() maxResolution: number;\n @Input() layerProperties: { [index: string]: any };\n\n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n this.changeDetectorRef.detach();\n }\n\n ngOnInit() {\n this.parseRoutes(this.routes);\n this.source = new VectorSource({features: this.features});\n this.layer = new VectorLayer(Object.assign(this, {...this.layerProperties}));\n\n const map = this.mapComponent.getMap();\n if(this.layer && map) {\n map.addLayer(this.layer);\n map.render();\n this.layerReady.next(this.layer);\n this.layerReady.complete();\n }\n\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if(this.layer) {\n const properties: { [index: string]: any } = {};\n\n for(const key in changes) {\n if(key=='routes') {\n this.parseRoutes(changes[key].currentValue);\n if(this.source) { \n this.source.clear();\n this.source.addFeatures(this.features);\n }\n }\n else if( key=='routeStyles') { }\n else if( key=='activeRoute') {\n this.parseRoutes(this.routes);\n if(this.source) { \n this.source.clear();\n this.source.addFeatures(this.features);\n }\n }\n else if( key=='layerProperties') { \n this.layer.setProperties(properties, false);\n }\n else {\n properties[key] = changes[key].currentValue;\n }\n }\n this.layer.setProperties(properties, false);\n }\n }\n\n ngOnDestroy() {\n const map = this.mapComponent.getMap();\n if (this.layer && map) {\n map.removeLayer(this.layer);\n map.render();\n this.layer = null;\n }\n }\n\n parseRoutes(routes: {[key:string]: any}= this.routes) {\n let fa: Feature[]= [];\n for( const w in routes ) {\n let mc= mapifyCoords(routes[w].feature.geometry.coordinates);\n let c= fromLonLatArray(mc);\n let f= new Feature({\n geometry: new LineString( c ),\n name: routes[w].feature.properties.name\n });\n f.setId('route.'+ w);\n f.setStyle(this.buildStyle(w, routes[w]));\n fa.push(f);\n }\n this.features= fa;\n }\n\n // build route style\n buildStyle(id:string, rte:any):Style {\n if(typeof this.routeStyles!=='undefined') {\n if( id== this.activeRoute && typeof this.routeStyles.active!=='undefined') {\n return this.routeStyles.active;\n }\n else if( rte.feature.properties.skType ) {\n return this.routeStyles[rte.feature.properties.skType];\n }\n else {\n return this.routeStyles.default;\n }\n }\n else if(this.layerProperties && this.layerProperties.style) {\n return this.layerProperties.style;\n }\n else { // default styles\n let s: Style;\n if(id== this.activeRoute) {\n s= new Style({\n stroke: new Stroke({\n color: 'blue',\n width: 4\n })\n });\n }\n else {\n s= new Style({\n stroke: new Stroke({\n color: 'green',\n width: 2,\n lineDash: [20,5,5,5]\n })\n });\n }\n return s;\n }\n }\n\n}\n\n// ** Freeboard resource collection format **\n@Component({\n selector: 'ol-map > fb-routes',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FreeboardRouteLayerComponent extends RouteLayerComponent {\n\n @Input() routes: Array<[string,any,boolean]>;\n\n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n super(changeDetectorRef, mapComponent);\n }\n\n parseRoutes(routes: Array<[string,any,boolean]>= this.routes) {\n let fa: Feature[]= [];\n for( const w of routes ) {\n if(w[2]) { // selected\n let mc= mapifyCoords(w[1].feature.geometry.coordinates);\n let c= fromLonLatArray(mc);\n let f= new Feature({\n geometry: new LineString( c ),\n name: w[1].feature.properties.name\n });\n f.setId('route.'+ w[0]);\n f.setStyle(this.buildStyle(w[0], w[1]));\n fa.push(f);\n }\n }\n this.features= fa;\n }\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { Layer } from 'ol/layer';\nimport { Feature } from 'ol';\nimport VectorLayer from 'ol/layer/Vector';\nimport VectorSource from 'ol/source/Vector';\nimport { Style, Stroke, Fill } from 'ol/style';\nimport { Polygon, MultiPolygon } from 'ol/geom';\nimport { MapComponent } from '../map.component';\nimport { Extent } from '../models';\nimport { fromLonLatArray, mapifyCoords } from '../util';\nimport { AsyncSubject } from 'rxjs';\nimport GeometryType from 'ol/geom/GeometryType';\n\n// ** Signal K resource collection format **\n@Component({\n selector: 'ol-map > sk-regions',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RegionLayerComponent implements OnInit, OnDestroy, OnChanges {\n\n protected layer: Layer;\n public source: VectorSource;\n protected features: Array<Feature>;\n\n /**\n * This event is triggered after the layer is initialized\n * Use this to have access to the layer and some helper functions\n */\n @Output() layerReady: AsyncSubject<Layer> = new AsyncSubject(); // AsyncSubject will only store the last value, and only publish it when the sequence is completed\n\n @Input() regions: {[key:string]: any};\n @Input() regionStyles: {[key:string]: Style};\n @Input() opacity: number;\n @Input() visible: boolean;\n @Input() extent: Extent;\n @Input() zIndex: number;\n @Input() minResolution: number;\n @Input() maxResolution: number;\n @Input() layerProperties: { [index: string]: any };\n\n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n this.changeDetectorRef.detach();\n }\n\n ngOnInit() {\n this.parseRegions(this.regions);\n this.source = new VectorSource({features: this.features});\n this.layer = new VectorLayer(Object.assign(this, {...this.layerProperties}));\n\n const map = this.mapComponent.getMap();\n if(this.layer && map) {\n map.addLayer(this.layer);\n map.render();\n this.layerReady.next(this.layer);\n this.layerReady.complete();\n }\n\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if(this.layer) {\n const properties: { [index: string]: any } = {};\n\n for(const key in changes) {\n if(key=='regions') {\n this.parseRegions(changes[key].currentValue);\n if(this.source) { \n this.source.clear();\n this.source.addFeatures(this.features);\n }\n }\n else if( key=='regionStyles') { }\n else if( key=='layerProperties') { \n this.layer.setProperties(properties, false);\n }\n else {\n properties[key] = changes[key].currentValue;\n }\n }\n this.layer.setProperties(properties, false);\n }\n }\n\n ngOnDestroy() {\n const map = this.mapComponent.getMap();\n if (this.layer && map) {\n map.removeLayer(this.layer);\n map.render();\n this.layer = null;\n }\n }\n\n parseRegions(regions: {[key:string]: any}= this.regions) {\n let fa: Feature[]= [];\n for( const w in regions ) {\n let c= this.parseCoordinates(regions[w].feature.geometry.coordinates, regions[w].feature.geometry.type);\n let f= new Feature({\n geometry: regions[w].feature.geometry.type=='MultiPolygon' ?\n new MultiPolygon( c ) : new Polygon( c ),\n name: regions[w].title\n });\n f.setId('region.'+ w);\n f.setStyle(this.buildStyle(w, regions[w]));\n fa.push(f);\n }\n this.features= fa;\n }\n\n // ** mapify and transform MultiLineString coordinates\n parseCoordinates(coords:Array<any>, geomType:GeometryType) {\n if(geomType=='MultiPolygon') {\n let multipoly= [];\n coords.forEach( mpoly=> {\n let lines= [];\n mpoly.forEach( poly=> {\n lines.push( mapifyCoords(poly) );\n });\n multipoly.push(lines)\n });\n return fromLonLatArray(multipoly);\n }\n else if(geomType=='Polygon') {\n let lines= [];\n coords.forEach( line=> lines.push( mapifyCoords(line) ) )\n return fromLonLatArray(lines);\n }\n\n } \n\n // build region style\n buildStyle(id:string, reg:any):Style {\n if(typeof this.regionStyles!=='undefined') {\n if( reg.feature.properties.skType ) {\n return this.regionStyles[reg.feature.properties.skType];\n }\n else {\n return this.regionStyles.default;\n }\n }\n else if(this.layerProperties && this.layerProperties.style) {\n return this.layerProperties.style;\n }\n else { // default styles\n return new Style({\n fill: new Fill({\n color: 'rgba(255,0,255,0.1)'\n }),\n stroke: new Stroke({\n color: 'purple',\n width: 1\n })\n });\n }\n }\n\n}\n\n// ** Freeboard resource collection format **\n@Component({\n selector: 'ol-map > fb-regions',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FreeboardRegionLayerComponent extends RegionLayerComponent {\n\n @Input() regions: Array<[string,any,boolean]>;\n\n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n super(changeDetectorRef, mapComponent);\n }\n\n parseRegions(regions: Array<[string,any,boolean]>= this.regions) {\n let fa: Feature[]= [];\n for( const w of regions ) {\n let c= this.parseCoordinates(w[1].feature.geometry.coordinates, w[1].feature.geometry.type);\n let f= new Feature({\n geometry: w[1].feature.geometry.type=='MultiPolygon' ?\n new MultiPolygon( c ) : new Polygon( c ),\n name: w[1].title\n });\n f.setId('region.'+ w[0]);\n f.setStyle(this.buildStyle(w[0], w[1]));\n fa.push(f);\n }\n this.features= fa;\n }\n\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges\n} from '@angular/core';\n\nimport TileLayer from 'ol/layer/Tile';\nimport VectorTileLayer from 'ol/layer/VectorTile';\nimport VectorTileSource from 'ol/source/VectorTile';\nimport { TileWMS, XYZ} from 'ol/source';\nimport { Style, Fill, Stroke } from 'ol/style';\nimport { MapComponent } from '../map.component';\nimport { osmLayer } from '../util';\nimport { MapService } from '../map.service';\nimport { MVT } from 'ol/format';\n\n// ** Freeboard resource collection format **\n@Component({\n selector: 'ol-map > fb-charts',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FreeboardChartLayerComponent implements OnInit, OnDestroy, OnChanges {\n\n protected layers: Map<string, any>= new Map();\n\n @Input() charts: Array<[string,any,boolean]>;\n @Input() zIndex: number= 10; // start number for zIndex of chart layers\n\n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent,\n private mapService: MapService) {\n this.changeDetectorRef.detach();\n }\n\n ngOnInit() {\n this.parseCharts(this.charts);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (const key in changes) {\n if(key=='charts' && !changes[key].firstChange) {\n this.parseCharts(changes[key].currentValue);\n }\n }\n }\n\n ngOnDestroy() {\n this.clearlayers();\n }\n\n clearlayers() {\n const map = this.mapComponent.getMap();\n if (this.layers && map) {\n this.layers.forEach((l, k)=> map.removeLayer(l));\n map.render();\n this.layers.clear();\n }\n }\n\n parseCharts(charts: Array<[string,any,boolean]>= this.charts) {\n const map = this.mapComponent.getMap();\n for( const i in charts ) {\n // check for existing layer\n let layer= this.mapService.getLayerByKey('id', charts[i][0]);\n if(!charts[i][2]) { // not selected\n if(layer) { \n this.mapComponent.getMap().removeLayer(layer);\n this.layers.delete(charts[i][0]);\n }\n } \n else { // selected \n if(!layer) {\n if(charts[i][0]=='openstreetmap') { // open street map\n layer= osmLayer();\n layer.setZIndex(this.zIndex + parseInt(i));\n layer.setMinZoom(charts[i][1].minZoom);\n layer.setMaxZoom(charts[i][1].maxZoom);\n }\n else { // signal k charts\n if(charts[i][1].chartFormat=='pbf' || charts[i][1].chartFormat=='mvt') { // vector tile\n let source = new VectorTileSource({\n url: charts[i][1].tilemapUrl,\n format: new MVT({\n layers: charts[i][1].chartLayers ? charts[i][1].chartLayers : null\n })\n });\n layer = new VectorTileLayer({\n source: source,\n preload: 0,\n zIndex: this.zIndex + parseInt(i),\n style: this.applyVectorStyle,\n minZoom: charts[i][1].minZoom,\n maxZoom: charts[i][1].maxZoom\n });\n }\n else { // raster tile\n let source: any; // select source type\n if(charts[i][1].type=='WMS') {\n source= new TileWMS({\n url: charts[i][1].tilemapUrl,\n params: {\n LAYERS: (charts[i][1].chartLayers) ? charts[i][1].chartLayers.join(',') : ''\n }\n });\n }\n else {\n source= new XYZ({\n url: charts[i][1].tilemapUrl\n });\n }\n layer= new TileLayer({\n source: source,\n preload: 0,\n zIndex: this.zIndex + parseInt(i),\n minZoom: charts[i][1].minZoom,\n maxZoom: charts[i][1].maxZoom\n });\n }\n }\n layer.set('id',charts[i][0]);\n this.layers.set(charts[i][0],layer);\n map.addLayer(layer);\n }\n }\n } \n if(map) { map.render() }\n }\n\n // apply default vectortile style\n applyVectorStyle(...params:any) {\n return new Style({\n fill: new Fill({\n color: 'rgba(#224, 209, 14, 0.8)'\n }),\n stroke: new Stroke({\n color: '#444',\n width: 1,\n })\n });\n }\n\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChange,\n SimpleChanges\n} from '@angular/core';\nimport { Layer } from 'ol/layer';\nimport { Feature } from 'ol';\nimport VectorLayer from 'ol/layer/Vector';\nimport VectorSource from 'ol/source/Vector';\nimport { Style, Text, Stroke } from 'ol/style';\nimport { MultiLineString } from 'ol/geom';\nimport { MapComponent } from '../map.component';\nimport { Extent } from '../models';\nimport { fromLonLatArray, mapifyCoords } from '../util';\nimport { AsyncSubject } from 'rxjs';\n\n// ** Freeboard Track resources collection format **\n@Component({\n selector: 'ol-map > fb-tracks',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TrackLayerComponent implements OnInit, OnDestroy, OnChanges {\n\n protected layer: Layer;\n public source: VectorSource;\n protected features: Array<Feature>;\n\n /**\n * This event is triggered after the layer is initialized\n * Use this to have access to the layer and some helper functions\n */\n @Output() layerReady: AsyncSubject<Layer> = new AsyncSubject(); // AsyncSubject will only store the last value, and only publish it when the sequence is completed\n\n @Input() tracks: Array<{[key:string]: any}>;\n @Input() trackStyles: {[key:string]: Style};\n @Input() labelMinZoom: number= 10;\n @Input() mapZoom: number= 10;\n @Input() opacity: number;\n @Input() visible: boolean;\n @Input() extent: Extent;\n @Input() zIndex: number;\n @Input() minResolution: number;\n @Input() maxResolution: number;\n @Input() layerProperties: { [index: string]: any };\n\n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n this.changeDetectorRef.detach();\n }\n\n ngOnInit() {\n this.parseTracks(this.tracks);\n this.source = new VectorSource({features: this.features});\n this.layer = new VectorLayer(Object.assign(this, {...this.layerProperties}));\n\n const map = this.mapComponent.getMap();\n if(this.layer && map) {\n map.addLayer(this.layer);\n map.render();\n this.layerReady.next(this.layer);\n this.layerReady.complete();\n }\n\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if(this.layer) {\n const properties: { [index: string]: any } = {};\n\n for(const key in changes) {\n if(key=='tracks') {\n this.parseTracks(changes[key].currentValue);\n if(this.source) { \n this.source.clear();\n this.source.addFeatures(this.features);\n }\n }\n else if( key=='trackStyles') { }\n else if( key=='labelMinZoom' || key=='mapZoom') { \n this.handleLabelZoomChange(key, changes[key]);\n }\n else if( key=='layerProperties') { \n this.layer.setProperties(properties, false);\n }\n else {\n properties[key] = changes[key].currentValue;\n }\n }\n this.layer.setProperties(properties, false);\n }\n }\n\n ngOnDestroy() {\n const map = this.mapComponent.getMap();\n if (this.layer && map) {\n map.removeLayer(this.layer);\n map.render();\n this.layer = null;\n }\n }\n\n parseTracks(tracks: Array<{[key:string]: any}>= this.tracks) {\n let fa: Feature[]= [];\n for( const w of tracks ) {\n let f= new Feature({\n geometry: new MultiLineString( this.parseCoordinates(w.feature.geometry.coordinates) ),\n name: w.feature.properties.name\n });\n f.setId('track.'+ w.feature.id);\n f.setStyle(this.buildStyle(w));\n fa.push(f);\n }\n this.features= fa;\n }\n\n // ** assess attribute change **\n handleLabelZoomChange(key: string, change: SimpleChange) {\n if(key=='labelMinZoom') {\n if(typeof this.mapZoom!=='undefined') { \n this.updateLabels();\n }\n }\n else if(key=='mapZoom') {\n if(typeof this.labelMinZoom !=='undefined') {\n if( (change.currentValue >= this.labelMinZoom && change.previousValue < this.labelMinZoom) || \n (change.currentValue < this.labelMinZoom && change.previousValue >= this.labelMinZoom) ) {\n this.updateLabels();\n }\n }\n }\n }\n\n // build track style\n buildStyle(trk:any):Style {\n if(typeof this.trackStyles!=='undefined') {\n if( trk.feature.properties.skType ) {\n return this.setTextLabel(\n this.trackStyles[trk.feature.properties.skType], \n trk.feature.properties.name\n );\n }\n else {\n return this.setTextLabel(this.trackStyles.default, trk.feature.properties.name);\n }\n }\n else if(this.layerProperties && this.layerProperties.style) {\n return this.setTextLabel(this.layerProperties.style, trk.feature.properties.name);\n }\n else { // default styles\n let s= new Style({\n stroke: new Stroke({\n color: 'rgb(146,11,153)',\n width: 2,\n lineDash: [5,5]\n }),\n text: new Text({ \n text: '',\n textAlign: 'center'\n })\n });\n return this.setTextLabel(s, trk.feature.properties.name);\n }\n }\n\n // update feature labels\n updateLabels() {\n this.source.getFeatures().forEach( (f:Feature)=> {\n let s:any= f.getStyle();\n f.setStyle( this.setTextLabel(s, f.get('name')) );\n });\n }\n\n // return a Style with label text\n setTextLabel(s:Style, text:string): Style {\n let cs= s.clone();\n cs.setText( new Text({\n text: (Math.abs(this.mapZoom)>= this.labelMinZoom) ? text : '',\n rotateWithView: false,\n offsetY: -12\n }) );\n return cs;\n }\n\n // ** mapify and transform MultiLineString coordinates\n parseCoordinates(mls:Array<any>) {\n let lines= [];\n mls.forEach( line=> lines.push( mapifyCoords(line) ) )\n return fromLonLatArray(lines);\n } \n\n\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChange,\n SimpleChanges\n} from '@angular/core';\nimport { Layer } from 'ol/layer';\nimport { Feature } from 'ol';\nimport VectorLayer from 'ol/layer/Vector';\nimport VectorSource from 'ol/source/Vector';\nimport { Circle, Fill, Stroke, Style, Text } from 'ol/style';\nimport { Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon } from 'ol/geom';\nimport { fromLonLat } from 'ol/proj';\nimport { MapComponent } from '../map.component';\nimport { Extent } from '../models';\nimport { fromLonLatArray } from '../util';\nimport { AsyncSubject } from 'rxjs';\nimport GeometryType from 'ol/geom/GeometryType';\n\n// ** Signal K resource collection format **\n@Component({\n selector: 'ol-map > fb-resource-sets',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ResourceSetLayerComponent implements OnInit, OnDestroy, OnChanges {\n\n protected layer: Layer;\n public source: VectorSource;\n protected features: Array<Feature>;\n\n /**\n * This event is triggered after the layer is initialized\n * Use this to have access to the layer and some helper functions\n */\n @Output() layerReady: AsyncSubject<Layer> = new AsyncSubject(); // AsyncSubject will only store the last value, and only publish it when the sequence is completed\n\n @Input() resourceSets: Array<any>= [];\n @Input() selected: Array<string>= [];\n @Input() labelMinZoom: number= 10;\n @Input() mapZoom: number= 10;\n @Input() opacity: number;\n @Input() visible: boolean;\n @Input() extent: Extent;\n @Input() zIndex: number;\n @Input() minResolution: number;\n @Input() maxResolution: number;\n @Input() layerProperties: { [index: string]: any };\n\n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n this.changeDetectorRef.detach();\n }\n\n ngOnInit() {\n this.parseResourceSets(this.resourceSets);\n this.source = new VectorSource({features: this.features});\n this.layer = new VectorLayer(Object.assign(this, {...this.layerProperties}));\n\n const map = this.mapComponent.getMap();\n if(this.layer && map) {\n map.addLayer(this.layer);\n map.render();\n this.layerReady.next(this.layer);\n this.layerReady.complete();\n }\n\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if(this.layer) {\n const properties: { [index: string]: any } = {};\n for(const key in changes) {\n if(key=='resourceSets') {\n this.parseResourceSets(changes[key].currentValue);\n if(this.source) { \n this.source.clear();\n this.source.addFeatures(this.features);\n }\n }\n else if( key=='labelMinZoom' || key=='mapZoom') { \n this.handleLabelZoomChange(key, changes[key]);\n }\n else if( key=='layerProperties') { \n this.layer.setProperties(properties, false);\n }\n else {\n properties[key] = changes[key].currentValue;\n }\n }\n this.layer.setProperties(properties, false);\n }\n }\n\n ngOnDestroy() {\n const map = this.mapComponent.getMap();\n if (this.layer && map) {\n map.removeLayer(this.layer);\n map.render();\n this.layer = null;\n }\n }\n\n // process resource sets\n parseResourceSets(resourceSets: Array<any>) {\n this.features= [];\n for( const r of resourceSets ) {\n if(this.selected.includes(r.id)) {\n this.parseResources(r);\n }\n }\n }\n\n // process a resource set\n parseResources(rSet: {[key:string]: any}) {\n let fa: Feature[]= [];\n for( const w of rSet.values.features ) {\n let f: Feature;\n if(w.geometry.type=='Point') {\n f= new Feature({\n geometry: new Point( fromLonLat(w.geometry.coordinates) ),\n name: w.properties.name\n });\n }\n if(w.geometry.type=='MultiPoint') {\n f= new Feature({\n geometry: new MultiPoint( fromLonLatArray(w.geometry.coordinates) ),\n name: w.properties.name\n });\n }\n else if (w.geometry.type=='LineString') {\n f= new Feature({\n geometry: new LineString( fromLonLatArray(w.geometry.coordinates) ),\n name: w.properties.name\n });\n }\n else if (w.geometry.type=='MultiLineString') {\n f= new Feature({\n geometry: new MultiLineString( fromLonLatArray(w.geometry.coordinates) ),\n name: w.properties.name\n });\n }\n else if (w.geometry.type=='Polygon') {\n f= new Feature({\n geometry: new Polygon( fromLonLatArray(w.geometry.coordinates) ),\n name: w.properties.name\n });\n }\n else if (w.geometry.type=='MultiPolygon') {\n f= new Feature({\n geometry: new MultiPolygon( fromLonLatArray(w.geometry.coordinates) ),\n name: w.properties.name\n });\n }\n if(!f) { continue }\n // set style\n if(typeof rSet.styles!=='undefined') {\n let rs: Style;\n if( typeof w.properties.styleRef !== 'undefined') {\n rs= this.buildStyle(rSet.styles[w.properties.styleRef], w.geometry.type);\n }\n else if( typeof w.properties.style !== 'undefined') {\n rs= this.buildStyle(w.properties.style, w.geometry.type);\n }\n else {\n rs= this.buildStyle(rSet.styles.default, w.geometry.type);\n }\n f.setStyle(this.setTextLabel(rs, w.properties.name));\n }\n fa.push(f);\n }\n this.features= this.features.concat(fa);\n }\n\n // ** assess attribute change **\n handleLabelZoomChange(key: string, change: SimpleChange) {\n if(key=='labelMinZoom') {\n if(typeof this.mapZoom!=='undefined') { \n this.updateLabels();\n }\n }\n else if(key=='mapZoom') {\n if(typeof this.labelMinZoom !=='undefined') {\n if( (change.currentValue >= this.labelMinZoom && change.previousValue < this.labelMinZoom) || \n (change.currentValue < this.labelMinZoom && change.previousValue >= this.labelMinZoom) ) {\n this.updateLabels();\n }\n }\n }\n }\n\n // update feature labels\n updateLabels() {\n this.source.getFeatures().forEach( (f:Feature)=> {\n let s:any= f.getStyle();\n f.setStyle( this.setTextLabel(s, f.get('name')) );\n });\n }\n\n // return a Style with label text\n setTextLabel(s:Style, text:string): Style {\n let cs= s.clone();\n cs.setText( new Text({\n text: (Math.abs(this.mapZoom)>= this.labelMinZoom) ? text : '',\n rotateWithView: false,\n offsetY: -12\n }) );\n return cs;\n }\n\n buildStyle(styleDef: {[key:string]: any}, geom: GeometryType): Style {\n let s: Style= new Style();\n if(geom== GeometryType.POINT || geom== GeometryType.MULTI_POINT) {\n s.setImage( new Circle({\n radius: styleDef.width ?? 5,\n fill: new Fill({ color: styleDef.fill ?? 'blue' }),\n stroke: new Stroke({\n color: styleDef.stroke ?? 'blue',\n width: 2,\n lineDash: styleDef.lineDash ?? [1]\n })\n }))\n }\n else {\n s.setFill( new Fill({ color: styleDef.fill ?? 'blue' }));\n s.setStroke( new Stroke({\n color: styleDef.stroke ?? 'blue',\n width: styleDef.width ?? 2,\n lineDash: styleDef.lineDash ?? [1]\n }));\n }\n return s;\n }\n\n\n}\n\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges, SimpleChange\n} from '@angular/core';\nimport { Layer } from 'ol/layer';\nimport { Feature } from 'ol';\nimport VectorLayer from 'ol/layer/Vector';\nimport VectorSource from 'ol/source/Vector';\nimport { Style, RegularShape, Fill, Stroke } from 'ol/style';\nimport { Point } from 'ol/geom';\nimport { fromLonLat } from 'ol/proj';\nimport { MapComponent } from '../map.component';\nimport { Extent } from '../models';\nimport { AsyncSubject } from 'rxjs';\n\n// ** Signal K targets **\n@Component({\n selector: 'ol-map > sk-targets',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SKTargetsLayerComponent implements OnInit, OnDestroy, OnChanges {\n\n protected layer: Layer;\n public source: VectorSource;\n\n /**\n * This event is triggered after the layer is initialized\n * Use this to have access to the layer and some helper functions\n */\n @Output() layerReady: AsyncSubject<Layer> = new AsyncSubject(); // AsyncSubject will only store the last value, and only publish it when the sequence is completed\n\n @Input() targets: Map<string, any>= new Map();\n @Input() targetStyles: {[key:string]: Style};\n @Input() targetType: string;\n @Input() inactiveTime: number= 180000; // in ms (3 mins)\n @Input() labelMinZoom: number= 10;\n @Input() mapZoom: number=10;\n @Input() updateIds: Array<string>= [];\n @Input() staleIds: Array<string>= [];\n @Input() removeIds: Array<string>= [];\n @Input() opacity: number;\n @Input() visible: boolean;\n @Input() extent: Extent;\n @Input() zIndex: number;\n @Input() minResolution: number;\n @Input() maxResolution: number;\n @Input() layerProperties: { [index: string]: any };\n\n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n this.changeDetectorRef.detach();\n }\n\n ngOnInit() {\n this.source = new VectorSource();\n this.layer = new VectorLayer(Object.assign(this, {...this.layerProperties}));\n this.parseItems( this.extractKeys(this.targets) );\n\n const map = this.mapComponent.getMap();\n if(this.layer && map) {\n map.addLayer(this.layer);\n map.render();\n this.layerReady.next(this.layer);\n this.layerReady.complete();\n }\n\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if(this.layer) {\n const properties: { [index: string]: any } = {};\n for(const key in changes) {\n if(key=='targets' && changes[key].firstChange) {\n if(!changes[key].currentValue) { return }\n if(!this.source) { return }\n this.source.clear();\n this.parseItems(this.extractKeys(changes[key].currentValue)); \n }\n else if(key=='updateIds') { \n this.parseItems(changes[key].currentValue);\n }\n else if(key=='staleIds') { \n this.parseItems(changes[key].currentValue, true);\n }\n else if(key=='removeIds') { \n this.removeItems(changes[key].currentValue);\n }\n else if(key=='inactiveTime') { \n this.parseItems(Object.keys(this.targets));\n }\n else if(key=='targetStyles' && !changes[key].firstChange) { \n this.parseItems(Object.keys(this.targets));\n }\n else if(key=='labelMinZoom' || key=='mapZoom') { \n this.handleLabelZoomChange(key, changes[key]);\n }\n else if(key=='layerProperties') { \n this.layer.setProperties(properties, false);\n }\n else {\n properties[key] = changes[key].currentValue;\n }\n }\n this.layer.setProperties(properties, false);\n }\n }\n\n ngOnDestroy() {\n const map = this.mapComponent.getMap();\n if (this.layer && map) {\n map.removeLayer(this.layer);\n map.render();\n this.layer = null;\n }\n }\n\n // ** assess attribute change **\n handleLabelZoomChange(key: string, change: SimpleChange) {\n if(key=='labelMinZoom') {\n if(typeof this.mapZoom!=='undefined') { \n this.updateLabels();\n }\n }\n else if(key=='mapZoom') {\n if(typeof this.labelMinZoom !=='undefined') {\n if( (change.currentValue >= this.labelMinZoom && change.previousValue < this.labelMinZoom) || \n (change.currentValue < this.labelMinZoom && change.previousValue >= this.labelMinZoom) ) {\n this.updateLabels();\n }\n }\n }\n }\n\n extractKeys(m:Map<string,any>): Array<string> {\n let keys= [];\n m.forEach((v,k)=> { keys.push(k) });\n return keys;\n }\n\n // add update features\n parseItems(ids: Array<string>, stale:boolean=false) {\n if(!ids || !Array.isArray(ids) ) { return }\n if(!this.source) { return }\n ids.forEach( w => {\n if(this.targetType && w.indexOf(this.targetType)!=0) { return }\n if(this.targets.has(w)) { \n let target= this.targets.get(w);\n // ** target **\n let f= this.source.getFeatureById(w); \n if(f) { // exists so update it\n if(target.position) {\n f.setGeometry( new Point( fromLonLat(target.position) ) );\n f.setStyle(this.buildStyle(target, stale));\n }\n else { this.source.removeFeature(f) }\n }\n else { // does not exist so create it\n if(target.position) {\n f= new Feature( { \n geometry: new Point( fromLonLat(target.position) ),\n name: target.name\n });\n f.setId(w);\n f.setStyle(this.buildStyle(target, stale));\n this.source.addFeature(f);\n }\n } \n }\n });\n }\n\n // remove features\n removeItems(ids:Array<string>) {\n if(!ids || !Array.isArray(ids) ) { return }\n if(!this.source) { return }\n ids.forEach( w=> { \n if(this.targetType && w.indexOf(this.targetType)!=0) { return }\n let f= this.source.getFeatureById(w);\n if(f) { this.source.removeFeature(f) }\n }); \n} \n\n // build target style\n buildStyle(item: any, setStale:boolean=false):Style {\n let s: Style;\n // label text\n let lbl= item.name ?? item.callsign ?? item.mmsi ?? '';\n // ** stale check time ref \n let now= new Date().valueOf();\n if(typeof this.targetStyles!=='undefined') {\n if ( setStale || (item.lastUpdated as any)< (now-this.inactiveTime) ) { // stale\n s= this.targetStyles.inactive ?? this.targetStyles.default;\n } \n else { s= this.targetStyles.default }\n }\n else if(this.layerProperties && this.layerProperties.style){ \n s= this.layerProperties.style \n }\n else { \n s= new Style({\n image: new RegularShape({\n points: 3,\n radius: 7,\n fill: new Fill({ color: 'magenta' }),\n stroke: new Stroke({\n color: 'black',\n width: 1\n }),\n rotateWithView: true\n })\n })\n }\n\n s= this.setRotation(\n this.setTextLabel( s, lbl ),\n item.orientation\n );\n return s;\n }\n\n // update feature labels\n updateLabels() {\n this.source.getFeatures().forEach( (f:Feature)=> {\n let s:any= f.getStyle();\n f.setStyle( this.setTextLabel(s, f.get('name')) );\n });\n } \n\n // return a Style with label text set\n setTextLabel(s:Style, text:string):Style {\n if(!s) { return s }\n let cs= s.clone();\n let ts= cs.getText();\n if(ts){\n ts.setText((Math.abs(this.mapZoom)>= this.labelMinZoom) ? text : '');\n cs.setText(ts);\n }\n return cs;\n }\n\n // return a Style with rotation set\n setRotation(s:Style, value:number):Style {\n if(!s) { return s }\n let cs= s.clone();\n let im= cs.getImage();\n if(im) {\n im.setRotation(value ?? 0);\n cs.setImage( im );\n }\n return cs;\n }\n\n}\n\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges, SimpleChange\n} from '@angular/core';\nimport { Layer } from 'ol/layer';\nimport { Feature } from 'ol';\nimport VectorLayer from 'ol/layer/Vector';\nimport VectorSource from 'ol/source/Vector';\nimport { Style, RegularShape, Fill, Stroke } from 'ol/style';\nimport { Point, LineString } from 'ol/geom';\nimport { fromLonLat } from 'ol/proj';\nimport { MapComponent } from '../map.component';\nimport { Extent } from '../models';\nimport { destCoordinate } from '../util';\nimport { AsyncSubject } from 'rxjs';\n\n// ** Signal K Other Vessels **\n@Component({\n selector: 'ol-map > sk-ais-vessels',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SKVesselsLayerComponent implements OnInit, OnDestroy, OnChanges {\n\n protected layer: Layer;\n public source: VectorSource;\n protected targetType: string= 'vessel';\n\n /**\n * This event is triggered after the layer is initialized\n * Use this to have access to the layer and some helper functions\n */\n @Output() layerReady: AsyncSubject<Layer> = new AsyncSubject(); // AsyncSubject will only store the last value, and only publish it when the sequence is completed\n\n @Input() targets: Map<string, any>= new Map();\n @Input() targetStyles: {[key:string]: Style};\n @Input() focusId: string;\n @Input() inactiveTime: number= 180000; // in ms (3 mins)\n @Input() labelMinZoom: number= 10;\n @Input() mapZoom: number= 10;\n @Input() showVector: boolean= true;\n @Input() vectorMinZoom: number= 15;\n @Input() vectorApparent: boolean= false;\n @Input() filterIds: Array<string>;\n @Input() updateIds: Array<string>= [];\n @Input() staleIds: Array<string>= [];\n @Input() removeIds: Array<string>= [];\n @Input() opacity: number;\n @Input() visible: boolean;\n @Input() extent: Extent;\n @Input() zIndex: number;\n @Input() minResolution: number;\n @Input() maxResolution: number;\n @Input() layerProperties: { [index: string]: any };\n\n protected zoomOffsetLevel=[\n 1,1000000,550000,290000,140000,70000,\n 38000,17000,7600,3900,1900,\n 950,470,250,120,60,\n 30,15.5,8.1,4,2,\n 1,.5,.25,.12,.06,\n .03,.015,.008,1\n ];\n\n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n this.changeDetectorRef.detach();\n }\n\n ngOnInit() {\n this.source = new VectorSource();\n this.layer = new VectorLayer(Object.assign(this, {...this.layerProperties}));\n this.parseItems( this.extractKeys(this.targets) );\n\n const map = this.mapComponent.getMap();\n if(this.layer && map) {\n map.addLayer(this.layer);\n map.render();\n this.layerReady.next(this.layer);\n this.layerReady.complete();\n }\n\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if(this.layer) {\n const properties: { [index: string]: any } = {};\n for(const key in changes) {\n if(key=='targets' && changes[key].firstChange) {\n if(!changes[key].currentValue) { return }\n if(!this.source) { return }\n this.source.clear();\n this.parseItems(this.extractKeys(changes[key].currentValue)); \n }\n else if(key=='updateIds') { \n this.parseItems(changes[key].currentValue);\n }\n else if(key=='staleIds') { \n this.parseItems(changes[key].currentValue, true);\n }\n else if(key=='removeIds') { \n this.removeItems(changes[key].currentValue);\n }\n else if(key=='inactiveTime') { \n this.parseItems(this.extractKeys(this.targets));\n }\n else if(key=='focusId' || key=='filterIds' || key=='vectorApparent') { \n this.parseItems(this.extractKeys(this.targets));\n }\n else if(key=='targetStyles' && !changes[key].firstChange) { \n this.parseItems(this.extractKeys(this.targets));\n }\n else if(key=='labelMinZoom' || key=='mapZoom' || key=='vectorMinZoom') { \n this.handleLabelZoomChange(key, changes[key]);\n }\n else if(key=='layerProperties') { \n this.layer.setProperties(properties, false);\n }\n else {\n properties[key] = changes[key].currentValue;\n }\n }\n this.layer.setProperties(properties, false);\n }\n }\n\n ngOnDestroy() {\n const map = this.mapComponent.getMap();\n if (this.layer && map) {\n map.removeLayer(this.layer);\n map.render();\n this.layer = null;\n }\n }\n\n // ** assess attribute change **\n handleLabelZoomChange(key: string, change: SimpleChange) {\n if(key=='labelMinZoom') {\n if(typeof this.mapZoom!=='undefined') { \n this.updateLabels();\n }\n }\n else if(key=='vectorMinZoom') {\n if(typeof this.mapZoom!=='undefined') { \n this.targets.forEach( (v,k)=> {this.parseWindVector(k, v)} );\n }\n }\n else if(key=='mapZoom') {\n if(typeof this.labelMinZoom !=='undefined') {\n if( (change.currentValue >= this.labelMinZoom && change.previousValue < this.labelMinZoom) || \n (change.currentValue < this.labelMinZoom && change.previousValue >= this.labelMinZoom) ) {\n this.updateLabels();\n }\n }\n if(typeof this.vectorMinZoom !=='undefined') {\n if( (change.currentValue >= this.vectorMinZoom && change.previousValue < this.vectorMinZoom) || \n (change.currentValue < this.vectorMinZoom && change.previousValue >= this.vectorMinZoom) ) {\n this.targets.forEach( (v,k)=> {this.parseWindVector(k, v)} );\n }\n }\n }\n }\n\n extractKeys(m:Map<string,any>): Array<string> {\n let keys= [];\n m.forEach((v,k)=> { \n if(k.indexOf(this.targetType)!=-1) {\n keys.push(k);\n }\n });\n return keys;\n }\n\n // returns true if item should be rendered\n okToRender(id: string, vector?: boolean): boolean {\n if(vector && !this.showVector) { return false }\n if(!this.filterIds) { return true } \n if(Array.isArray(this.filterIds)) {\n return this.filterIds.includes(id);\n }\n else { return true }\n }\n\n // add update features\n parseItems(ids: Array<string>, stale:boolean=false) {\n if(!ids || !Array.isArray(ids) ) { return }\n if(!this.source) { return }\n ids.forEach( w => {\n if(w.indexOf('vessel')==-1) { return }\n if(this.targets.has(w)) { \n let target= this.targets.get(w);\n // ** target **\n let f= this.source.getFeatureById('ais-'+ w); \n if(f) { // exists so update it\n if(this.okToRender(w) && target.position) {\n f.setGeometry( new Point( fromLonLat(target.position) ) );\n f.setStyle(this.buildTargetStyle(w, target, stale));\n }\n else { this.source.removeFeature(f) }\n }\n else { // does not exist so create it\n if(this.okToRender(w) && target.position) {\n f= new Feature( { \n geometry: new Point( fromLonLat(target.position) ),\n name: target.name\n });\n f.setId('ais-'+ w);\n f.setStyle(this.buildTargetStyle(w, target, stale));\n this.source.addFeature(f);\n }\n } \n this.parseWindVector(w, target);\n }\n });\n }\n\n // add update Wind vector\n parseWindVector(id:string, target: any) {\n if(!this.source) { return }\n if(!target.wind || typeof target.orientation==='undefined'){ return }\n let windDirection= (this.vectorApparent) ? \n (typeof target.wind.awa!=='undefined') ? target.orientation + target.wind.awa : null \n : target.wind.direction; \n if(typeof windDirection!=='number') { return }\n\n let wf=this.source.getFeatureById('wind-'+ id);\n if(!this.okToRender(id, true) || !target.position) { \n if(wf) { this.source.removeFeature(wf) }\n return;\n }\n\n let windc= destCoordinate( target.position, windDirection, this.zoomOffsetLevel[this.mapZoom]);\n if(wf) { // update vector\n wf.setGeometry( new LineString( [\n fromLonLat(target.position),\n fromLonLat(windc)\n ]) );\n wf.setStyle( this.buildVectorStyle(id) ); \n }\n else { // create vector\n wf= new Feature( new LineString( [\n fromLonLat(target.position),\n fromLonLat(windc)\n ]) );\n wf.setId('wind-'+ id);\n wf.setStyle( this.buildVectorStyle(id) );\n this.source.addFeature(wf);\n }\n }\n\n // remove features\n removeItems(ids:Array<string>) {\n if(!ids || !Array.isArray(ids) ) { return }\n if(!this.source) { return }\n ids.forEach( w=> { \n let f= this.source.getFeatureById('ais-'+ w);\n if(f) { this.source.removeFeature(f) }\n f= this.source.getFeatureById('wind-' + w);\n if(f) { this.source.removeFeature(f) }\n }); \n} \n\n // build target style\n buildTargetStyle(id: string, item: any, setStale:boolean=false):Style {\n let s: Style;\n let lbl= item.name ?? item.callsign ?? item.mmsi ?? '';\n\n // ** stale check time ref \n let now= new Date().valueOf();\n if(typeof this.targetStyles!=='undefined') {\n if(id==this.focusId && this.targetStyles.focus) { \n s= this.targetStyles.focus;\n }\n else if ( setStale || (item.lastUpdated as any)< (now-this.inactiveTime) ) { // stale\n s= this.targetStyles.inactive;\n } \n else if(item.buddy && this.targetStyles.buddy) { \n s= this.targetStyles.buddy; \n }\n else { \n s= this.targetStyles.default;\n }\n }\n else if(this.layerProperties && this.layerProperties.style){ \n s= this.layerProperties.style \n }\n else { \n if(id==this.focusId) {\n s= new Style({\n image: new RegularShape({\n points: 3,\n radius: 4,\n fill: new Fill({ color: 'red' }),\n stroke: new Stroke({\n color: 'black',\n width: 1\n }),\n rotateWithView: true\n })\n });\n }\n else if ( setStale || (item.lastUpdated as any)< (now-this.inactiveTime) ) {\n s= new Style({\n image: new RegularShape({\n points: 3,\n radius: 4,\n fill: new Fill({ color: 'orange' }),\n stroke: new Stroke({\n color: 'black',\n width: 1\n }),\n rotateWithView: true\n })\n });\n }\n else {\n s= new Style({\n image: new RegularShape({\n points: 3,\n radius: 4,\n fill: new Fill({ color: 'magenta' }),\n stroke: new Stroke({\n color: 'black',\n width: 1\n }),\n rotateWithView: true\n })\n });\n }\n }\n s= this.setRotation(\n this.setTextLabel( s, lbl ),\n item.orientation\n );\n return s;\n }\n\n // build wind vector style\n buildVectorStyle(id: any):Style {\n let color= (this.vectorApparent) ? '16, 75, 16' : '128, 128, 0';\n let opacity= this.okToRender(id) ? 1 : 0;\n opacity&= (this.mapZoom<this.vectorMinZoom) ? 0 : 1;\n return new Style({ \n stroke: new Stroke({\n width: 2,\n color: `rgba(${color},${opacity})`\n }),\n });\n }\n\n // update feature labels\n updateLabels() {\n this.source.getFeatures().forEach( (f:Feature)=> {\n let id= f.getId();\n if( (id as string).indexOf('ais-')!=-1) {\n let s:any= f.getStyle();\n f.setStyle( this.setTextLabel(s, f.get('name')) );\n }\n });\n } \n\n // return a Style with label text set\n setTextLabel(s:Style, text:string):Style {\n if(!s) { return s }\n let cs= s.clone();\n let ts= cs.getText();\n if(ts){\n ts.setText((Math.abs(this.mapZoom)>= this.labelMinZoom) ? text : '');\n cs.setText(ts);\n }\n return cs;\n }\n\n // return a Style with rotation set\n setRotation(s:Style, value:number):Style {\n if(!s) { return s }\n let cs= s.clone();\n let im= cs.getImage();\n if(im) {\n im.setRotation(value ?? 0);\n cs.setImage( im );\n }\n return cs;\n }\n\n}\n\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges, SimpleChange\n} from '@angular/core';\nimport { Layer } from 'ol/layer';\nimport { Feature } from 'ol';\nimport VectorLayer from 'ol/layer/Vector';\nimport VectorSource from 'ol/source/Vector';\nimport { Style, Stroke } from 'ol/style';\nimport { MultiLineString } from 'ol/geom';\nimport { MapComponent } from '../map.component';\nimport { Extent } from '../models';\nimport { fromLonLatArray, mapifyCoords } from '../util';\nimport { AsyncSubject } from 'rxjs';\n\n// ** Signal K target tracks **\n@Component({\n selector: 'ol-map > sk-target-tracks',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SKTargetTracksLayerComponent implements OnInit, OnDestroy, OnChanges {\n\n protected layer: Layer;\n public source: VectorSource;\n\n /**\n * This event is triggered after the layer is initialized\n * Use this to have access to the layer and some helper functions\n */\n @Output() layerReady: AsyncSubject<Layer> = new AsyncSubject(); // AsyncSubject will only store the last value, and only publish it when the sequence is completed\n\n @Input() tracks: Map<string, any>= new Map();\n @Input() minZoom: number= 10;\n @Input() mapZoom: number= 10;\n @Input() showTracks: boolean= true;\n @Input() updateIds: Array<string>= [];\n @Input() removeIds: Array<string>= [];\n @Input() opacity: number;\n @Input() visible: boolean;\n @Input() extent: Extent;\n @Input() zIndex: number;\n @Input() minResolution: number;\n @Input() maxResolution: number;\n @Input() layerProperties: { [index: string]: any };\n\n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n this.changeDetectorRef.detach();\n }\n\n ngOnInit() {\n this.source = new VectorSource();\n this.layer = new VectorLayer(Object.assign(this, {...this.layerProperties}));\n this.parseItems( this.extractKeys(this.tracks) );\n\n const map = this.mapComponent.getMap();\n if(this.layer && map) {\n map.addLayer(this.layer);\n map.render();\n this.layerReady.next(this.layer);\n this.layerReady.complete();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if(this.layer) {\n const properties: { [index: string]: any } = {};\n for(const key in changes) {\n if(key=='tracks' && changes[key].firstChange) {\n if(!changes[key].currentValue) { return }\n if(!this.source) { return }\n this.source.clear();\n this.parseItems(this.extractKeys(changes[key].currentValue)); \n }\n else if(key=='updateIds') { \n this.parseItems(changes[key].currentValue);\n }\n else if(key=='removeIds') { \n this.removeItems(changes[key].currentValue);\n }\n else if(key=='showTracks' && !changes[key].firstChange) { \n if(changes[key].currentValue) {\n this.parseItems(this.extractKeys(this.tracks));\n }\n else { this.source.clear() }\n }\n else if(key=='labelMinZoom' || key=='mapZoom') { \n this.handleLabelZoomChange(key, changes[key]);\n }\n else if(key=='layerProperties') { \n this.layer.setProperties(properties, false);\n }\n else {\n properties[key] = changes[key].currentValue;\n }\n }\n this.layer.setProperties(properties, false);\n }\n }\n\n ngOnDestroy() {\n const map = this.mapComponent.getMap();\n if (this.layer && map) {\n map.removeLayer(this.layer);\n map.render();\n this.layer = null;\n }\n }\n\n // ** assess attribute change **\n handleLabelZoomChange(key: string, change: SimpleChange) {\n if(key=='labelMinZoom') {\n if(typeof this.mapZoom!=='undefined') { \n this.parseItems( this.extractKeys(this.tracks) );\n }\n }\n else if(key=='mapZoom') {\n if(typeof this.minZoom !=='undefined') {\n if( (change.currentValue >= this.minZoom && change.previousValue < this.minZoom) || \n (change.currentValue < this.minZoom && change.previousValue >= this.minZoom) ) {\n this.parseItems( this.extractKeys(this.tracks) );\n }\n }\n }\n }\n\n extractKeys(m:Map<string,any>): Array<string> {\n let keys= [];\n m.forEach((v,k)=> { keys.push(k) });\n return keys;\n }\n\n // add update features\n parseItems(ids: Array<string>) {\n if(!ids || !Array.isArray(ids) ) { return }\n if(!this.source) { return }\n ids.forEach( w => {\n if(this.tracks.has(w)) { \n let target= this.tracks.get(w);\n // ** target **\n let f= this.source.getFeatureById('track-' + w); \n if(f) { // exists so update it\n f.setGeometry( new MultiLineString( this.parseCoordinates(target) ) );\n f.setStyle(this.buildStyle(w));\n }\n else { // does not exist so create it\n f= new Feature( { \n geometry: new MultiLineString( this.parseCoordinates(target) )\n });\n f.setId('track-' + w);\n f.setStyle(this.buildStyle(w));\n this.source.addFeature(f);\n } \n }\n });\n }\n\n // remove features\n removeItems(ids:Array<string>) {\n if(!ids || !Array.isArray(ids) ) { return }\n if(!this.source) { return }\n ids.forEach( w=> { \n let f= this.source.getFeatureById('track-' + w);\n if(f) { this.source.removeFeature(f) }\n }); \n } \n\n\n // build target style\n buildStyle(id:string):Style {\n let rgb= (id.indexOf('aircraft')!=-1) ? '0, 0, 255' : '255, 0, 255';\n let color= (this.mapZoom < this.minZoom) ? `rgba(${rgb},0)` : `rgba(${rgb},1)`;\n color= (this.showTracks) ? `rgba(${rgb},1)` : `rgba(${rgb},0)`;\n if(this.layerProperties && this.layerProperties.style) { \n let cs= this.layerProperties.style.clone();\n let ls= cs.getStroke();\n ls.setColor(color);\n cs.setStroke(ls);\n return cs;\n }\n else {\n return new Style({ \n stroke: new Stroke({\n width: 1,\n color: color,\n lineDash: [2,2]\n })\n });\n }\n \n }\n\n // ** mapify and transform MultiLineString coordinates\n parseCoordinates(trk:Array<any>) {\n // ** handle dateline crossing **\n let tc= trk.map( mls=> {\n let lines:Array<any>= [];\n mls.forEach( line=> lines.push( mapifyCoords(line) ) )\n return lines;\n });\n return fromLonLatArray(tc);\n }\n\n}\n\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { Layer } from 'ol/layer';\nimport { Feature } from 'ol';\nimport VectorLayer from 'ol/layer/Vector';\nimport VectorSource from 'ol/source/Vector';\nimport { Style, Stroke, Fill } from 'ol/style';\nimport { Circle, LineString, Point } from 'ol/geom';\nimport { fromLonLat } from 'ol/proj';\nimport { MapComponent } from '../map.component';\nimport { Extent, Coordinate } from '../models';\nimport { fromLonLatArray, mapifyCoords, mapifyRadius } from '../util';\nimport { AsyncSubject } from 'rxjs';\n\n// ** Freeboard Anchor Alarm component **\n@Component({\n selector: 'ol-map > fb-anchor-alarm',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AnchorAlarmComponent implements OnInit, OnDestroy, OnChanges {\n\n protected layer: Layer;\n public source: VectorSource;\n protected features: Array<Feature>;\n\n /**\n * This event is triggered after the layer is initialized\n * Use this to have access to the layer and some helper functions\n */\n @Output() layerReady: AsyncSubject<Layer> = new AsyncSubject(); // AsyncSubject will only store the last value, and only publish it when the sequence is completed\n\n @Input() radius: number;\n @Input() anchorPosition: Coordinate;\n\t@Input() lineCoords: Array<Coordinate>;\n @Input() anchorStyles: { [key:string]: any };\n @Input() opacity: number;\n @Input() visible: boolean;\n @Input() extent: Extent;\n @Input() zIndex: number;\n @Input() minResolution: number;\n @Input() maxResolution: number;\n @Input() layerProperties: { [index: string]: any };\n\n\n public mapifiedRadius: number= 0;\n public mapifiedLine: Array<Coordinate>= [];\n \n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n this.changeDetectorRef.detach();\n }\n\n ngOnInit() {\n this.parseValues();\n this.source = new VectorSource({features: this.features});\n this.layer = new VectorLayer(Object.assign(this, {...this.layerProperties}));\n\n const map = this.mapComponent.getMap();\n if(this.layer && map) {\n map.addLayer(this.layer);\n map.render();\n this.layerReady.next(this.layer);\n this.layerReady.complete();\n }\n\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if(this.layer) {\n const properties: { [index: string]: any } = {};\n\n for(const key in changes) {\n if(key=='radius' || key=='anchorPosition' || key=='lineCoords') {\n this.parseValues();\n if(this.source) { \n this.source.clear();\n this.source.addFeatures(this.features);\n }\n }\n else if( key=='layerProperties') { \n this.layer.setProperties(properties, false);\n }\n else {\n properties[key] = changes[key].currentValue;\n }\n }\n this.layer.setProperties(properties, false);\n }\n }\n\n ngOnDestroy() {\n const map = this.mapComponent.getMap();\n if (this.layer && map) {\n map.removeLayer(this.layer);\n map.render();\n this.layer = null;\n }\n }\n\n parseValues() {\n this.mapifiedRadius= mapifyRadius(this.radius, this.anchorPosition);\n this.mapifiedLine= mapifyCoords(this.lineCoords);\n let fa: Feature[]= [];\n let f= new Feature({\n geometry: new LineString( fromLonLatArray(this.mapifiedLine) )\n });\n f.setStyle(this.buildStyle('line'));\n fa.push(f);\n f= new Feature({\n geometry: new Circle( fromLonLat(this.anchorPosition), this.mapifiedRadius )\n });\n f.setStyle(this.buildStyle('circle'));\n fa.push(f);\n f= new Feature({\n geometry: new Point( fromLonLat(this.anchorPosition) )\n });\n f.setStyle(this.buildStyle('anchor'));\n fa.push(f);\n this.features= fa;\n }\n\n // build target style\n buildStyle(key: string):Style {\n if(this.anchorStyles && this.anchorStyles[key]) {\n return this.anchorStyles[key];\n }\n else {\n if(this.layerProperties && this.layerProperties.style) { \n return this.layerProperties.style \n }\n else { // default style\n return new Style({ \n stroke: new Stroke({\n width: 2,\n color: 'black',\n lineDash: [5,5]\n }),\n fill: new Fill({\n color: 'rgba(0, 255, 0, .3)'\n })\n });\n }\n }\n }\n\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { Layer } from 'ol/layer';\nimport { Feature } from 'ol';\nimport VectorLayer from 'ol/layer/Vector';\nimport VectorSource from 'ol/source/Vector';\nimport { Style, Stroke, Fill, Circle } from 'ol/style';\nimport { LineString, Point } from 'ol/geom';\nimport { fromLonLat } from 'ol/proj';\nimport { MapComponent } from '../map.component';\nimport { Extent, Coordinate } from '../models';\nimport { fromLonLatArray, mapifyCoords, mapifyRadius } from '../util';\nimport { AsyncSubject } from 'rxjs';\n\n\n// ** Freeboard CPA Alarm component **\n@Component({\n selector: 'ol-map > fb-cpa-alarm',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CPAAlarmComponent implements OnInit, OnDestroy, OnChanges {\n\n protected layer: Layer;\n public source: VectorSource;\n protected features: Array<Feature>;\n\n /**\n * This event is triggered after the layer is initialized\n * Use this to have access to the layer and some helper functions\n */\n @Output() layerReady: AsyncSubject<Layer> = new AsyncSubject(); // AsyncSubject will only store the last value, and only publish it when the sequence is completed\n\n @Input() targetPosition: Coordinate;\n\t@Input() lineCoords: Array<Coordinate>;\n @Input() opacity: number;\n @Input() visible: boolean;\n @Input() extent: Extent;\n @Input() zIndex: number;\n @Input() minResolution: number;\n @Input() maxResolution: number;\n @Input() layerProperties: { [index: string]: any };\n\n\n public mapifiedLine: Array<Coordinate>= [];\n \n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n this.changeDetectorRef.detach();\n }\n\n ngOnInit() {\n this.parseValues();\n this.source = new VectorSource({features: this.features});\n this.layer = new VectorLayer(Object.assign(this, {...this.layerProperties}));\n\n const map = this.mapComponent.getMap();\n if(this.layer && map) {\n map.addLayer(this.layer);\n map.render();\n this.layerReady.next(this.layer);\n this.layerReady.complete();\n }\n\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if(this.layer) {\n const properties: { [index: string]: any } = {};\n\n for(const key in changes) {\n if(key=='targetPosition' || key=='lineCoords') {\n this.parseValues();\n if(this.source) { \n this.source.clear();\n this.source.addFeatures(this.features);\n }\n }\n else if( key=='layerProperties') { \n this.layer.setProperties(properties, false);\n }\n else {\n properties[key] = changes[key].currentValue;\n }\n }\n this.layer.setProperties(properties, false);\n }\n }\n\n ngOnDestroy() {\n const map = this.mapComponent.getMap();\n if (this.layer && map) {\n map.removeLayer(this.layer);\n map.render();\n this.layer = null;\n }\n }\n\n parseValues() {\n this.mapifiedLine= mapifyCoords(this.lineCoords);\n let fa: Feature[]= [];\n let f= new Feature({\n geometry: new LineString( fromLonLatArray(this.mapifiedLine) )\n });\n f.setStyle(this.buildStyle());\n fa.push(f);\n f= new Feature({\n geometry: new Point( fromLonLat(this.targetPosition) )\n });\n f.setStyle(this.buildStyle());\n fa.push(f);\n this.features= fa;\n }\n\n // build target style\n buildStyle():Style {\n let cs: Style;\n if(this.layerProperties && this.layerProperties.style) { \n cs= this.layerProperties.style \n }\n else { // default style\n cs= new Style({ \n image: new Circle({\n radius: 10,\n stroke: new Stroke({\n width: 2,\n color: 'red',\n lineDash: [2,3]\n }),\n fill: new Fill({\n color: 'rgba(255,0,0,.2)'\n })\n }), \n stroke: new Stroke({\n width: 2,\n color: 'red',\n lineDash: [2,3]\n }),\n fill: new Fill({\n color: 'rgba(255,0,0,.2)'\n })\n });\n }\n return cs\n }\n\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { Layer } from 'ol/layer';\nimport { Feature } from 'ol';\nimport VectorLayer from 'ol/layer/Vector';\nimport VectorSource from 'ol/source/Vector';\nimport { Style, Stroke, Fill } from 'ol/style';\nimport { Circle } from 'ol/geom';\nimport { fromLonLat } from 'ol/proj';\nimport { MapComponent } from '../map.component';\nimport { Extent, Coordinate } from '../models';\nimport { mapifyRadius } from '../util';\nimport { AsyncSubject } from 'rxjs';\n\n\n// ** Freeboard Arrival Circle component **\n@Component({\n selector: 'ol-map > fb-arrival-circle',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ArrivalCircleComponent implements OnInit, OnDestroy, OnChanges {\n\n protected layer: Layer;\n public source: VectorSource;\n protected features: Array<Feature>;\n\n /**\n * This event is triggered after the layer is initialized\n * Use this to have access to the layer and some helper functions\n */\n @Output() layerReady: AsyncSubject<Layer> = new AsyncSubject(); // AsyncSubject will only store the last value, and only publish it when the sequence is completed\n\n @Input() position: Coordinate;\n\t@Input() radius: number;\n @Input() opacity: number;\n @Input() visible: boolean;\n @Input() extent: Extent;\n @Input() zIndex: number;\n @Input() minResolution: number;\n @Input() maxResolution: number;\n @Input() layerProperties: { [index: string]: any };\n\n\n public mapifiedLine: Array<Coordinate>= [];\n \n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n this.changeDetectorRef.detach();\n }\n\n ngOnInit() {\n this.parseValues();\n this.source = new VectorSource({features: this.features});\n this.layer = new VectorLayer(Object.assign(this, {...this.layerProperties}));\n\n const map = this.mapComponent.getMap();\n if(this.layer && map) {\n map.addLayer(this.layer);\n map.render();\n this.layerReady.next(this.layer);\n this.layerReady.complete();\n }\n\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if(this.layer) {\n const properties: { [index: string]: any } = {};\n\n for(const key in changes) {\n if(key=='position' || key=='radius') {\n this.parseValues();\n if(this.source) { \n this.source.clear();\n this.source.addFeatures(this.features);\n }\n }\n else if( key=='layerProperties') { \n this.layer.setProperties(properties, false);\n }\n else {\n properties[key] = changes[key].currentValue;\n }\n }\n this.layer.setProperties(properties, false);\n }\n }\n\n ngOnDestroy() {\n const map = this.mapComponent.getMap();\n if (this.layer && map) {\n map.removeLayer(this.layer);\n map.render();\n this.layer = null;\n }\n }\n\n parseValues() {\n let fa: Feature[]= [];\n let f= new Feature({\n geometry: new Circle( fromLonLat(this.position), mapifyRadius(this.radius, this.position) )\n });\n f.setStyle(this.buildStyle());\n fa.push(f);\n this.features= fa;\n }\n\n // build target style\n buildStyle():Style {\n let cs: Style;\n if(this.layerProperties && this.layerProperties.style) { \n cs= this.layerProperties.style \n }\n else { // default style\n cs= new Style({\n fill: new Fill({ color: 'rgba(255, 255, 255, .1)' }),\n stroke: new Stroke({ \n color: 'rgba(242, 153, 10, 1)',\n width: 2,\n lineDash: [5,5]\n })\n });\n }\n return cs\n }\n\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { Layer } from 'ol/layer';\nimport { Feature } from 'ol';\nimport VectorLayer from 'ol/layer/Vector';\nimport VectorSource from 'ol/source/Vector';\nimport { Style, Stroke, Fill } from 'ol/style';\nimport { LineString } from 'ol/geom';\nimport { MapComponent } from '../map.component';\nimport { Extent, Coordinate } from '../models';\nimport { fromLonLatArray, mapifyCoords } from '../util';\nimport { AsyncSubject } from 'rxjs';\n\n\n// ** Freeboard XTE path component **\n@Component({\n selector: 'ol-map > fb-xte-path',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class XTEPathComponent implements OnInit, OnDestroy, OnChanges {\n\n protected layer: Layer;\n public source: VectorSource;\n protected features: Array<Feature>;\n\n /**\n * This event is triggered after the layer is initialized\n * Use this to have access to the layer and some helper functions\n */\n @Output() layerReady: AsyncSubject<Layer> = new AsyncSubject(); // AsyncSubject will only store the last value, and only publish it when the sequence is completed\n\n @Input() color: string;\n\t@Input() lineCoords: Array<Coordinate>;\n @Input() opacity: number;\n @Input() visible: boolean;\n @Input() extent: Extent;\n @Input() zIndex: number;\n @Input() minResolution: number;\n @Input() maxResolution: number;\n @Input() layerProperties: { [index: string]: any };\n\n\n public mapifiedLine: Array<Coordinate>= [];\n \n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n this.changeDetectorRef.detach();\n }\n\n ngOnInit() {\n this.parseValues();\n this.source = new VectorSource({features: this.features});\n this.layer = new VectorLayer(Object.assign(this, {...this.layerProperties}));\n\n const map = this.mapComponent.getMap();\n if(this.layer && map) {\n map.addLayer(this.layer);\n map.render();\n this.layerReady.next(this.layer);\n this.layerReady.complete();\n }\n\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if(this.layer) {\n const properties: { [index: string]: any } = {};\n\n for(const key in changes) {\n if(key=='color' || key=='lineCoords') {\n this.parseValues();\n if(this.source) { \n this.source.clear();\n this.source.addFeatures(this.features);\n }\n }\n else if( key=='layerProperties') { \n this.layer.setProperties(properties, false);\n }\n else {\n properties[key] = changes[key].currentValue;\n }\n }\n this.layer.setProperties(properties, false);\n }\n }\n\n ngOnDestroy() {\n const map = this.mapComponent.getMap();\n if (this.layer && map) {\n map.removeLayer(this.layer);\n map.render();\n this.layer = null;\n }\n }\n\n parseValues() {\n this.mapifiedLine= mapifyCoords(this.lineCoords);\n let fa: Feature[]= [];\n let f= new Feature({\n geometry: new LineString( fromLonLatArray(this.mapifiedLine) )\n });\n f.setStyle(this.buildStyle());\n fa.push(f);\n this.features= fa;\n }\n\n // build target style\n buildStyle():Style {\n let cs: Style;\n if(this.layerProperties && this.layerProperties.style) { \n cs= this.layerProperties.style \n }\n else { // default style\n let color= this.color ?? 'gray';\n cs= new Style({ \n stroke: new Stroke({\n width: 1,\n color: color,\n lineDash: [5,5]\n }),\n fill: new Fill({\n color: 'rgba(255,0,0,.2)'\n })\n });\n }\n return cs\n }\n\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges, SimpleChange\n} from '@angular/core';\nimport { Layer } from 'ol/layer';\nimport { Feature } from 'ol';\nimport VectorLayer from 'ol/layer/Vector';\nimport VectorSource from 'ol/source/Vector';\nimport { Style, Stroke, Fill, Circle, Text } from 'ol/style';\nimport { StyleLike } from 'ol/style/Style';\nimport { LineString, Point } from 'ol/geom';\nimport { fromLonLat } from 'ol/proj';\nimport { MapComponent } from '../map.component';\nimport { Extent, Coordinate } from '../models';\nimport { fromLonLatArray, mapifyCoords, mapifyRadius } from '../util';\nimport { AsyncSubject } from 'rxjs';\n\n// ** Freeboard Bearing line component **\n@Component({\n selector: 'ol-map > fb-bearing-line',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BearingLineComponent implements OnInit, OnDestroy, OnChanges {\n\n protected layer: Layer;\n public source: VectorSource;\n protected features: Array<Feature>= [];\n\n /**\n * This event is triggered after the layer is initialized\n * Use this to have access to the layer and some helper functions\n */\n @Output() layerReady: AsyncSubject<Layer> = new AsyncSubject(); // AsyncSubject will only store the last value, and only publish it when the sequence is completed\n\n @Input() marker: Coordinate;\n @Input() markerName: string;\n\t@Input() lineCoords: Array<Coordinate>;\n @Input() showMarker: boolean= false;\n @Input() mapZoom: number= 10;\n @Input() labelMinZoom: number= 10;\n @Input() bearingStyles: { [key:string]: any };\n @Input() opacity: number;\n @Input() visible: boolean;\n @Input() extent: Extent;\n @Input() zIndex: number;\n @Input() minResolution: number;\n @Input() maxResolution: number;\n @Input() layerProperties: { [index: string]: any };\n\n\n public mapifiedRadius: number= 0;\n public mapifiedLine: Array<Coordinate>= [];\n \n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n this.changeDetectorRef.detach();\n }\n\n ngOnInit() {\n this.parseValues();\n this.source = new VectorSource({features: this.features});\n this.layer = new VectorLayer(Object.assign(this, {...this.layerProperties}));\n\n const map = this.mapComponent.getMap();\n if(this.layer && map) {\n map.addLayer(this.layer);\n map.render();\n this.layerReady.next(this.layer);\n this.layerReady.complete();\n }\n\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if(this.layer) {\n const properties: { [index: string]: any } = {};\n\n for(const key in changes) {\n \n if(key=='marker' || key=='showMarker' || key=='lineCoords') {\n this.parseValues();\n if(this.source) { \n this.source.clear();\n this.source.addFeatures(this.features);\n }\n }\n else if( key=='markerName' || key=='labelMinZoom' || key=='mapZoom') { \n this.handleLabelZoomChange(key, changes[key]);\n }\n else if( key=='layerProperties') { \n this.layer.setProperties(properties, false);\n }\n else {\n properties[key] = changes[key].currentValue;\n }\n }\n this.layer.setProperties(properties, false);\n }\n }\n\n ngOnDestroy() {\n const map = this.mapComponent.getMap();\n if (this.layer && map) {\n map.removeLayer(this.layer);\n map.render();\n this.layer = null;\n }\n }\n\n parseValues() {\n this.mapifiedLine= mapifyCoords(this.lineCoords);\n let fa: Feature[]= [];\n let f= new Feature({\n geometry: new LineString( fromLonLatArray(this.mapifiedLine) )\n });\n f.setStyle(this.buildStyle('base'));\n fa.push(f);\n f= new Feature({\n geometry: new LineString( fromLonLatArray(this.mapifiedLine) )\n });\n f.setStyle(this.buildStyle('line'));\n fa.push(f);\n f= new Feature({\n geometry: new Point( fromLonLat(this.marker) )\n });\n f.setId('d.base');\n f.setStyle(this.buildStyle('marker-base'));\n this.updateLabel(f);\n fa.push(f);\n if(this.showMarker) {\n f= new Feature({\n geometry: new Point( fromLonLat(this.marker) )\n });\n f.setId('dest.point');\n f.setStyle(this.buildStyle('marker'));\n fa.push(f);\n }\n\n this.features= fa;\n }\n\n // build target style\n buildStyle(key: string):Style {\n if(this.bearingStyles && this.bearingStyles[key]) {\n return this.bearingStyles[key];\n }\n else {\n if(this.layerProperties && this.layerProperties.style) { \n return this.layerProperties.style \n }\n else { // default style\n if(key=='base') {\n return new Style({ \n stroke: new Stroke({\n width: 6,\n color: 'white'\n }),\n fill: new Fill({\n color: 'white'\n }),\n image: new Circle({\n radius: 5,\n stroke: new Stroke({\n width: 2,\n color: 'white'\n }),\n fill: new Fill({\n color: 'rgba(221, 149, 0, 1)'\n })\n })\n });\n }\n else if(key=='marker-base') {\n return new Style({ \n image: new Circle({\n radius: 5,\n stroke: new Stroke({\n width: 2,\n color: 'white'\n }),\n fill: new Fill({\n color: 'rgba(221, 149, 0, 1)'\n })\n }),\n text: new Text({\n text: '',\n offsetX: 25\n })\n })\n }\n else {\n return new Style({ \n stroke: new Stroke({\n width: 2,\n color: 'rgba(221, 149, 0, 1)'\n }),\n fill: new Fill({\n color: 'rgba(221, 149, 0, 1)'\n })\n });\n }\n }\n }\n }\n\n // ** assess attribute change **\n handleLabelZoomChange(key: string, change: SimpleChange) {\n if(key=='labelMinZoom') {\n if(typeof this.mapZoom!=='undefined') { \n this.updateLabel();\n }\n }\n else if(key=='mapZoom') {\n if(typeof this.labelMinZoom !=='undefined') {\n if( (change.currentValue >= this.labelMinZoom && change.previousValue < this.labelMinZoom) || \n (change.currentValue < this.labelMinZoom && change.previousValue >= this.labelMinZoom) ) {\n this.updateLabel();\n }\n }\n }\n }\n\n // update feature labels\n updateLabel(f?: Feature) {\n if(!f && this.source) {\n f= this.source.getFeatureById('d.base'); \n }\n let s:StyleLike= f.getStyle();\n if(!s) { return }\n let ts= (s as Style).getText();\n if(!ts) { return }\n ts.setText( (Math.abs(this.mapZoom)>= this.labelMinZoom) ? this.markerName ?? '' : '' );\n (s as Style).setText(ts);\n f.setStyle( s );\n }\n\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { Layer } from 'ol/layer';\nimport { Feature } from 'ol';\nimport VectorLayer from 'ol/layer/Vector';\nimport VectorSource from 'ol/source/Vector';\nimport { Style, RegularShape, Fill, Stroke } from 'ol/style';\nimport { Geometry, Point, LineString } from 'ol/geom';\nimport { fromLonLat } from 'ol/proj';\nimport { MapComponent } from '../map.component';\nimport { Extent, Coordinate } from '../models';\nimport { fromLonLatArray, mapifyCoords } from '../util';\nimport { AsyncSubject } from 'rxjs';\n\n\n// ** Freeboard Vessel component **\n@Component({\n selector: 'ol-map > fb-vessel',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class VesselComponent implements OnInit, OnDestroy, OnChanges {\n\n protected layer: Layer;\n public source: VectorSource;\n protected features: Array<Feature>;\n\n /**\n * This event is triggered after the layer is initialized\n * Use this to have access to the layer and some helper functions\n */\n @Output() layerReady: AsyncSubject<Layer> = new AsyncSubject(); // AsyncSubject will only store the last value, and only publish it when the sequence is completed\n\n @Input() id: string;\n @Input() activeId: string;\n @Input() position: Coordinate;\n @Input() heading: number= 0;\n @Input() vesselStyles: {[key:string]: Style};\n @Input() vesselLines: {[key:string]: Array<Coordinate>};\n @Input() showWind: boolean= false;\n @Input() opacity: number;\n @Input() visible: boolean;\n @Input() extent: Extent;\n @Input() zIndex: number;\n @Input() minResolution: number;\n @Input() maxResolution: number;\n @Input() layerProperties: { [index: string]: any };\n\n vessel: Feature;\n twdLine: Feature;\n awaLine: Feature;\n headingLine: Feature;\n\n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n this.changeDetectorRef.detach();\n }\n\n ngOnInit() {\n let fa= []\n this.parseVessel();\n if(this.vessel) { fa.push(this.vessel) }\n this.renderVesselLines();\n if(this.headingLine) { fa.push(this.headingLine) }\n if(this.twdLine) { fa.push(this.twdLine) }\n if(this.awaLine) { fa.push(this.awaLine) }\n\n this.source = new VectorSource({features: fa });\n this.layer = new VectorLayer(Object.assign(this, {...this.layerProperties}));\n\n const map = this.mapComponent.getMap();\n if(this.layer && map) {\n map.addLayer(this.layer);\n map.render();\n this.layerReady.next(this.layer);\n this.layerReady.complete();\n }\n\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if(this.layer) {\n const properties: { [index: string]: any } = {};\n\n for(const key in changes) {\n if(key=='id' || key=='activeId' || key=='position' || key=='heading') {\n if(this.source) { \n this.parseVessel();\n }\n }\n else if( key=='vesselLines' || key=='showWind') { \n if(this.source) { \n this.renderVesselLines();\n }\n }\n else if( key=='vesselStyles') { \n if(this.source) { \n this.parseVessel();\n }\n }\n else if( key=='layerProperties') { \n this.layer.setProperties(properties, false);\n }\n else {\n properties[key] = changes[key].currentValue;\n }\n }\n this.layer.setProperties(properties, false);\n }\n }\n\n ngOnDestroy() {\n const map = this.mapComponent.getMap();\n if (this.layer && map) {\n map.removeLayer(this.layer);\n map.render();\n this.layer = null;\n }\n }\n\n parseVessel() {\n if(!this.vessel) { // create feature\n this.vessel= new Feature( new Point(\n fromLonLat([\n this.position[0] ?? 0,\n this.position[1] ?? 0\n ])\n ) );\n }\n //update feature\n if(this.position && Array.isArray(this.position) && this.position.length>1) {\n let g:Geometry= this.vessel.getGeometry();\n (g as Point).setCoordinates( fromLonLat([\n this.position[0],\n this.position[1]\n ]) );\n }\n this.vessel.setId(this.id ?? 'self');\n let s= this.buildStyle();\n if(s) {\n let im= (s as Style).getImage();\n if(im) { im.setRotation(this.heading) };\n this.vessel.setStyle(s);\n }\n }\n\n // build target style\n buildStyle():Style {\n let cs= new Style({ // default style \n image: new RegularShape({\n points: 3,\n radius: 15, \n fill: new Fill({ color: 'red' }),\n stroke: new Stroke({\n color: 'black',\n width: 3\n }),\n rotateWithView: true,\n rotation: this.heading ?? 0\n })\n });\n\n if(this.vesselStyles) { \n if(this.activeId && this.activeId!= this.id) {\n if(this.vesselStyles.inactive) {\n cs= this.vesselStyles.inactive;\n }\n } \n else {\n if(this.vesselStyles.default) {\n cs= this.vesselStyles.default; \n }\n }\n }\n else if(this.layerProperties && this.layerProperties.style) { \n cs= this.layerProperties.style \n }\n\n return cs\n }\n\n // remove feature from layer\n removeFeature(f: Feature) {\n if(this.source) {\n this.source.removeFeature(f);\n }\n }\n\n renderVesselLines() {\n if(!this.vesselLines) { return }\n if( 'heading' in this.vesselLines) {\n this.headingLine= this.updateLine(this.headingLine, this.vesselLines.heading);\n this.headingLine.setStyle( new Style({\n stroke: new Stroke({ color: 'rgba(221, 99, 0, 0.5)', width: 4 })\n }) );\n }\n else {\n this.removeFeature(this.headingLine);\n }\n if('twd' in this.vesselLines) {\n this.twdLine= this.updateLine(this.twdLine, this.vesselLines.twd);\n this.twdLine.setStyle( new Style({\n stroke: new Stroke({ color: `rgb(128, 128, 0, ${this.showWind ? 1 : 0})`, width: 2 })\n }) );\n }\n else {\n this.removeFeature(this.twdLine);\n }\n if('awa' in this.vesselLines) {\n this.awaLine= this.updateLine(this.awaLine, this.vesselLines.awa);\n this.awaLine.setStyle( new Style({\n stroke: new Stroke({ color: `rgb(16, 75, 16, ${this.showWind ? 1 : 0})`, width: 1 })\n }) );\n }\n else {\n this.removeFeature(this.awaLine);\n }\n }\n\n // ** update line geometry **\n updateLine(lf: Feature, coords: Array<Coordinate>) {\n if(!coords || !Array.isArray(coords)) { return }\n if(!lf) { // create feature\n lf= new Feature( new LineString(\n fromLonLatArray(mapifyCoords(coords))\n ) );\n }\n else { \n let g:any= lf.getGeometry();\n g.setCoordinates( fromLonLatArray(mapifyCoords(coords)) );\n }\n return lf;\n }\n\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { Layer } from 'ol/layer';\nimport { Feature } from 'ol';\nimport VectorLayer from 'ol/layer/Vector';\nimport VectorSource from 'ol/source/Vector';\nimport { Style, Fill, Stroke } from 'ol/style';\nimport { Geometry, MultiLineString, LineString } from 'ol/geom';\nimport { MapComponent } from '../map.component';\nimport { Extent, Coordinate } from '../models';\nimport { fromLonLatArray, mapifyCoords } from '../util';\nimport { AsyncSubject } from 'rxjs';\n\n\n// ** Freeboard Vessel trail component **\n@Component({\n selector: 'ol-map > fb-vessel-trail',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class VesselTrailComponent implements OnInit, OnDestroy, OnChanges {\n\n protected layer: Layer;\n public source: VectorSource;\n protected features: Array<Feature>;\n\n /**\n * This event is triggered after the layer is initialized\n * Use this to have access to the layer and some helper functions\n */\n @Output() layerReady: AsyncSubject<Layer> = new AsyncSubject(); // AsyncSubject will only store the last value, and only publish it when the sequence is completed\n\n\n @Input() localTrail: Array<Coordinate>;\n @Input() serverTrail: Array<Array<Coordinate>>;\n @Input() trailStyles: { [key: string]: Style };\n @Input() opacity: number;\n @Input() visible: boolean;\n @Input() extent: Extent;\n @Input() zIndex: number;\n @Input() minResolution: number;\n @Input() maxResolution: number;\n @Input() layerProperties: { [index: string]: any };\n\n trailLocal: Feature;\n trailServer: Feature;\n\n constructor(protected changeDetectorRef: ChangeDetectorRef,\n protected mapComponent: MapComponent) {\n this.changeDetectorRef.detach();\n }\n\n ngOnInit() {\n let fa= []\n this.parseTrails();\n if(this.trailLocal) { fa.push(this.trailLocal) }\n if(this.trailServer) { fa.push(this.trailServer) }\n this.source = new VectorSource({features: fa });\n this.layer = new VectorLayer(Object.assign(this, {...this.layerProperties}));\n\n const map = this.mapComponent.getMap();\n if(this.layer && map) {\n map.addLayer(this.layer);\n map.render();\n this.layerReady.next(this.layer);\n this.layerReady.complete();\n }\n\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if(this.layer) {\n const properties: { [index: string]: any } = {};\n\n for(const key in changes) {\n if(key=='localTrail') {\n if(this.source) { \n this.parseLocalTrail();\n }\n }\n if(key=='serverTrail') {\n if(this.source) { \n this.parseServerTrail();\n }\n }\n if(key=='trailStyles') {\n if(this.source) { \n this.parseTrails();\n }\n }\n else if( key=='layerProperties') { \n this.layer.setProperties(properties, false);\n }\n else {\n properties[key] = changes[key].currentValue;\n }\n }\n this.layer.setProperties(properties, false);\n }\n }\n\n ngOnDestroy() {\n const map = this.mapComponent.getMap();\n if (this.layer && map) {\n map.removeLayer(this.layer);\n map.render();\n this.layer = null;\n }\n }\n\n parseTrails() {\n this.parseLocalTrail();\n this.parseServerTrail();\n }\n\n parseLocalTrail() {\n if(!this.localTrail) { return }\n let c= fromLonLatArray(this.localTrail);\n if(!this.trailLocal) { // create feature\n this.trailLocal= new Feature( new LineString( mapifyCoords(c) ) );\n this.trailLocal.setId('trail.self.local');\n this.trailLocal.setStyle(this.buildStyle('local'));\n }\n else { //update feature\n this.trailLocal= this.source.getFeatureById('trail.self.local');\n if(this.localTrail && Array.isArray(this.localTrail)) {\n let g:Geometry= this.trailLocal.getGeometry();\n (g as LineString).setCoordinates( mapifyCoords(c) );\n }\n }\n }\n\n parseServerTrail() {\n if(!this.serverTrail) { return }\n let c= fromLonLatArray(this.serverTrail);\n let ca= [];\n c.forEach( (t:Array<Coordinate>)=> { ca.push(mapifyCoords(t)) });\n if(!this.trailServer) { // create feature\n this.trailServer= new Feature( new MultiLineString( ca ) );\n this.trailServer.setId('trail.self.server');\n this.trailServer.setStyle(this.buildStyle('server'));\n }\n else { //update feature\n this.trailServer= this.source.getFeatureById('trail.self.server');\n if(this.serverTrail && Array.isArray(this.serverTrail)) {\n let g:Geometry= this.trailServer.getGeometry();\n (g as MultiLineString).setCoordinates(ca);\n }\n }\n } \n\n // build target style\n buildStyle(type:string= 'local'):Style {\n let cs: Style;\n if( type=='server') {\n if(this.trailStyles && this.trailStyles.server) { \n cs= this.trailStyles.server;\n }\n else {\n cs= new Style({ // default server \n stroke: new Stroke({\n color: 'rgb(252, 3, 132)',\n width: 1,\n lineDash: [4,4]\n })\n });\n }\n }\n else {\n if(this.trailStyles && this.trailStyles.local) { \n cs= this.trailStyles.local;\n }\n else {\n cs= new Style({ // default local \n stroke: new Stroke({\n color: 'rgb(252, 3, 132)',\n width: 1,\n lineDash: [2,2]\n })\n });\n }\n }\n return cs\n }\n\n}\n","/*\n * Public API Surface of ng-openlayers\n */\nimport {NgModule} from '@angular/core';\nimport {InteractionsDirective} from './lib/interactions.directive';\nimport {LayerType} from './lib/models';\nimport {MapComponent} from './lib/map.component';\nimport {OverlayComponent} from './lib/overlay.component';\nimport {ControlsDirective} from './lib/controls.directive';\nimport {ViewDirective} from './lib/view.directive';\nimport {MapService} from './lib/map.service';\nimport {ContentComponent} from './lib/content.component';\nimport {LayerComponent} from './lib/layer.component';\n\nimport {ControlComponent} from './lib/control.component';\n\nimport {InteractionDrawComponent} from './lib/interactions/interaction-draw.component';\nimport {InteractionModifyComponent} from './lib/interactions/interaction-modify.component';\nimport {WaypointLayerComponent, FreeboardWaypointLayerComponent} from './lib/resources/layer-waypoints.component';\nimport {NoteLayerComponent, FreeboardNoteLayerComponent} from './lib/resources/layer-notes.component';\nimport {RouteLayerComponent, FreeboardRouteLayerComponent} from './lib/resources/layer-routes.component'\nimport {RegionLayerComponent, FreeboardRegionLayerComponent} from './lib/resources/layer-regions.component';\nimport {FreeboardChartLayerComponent} from './lib/resources/layer-charts.component';\nimport {TrackLayerComponent} from './lib/resources/layer-tracks.component';\nimport {ResourceSetLayerComponent} from './lib/resources/layer-resourceset.component';\nimport {SKTargetsLayerComponent} from './lib/resources/layer-sktargets.component';\nimport {SKVesselsLayerComponent} from './lib/resources/layer-skvessels.component';\nimport {SKTargetTracksLayerComponent} from './lib/resources/layer-sktarget-tracks.component';\nimport {AnchorAlarmComponent} from './lib/alarms/layer-anchor-alarm.component';\nimport {CPAAlarmComponent} from './lib/alarms/layer-cpa-alarm.component';\nimport {ArrivalCircleComponent} from './lib/navigation/layer-arrival-circle.component';\nimport {XTEPathComponent} from './lib/navigation/layer-xte-path.component';\nimport {BearingLineComponent} from './lib/navigation/layer-bearing-line.component';\nimport {VesselComponent} from './lib/vessel/layer-vessel.component';\nimport {VesselTrailComponent} from './lib/vessel/layer-vessel-trail.component';\n\nexport * from './lib/util';\nexport {MapService} from './lib/map.service';\n\nexport {ContentComponent} from './lib/content.component';\nexport {ControlsDirective} from './lib/controls.directive';\nexport {InteractionsDirective} from './lib/interactions.directive';\nexport {LayerComponent} from './lib/layer.component';\nexport {LayerType, SourceType} from './lib/models';\nexport {MapComponent} from './lib/map.component';\nexport {OverlayComponent} from './lib/overlay.component';\nexport {ViewDirective} from './lib/view.directive';\n\nexport {ControlComponent} from './lib/control.component';\n\nexport {InteractionDrawComponent} from './lib/interactions/interaction-draw.component';\nexport {InteractionModifyComponent} from './lib/interactions/interaction-modify.component';\nexport {WaypointLayerComponent, FreeboardWaypointLayerComponent} from './lib/resources/layer-waypoints.component';\nexport {NoteLayerComponent, FreeboardNoteLayerComponent} from './lib/resources/layer-notes.component';\nexport {RouteLayerComponent, FreeboardRouteLayerComponent} from './lib/resources/layer-routes.component';\nexport {RegionLayerComponent, FreeboardRegionLayerComponent} from './lib/resources/layer-regions.component';\nexport {FreeboardChartLayerComponent} from './lib/resources/layer-charts.component';\nexport {TrackLayerComponent} from './lib/resources/layer-tracks.component';\nexport {ResourceSetLayerComponent} from './lib/resources/layer-resourceset.component';\nexport {SKTargetsLayerComponent} from './lib/resources/layer-sktargets.component';\nexport {SKVesselsLayerComponent} from './lib/resources/layer-skvessels.component';\nexport {SKTargetTracksLayerComponent} from './lib/resources/layer-sktarget-tracks.component';\nexport {AnchorAlarmComponent} from './lib/alarms/layer-anchor-alarm.component';\nexport {CPAAlarmComponent} from './lib/alarms/layer-cpa-alarm.component';\nexport {ArrivalCircleComponent} from './lib/navigation/layer-arrival-circle.component';\nexport {XTEPathComponent} from './lib/navigation/layer-xte-path.component';\nexport {BearingLineComponent} from './lib/navigation/layer-bearing-line.component';\nexport {VesselComponent} from './lib/vessel/layer-vessel.component';\nexport {VesselTrailComponent} from './lib/vessel/layer-vessel-trail.component';\n\n\nconst declarations = [\n ContentComponent,\n ControlsDirective,\n LayerComponent,\n InteractionsDirective,\n MapComponent,\n OverlayComponent,\n ViewDirective, \n ControlComponent,\n InteractionDrawComponent, InteractionModifyComponent,\n WaypointLayerComponent, FreeboardWaypointLayerComponent,\n NoteLayerComponent, FreeboardNoteLayerComponent,\n RouteLayerComponent, FreeboardRouteLayerComponent,\n RegionLayerComponent, FreeboardRegionLayerComponent,\n TrackLayerComponent, FreeboardChartLayerComponent,\n ResourceSetLayerComponent,\n SKTargetsLayerComponent, SKTargetTracksLayerComponent,\n AnchorAlarmComponent, CPAAlarmComponent, \n ArrivalCircleComponent, XTEPathComponent, BearingLineComponent,\n VesselComponent, VesselTrailComponent, SKVesselsLayerComponent\n];\n\n@NgModule({\n imports: [],\n declarations: [...declarations],\n exports: [...declarations]\n})\nexport class FreeboardOpenlayersModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["getProj","proj4","register","Injectable","AsyncSubject","EventEmitter","Map","toLonLat","transformExtent","Component","ChangeDetectionStrategy","ChangeDetectorRef","ElementRef","Output","Input","DragPan","DragRotate","DragZoom","DoubleClickZoom","KeyboardPan","KeyboardZoom","MouseWheelZoom","PinchZoom","Directive","Overlay","fromLonLat","Attribution","FullScreen","Rotate","ScaleLine","Zoom","ZoomSlider","ZoomToExtent","View","LayerType","SourceType","TileLayer","OSM","getPointResolution","ImageWMS","ImageLayer","VectorTileSource","VectorTileLayer","Cluster","VectorLayer","VectorSource","WMTS","TileWMS","TileImage","XYZ","Control","GeometryType","Draw","Modify","Feature","Point","Style","Circle","Fill","Stroke","Text","RegularShape","LineString","MultiPolygon","Polygon","source","MVT","MultiLineString","MultiPoint","NgModule"],"mappings":"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"}