@inlog/inlog-maps 5.0.6 → 6.1.0

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 (243) hide show
  1. package/DOCUMENTATION.md +19 -2
  2. package/_bundles/inlog-maps.js +2 -7239
  3. package/_bundles/inlog-maps.js.LICENSE.txt +20 -0
  4. package/_bundles/inlog-maps.js.map +1 -1
  5. package/_bundles/inlog-maps.min.js +2 -1
  6. package/_bundles/inlog-maps.min.js.LICENSE.txt +20 -0
  7. package/_bundles/inlog-maps.min.js.map +1 -1
  8. package/lib/index.js +46 -46
  9. package/lib/index.js.map +1 -1
  10. package/lib/map.js +1136 -1010
  11. package/lib/map.js.map +1 -1
  12. package/lib/models/apis/google/google-circles.js +133 -130
  13. package/lib/models/apis/google/google-circles.js.map +1 -1
  14. package/lib/models/apis/google/google-geojson.js +72 -71
  15. package/lib/models/apis/google/google-geojson.js.map +1 -1
  16. package/lib/models/apis/google/google-map.js +173 -90
  17. package/lib/models/apis/google/google-map.js.map +1 -1
  18. package/lib/models/apis/google/google-markers.js +324 -290
  19. package/lib/models/apis/google/google-markers.js.map +1 -1
  20. package/lib/models/apis/google/google-overlay.js +101 -96
  21. package/lib/models/apis/google/google-overlay.js.map +1 -1
  22. package/lib/models/apis/google/google-polygons.js +300 -227
  23. package/lib/models/apis/google/google-polygons.js.map +1 -1
  24. package/lib/models/apis/google/google-polylines.js +706 -596
  25. package/lib/models/apis/google/google-polylines.js.map +1 -1
  26. package/lib/models/apis/google/google-popup.js +58 -60
  27. package/lib/models/apis/google/google-popup.js.map +1 -1
  28. package/lib/models/apis/googleMaps.js +448 -354
  29. package/lib/models/apis/googleMaps.js.map +1 -1
  30. package/lib/models/apis/leaflet/leaflet-circle.js +162 -134
  31. package/lib/models/apis/leaflet/leaflet-circle.js.map +1 -1
  32. package/lib/models/apis/leaflet/leaflet-geojson.js +72 -68
  33. package/lib/models/apis/leaflet/leaflet-geojson.js.map +1 -1
  34. package/lib/models/apis/leaflet/leaflet-map.js +139 -85
  35. package/lib/models/apis/leaflet/leaflet-map.js.map +1 -1
  36. package/lib/models/apis/leaflet/leaflet-markers.js +293 -259
  37. package/lib/models/apis/leaflet/leaflet-markers.js.map +1 -1
  38. package/lib/models/apis/leaflet/leaflet-overlay.js +34 -36
  39. package/lib/models/apis/leaflet/leaflet-overlay.js.map +1 -1
  40. package/lib/models/apis/leaflet/leaflet-polygons.js +210 -212
  41. package/lib/models/apis/leaflet/leaflet-polygons.js.map +1 -1
  42. package/lib/models/apis/leaflet/leaflet-polylines.js +705 -590
  43. package/lib/models/apis/leaflet/leaflet-polylines.js.map +1 -1
  44. package/lib/models/apis/leaflet/leaflet-popup.js +73 -75
  45. package/lib/models/apis/leaflet/leaflet-popup.js.map +1 -1
  46. package/lib/models/apis/leaflet.js +463 -360
  47. package/lib/models/apis/leaflet.js.map +1 -1
  48. package/lib/models/apis/mapFunctions.js +1 -2
  49. package/lib/models/dto/event-type.js +38 -40
  50. package/lib/models/dto/event-type.js.map +1 -1
  51. package/lib/models/dto/map-type.js +5 -7
  52. package/lib/models/dto/map-type.js.map +1 -1
  53. package/lib/models/dto/polyline-type.js +6 -8
  54. package/lib/models/dto/polyline-type.js.map +1 -1
  55. package/lib/models/features/circle/circle-alter-options.js +13 -15
  56. package/lib/models/features/circle/circle-alter-options.js.map +1 -1
  57. package/lib/models/features/circle/circle-options.js +18 -20
  58. package/lib/models/features/circle/circle-options.js.map +1 -1
  59. package/lib/models/features/events/event-return.js +7 -9
  60. package/lib/models/features/events/event-return.js.map +1 -1
  61. package/lib/models/features/geojson/geojson-options.js +8 -10
  62. package/lib/models/features/geojson/geojson-options.js.map +1 -1
  63. package/lib/models/features/marker/circle-marker-options.js +11 -13
  64. package/lib/models/features/marker/circle-marker-options.js.map +1 -1
  65. package/lib/models/features/marker/circle-marker-style.js +11 -13
  66. package/lib/models/features/marker/circle-marker-style.js.map +1 -1
  67. package/lib/models/features/marker/marker-alter-options.js +9 -11
  68. package/lib/models/features/marker/marker-alter-options.js.map +1 -1
  69. package/lib/models/features/marker/marker-icon.js +9 -11
  70. package/lib/models/features/marker/marker-icon.js.map +1 -1
  71. package/lib/models/features/marker/marker-options.js +17 -19
  72. package/lib/models/features/marker/marker-options.js.map +1 -1
  73. package/lib/models/features/marker-clusterer/marker-clusterer-config.js +9 -11
  74. package/lib/models/features/marker-clusterer/marker-clusterer-config.js.map +1 -1
  75. package/lib/models/features/overlay/overlay-options.js +14 -16
  76. package/lib/models/features/overlay/overlay-options.js.map +1 -1
  77. package/lib/models/features/polygons/polygon-alter-options.js +13 -14
  78. package/lib/models/features/polygons/polygon-alter-options.js.map +1 -1
  79. package/lib/models/features/polygons/polygon-options.js +18 -19
  80. package/lib/models/features/polygons/polygon-options.js.map +1 -1
  81. package/lib/models/features/polyline/navigations-options.js +15 -15
  82. package/lib/models/features/polyline/navigations-options.js.map +1 -1
  83. package/lib/models/features/polyline/polyline-options.js +19 -21
  84. package/lib/models/features/polyline/polyline-options.js.map +1 -1
  85. package/lib/models/features/popup/popup-options.js +12 -14
  86. package/lib/models/features/popup/popup-options.js.map +1 -1
  87. package/lib/utils/maps-api-loader.service.js +88 -77
  88. package/lib/utils/maps-api-loader.service.js.map +1 -1
  89. package/lib/utils/url-builder.js +43 -45
  90. package/lib/utils/url-builder.js.map +1 -1
  91. package/lib-esm/index.js +46 -45
  92. package/lib-esm/index.js.map +1 -1
  93. package/lib-esm/map.js +1136 -1008
  94. package/lib-esm/map.js.map +1 -1
  95. package/lib-esm/models/apis/google/google-circles.js +133 -128
  96. package/lib-esm/models/apis/google/google-circles.js.map +1 -1
  97. package/lib-esm/models/apis/google/google-geojson.js +72 -69
  98. package/lib-esm/models/apis/google/google-geojson.js.map +1 -1
  99. package/lib-esm/models/apis/google/google-map.js +173 -88
  100. package/lib-esm/models/apis/google/google-map.js.map +1 -1
  101. package/lib-esm/models/apis/google/google-markers.js +324 -288
  102. package/lib-esm/models/apis/google/google-markers.js.map +1 -1
  103. package/lib-esm/models/apis/google/google-overlay.js +101 -94
  104. package/lib-esm/models/apis/google/google-overlay.js.map +1 -1
  105. package/lib-esm/models/apis/google/google-polygons.js +300 -225
  106. package/lib-esm/models/apis/google/google-polygons.js.map +1 -1
  107. package/lib-esm/models/apis/google/google-polylines.js +706 -594
  108. package/lib-esm/models/apis/google/google-polylines.js.map +1 -1
  109. package/lib-esm/models/apis/google/google-popup.js +58 -58
  110. package/lib-esm/models/apis/google/google-popup.js.map +1 -1
  111. package/lib-esm/models/apis/googleMaps.js +448 -352
  112. package/lib-esm/models/apis/googleMaps.js.map +1 -1
  113. package/lib-esm/models/apis/leaflet/leaflet-circle.js +162 -132
  114. package/lib-esm/models/apis/leaflet/leaflet-circle.js.map +1 -1
  115. package/lib-esm/models/apis/leaflet/leaflet-geojson.js +72 -66
  116. package/lib-esm/models/apis/leaflet/leaflet-geojson.js.map +1 -1
  117. package/lib-esm/models/apis/leaflet/leaflet-map.js +139 -83
  118. package/lib-esm/models/apis/leaflet/leaflet-map.js.map +1 -1
  119. package/lib-esm/models/apis/leaflet/leaflet-markers.js +293 -257
  120. package/lib-esm/models/apis/leaflet/leaflet-markers.js.map +1 -1
  121. package/lib-esm/models/apis/leaflet/leaflet-overlay.js +34 -34
  122. package/lib-esm/models/apis/leaflet/leaflet-overlay.js.map +1 -1
  123. package/lib-esm/models/apis/leaflet/leaflet-polygons.js +210 -210
  124. package/lib-esm/models/apis/leaflet/leaflet-polygons.js.map +1 -1
  125. package/lib-esm/models/apis/leaflet/leaflet-polylines.js +705 -588
  126. package/lib-esm/models/apis/leaflet/leaflet-polylines.js.map +1 -1
  127. package/lib-esm/models/apis/leaflet/leaflet-popup.js +73 -73
  128. package/lib-esm/models/apis/leaflet/leaflet-popup.js.map +1 -1
  129. package/lib-esm/models/apis/leaflet.js +463 -358
  130. package/lib-esm/models/apis/leaflet.js.map +1 -1
  131. package/lib-esm/models/apis/mapFunctions.js +1 -0
  132. package/lib-esm/models/dto/event-type.js +38 -38
  133. package/lib-esm/models/dto/map-type.js +5 -5
  134. package/lib-esm/models/dto/polyline-type.js +6 -6
  135. package/lib-esm/models/features/circle/circle-alter-options.js +13 -13
  136. package/lib-esm/models/features/circle/circle-options.js +18 -18
  137. package/lib-esm/models/features/events/event-return.js +7 -7
  138. package/lib-esm/models/features/geojson/geojson-options.js +8 -8
  139. package/lib-esm/models/features/marker/circle-marker-options.js +11 -11
  140. package/lib-esm/models/features/marker/circle-marker-style.js +11 -11
  141. package/lib-esm/models/features/marker/marker-alter-options.js +9 -9
  142. package/lib-esm/models/features/marker/marker-icon.js +9 -9
  143. package/lib-esm/models/features/marker/marker-options.js +17 -17
  144. package/lib-esm/models/features/marker-clusterer/marker-clusterer-config.js +9 -9
  145. package/lib-esm/models/features/overlay/overlay-options.js +14 -14
  146. package/lib-esm/models/features/polygons/polygon-alter-options.js +13 -12
  147. package/lib-esm/models/features/polygons/polygon-alter-options.js.map +1 -1
  148. package/lib-esm/models/features/polygons/polygon-options.js +18 -17
  149. package/lib-esm/models/features/polygons/polygon-options.js.map +1 -1
  150. package/lib-esm/models/features/polyline/navigations-options.js +15 -13
  151. package/lib-esm/models/features/polyline/navigations-options.js.map +1 -1
  152. package/lib-esm/models/features/polyline/polyline-options.js +19 -19
  153. package/lib-esm/models/features/polyline/polyline-options.js.map +1 -1
  154. package/lib-esm/models/features/popup/popup-options.js +12 -12
  155. package/lib-esm/utils/maps-api-loader.service.js +88 -75
  156. package/lib-esm/utils/maps-api-loader.service.js.map +1 -1
  157. package/lib-esm/utils/url-builder.js +43 -43
  158. package/lib-esm/utils/url-builder.js.map +1 -1
  159. package/package.json +67 -63
  160. package/lib/index.d.ts +0 -46
  161. package/lib/map.d.ts +0 -513
  162. package/lib/models/apis/google/google-circles.d.ts +0 -18
  163. package/lib/models/apis/google/google-geojson.d.ts +0 -9
  164. package/lib/models/apis/google/google-map.d.ts +0 -15
  165. package/lib/models/apis/google/google-markers.d.ts +0 -29
  166. package/lib/models/apis/google/google-overlay.d.ts +0 -11
  167. package/lib/models/apis/google/google-polygons.d.ts +0 -29
  168. package/lib/models/apis/google/google-polylines.d.ts +0 -55
  169. package/lib/models/apis/google/google-popup.d.ts +0 -10
  170. package/lib/models/apis/googleMaps.d.ts +0 -95
  171. package/lib/models/apis/leaflet/leaflet-circle.d.ts +0 -18
  172. package/lib/models/apis/leaflet/leaflet-geojson.d.ts +0 -9
  173. package/lib/models/apis/leaflet/leaflet-map.d.ts +0 -15
  174. package/lib/models/apis/leaflet/leaflet-markers.d.ts +0 -29
  175. package/lib/models/apis/leaflet/leaflet-overlay.d.ts +0 -10
  176. package/lib/models/apis/leaflet/leaflet-polygons.d.ts +0 -23
  177. package/lib/models/apis/leaflet/leaflet-polylines.d.ts +0 -54
  178. package/lib/models/apis/leaflet/leaflet-popup.d.ts +0 -11
  179. package/lib/models/apis/leaflet.d.ts +0 -97
  180. package/lib/models/apis/mapFunctions.d.ts +0 -84
  181. package/lib/models/dto/event-type.d.ts +0 -33
  182. package/lib/models/dto/map-type.d.ts +0 -4
  183. package/lib/models/dto/polyline-type.d.ts +0 -5
  184. package/lib/models/features/circle/circle-alter-options.d.ts +0 -12
  185. package/lib/models/features/circle/circle-options.d.ts +0 -15
  186. package/lib/models/features/events/event-return.d.ts +0 -4
  187. package/lib/models/features/geojson/geojson-options.d.ts +0 -5
  188. package/lib/models/features/marker/circle-marker-options.d.ts +0 -9
  189. package/lib/models/features/marker/circle-marker-style.d.ts +0 -8
  190. package/lib/models/features/marker/marker-alter-options.d.ts +0 -8
  191. package/lib/models/features/marker/marker-icon.d.ts +0 -6
  192. package/lib/models/features/marker/marker-options.d.ts +0 -11
  193. package/lib/models/features/marker-clusterer/marker-clusterer-config.d.ts +0 -6
  194. package/lib/models/features/overlay/overlay-options.d.ts +0 -11
  195. package/lib/models/features/polygons/polygon-alter-options.d.ts +0 -13
  196. package/lib/models/features/polygons/polygon-options.d.ts +0 -15
  197. package/lib/models/features/polyline/navigations-options.d.ts +0 -11
  198. package/lib/models/features/polyline/polyline-options.d.ts +0 -18
  199. package/lib/models/features/popup/popup-options.d.ts +0 -9
  200. package/lib/utils/maps-api-loader.service.d.ts +0 -9
  201. package/lib/utils/url-builder.d.ts +0 -11
  202. package/lib-esm/index.d.ts +0 -46
  203. package/lib-esm/map.d.ts +0 -513
  204. package/lib-esm/models/apis/google/google-circles.d.ts +0 -18
  205. package/lib-esm/models/apis/google/google-geojson.d.ts +0 -9
  206. package/lib-esm/models/apis/google/google-map.d.ts +0 -15
  207. package/lib-esm/models/apis/google/google-markers.d.ts +0 -29
  208. package/lib-esm/models/apis/google/google-overlay.d.ts +0 -11
  209. package/lib-esm/models/apis/google/google-polygons.d.ts +0 -29
  210. package/lib-esm/models/apis/google/google-polylines.d.ts +0 -55
  211. package/lib-esm/models/apis/google/google-popup.d.ts +0 -10
  212. package/lib-esm/models/apis/googleMaps.d.ts +0 -95
  213. package/lib-esm/models/apis/leaflet/leaflet-circle.d.ts +0 -18
  214. package/lib-esm/models/apis/leaflet/leaflet-geojson.d.ts +0 -9
  215. package/lib-esm/models/apis/leaflet/leaflet-map.d.ts +0 -15
  216. package/lib-esm/models/apis/leaflet/leaflet-markers.d.ts +0 -29
  217. package/lib-esm/models/apis/leaflet/leaflet-overlay.d.ts +0 -10
  218. package/lib-esm/models/apis/leaflet/leaflet-polygons.d.ts +0 -23
  219. package/lib-esm/models/apis/leaflet/leaflet-polylines.d.ts +0 -54
  220. package/lib-esm/models/apis/leaflet/leaflet-popup.d.ts +0 -11
  221. package/lib-esm/models/apis/leaflet.d.ts +0 -97
  222. package/lib-esm/models/apis/mapFunctions.d.ts +0 -84
  223. package/lib-esm/models/dto/event-type.d.ts +0 -33
  224. package/lib-esm/models/dto/map-type.d.ts +0 -4
  225. package/lib-esm/models/dto/polyline-type.d.ts +0 -5
  226. package/lib-esm/models/features/circle/circle-alter-options.d.ts +0 -12
  227. package/lib-esm/models/features/circle/circle-options.d.ts +0 -15
  228. package/lib-esm/models/features/events/event-return.d.ts +0 -4
  229. package/lib-esm/models/features/geojson/geojson-options.d.ts +0 -5
  230. package/lib-esm/models/features/marker/circle-marker-options.d.ts +0 -9
  231. package/lib-esm/models/features/marker/circle-marker-style.d.ts +0 -8
  232. package/lib-esm/models/features/marker/marker-alter-options.d.ts +0 -8
  233. package/lib-esm/models/features/marker/marker-icon.d.ts +0 -6
  234. package/lib-esm/models/features/marker/marker-options.d.ts +0 -11
  235. package/lib-esm/models/features/marker-clusterer/marker-clusterer-config.d.ts +0 -6
  236. package/lib-esm/models/features/overlay/overlay-options.d.ts +0 -11
  237. package/lib-esm/models/features/polygons/polygon-alter-options.d.ts +0 -13
  238. package/lib-esm/models/features/polygons/polygon-options.d.ts +0 -15
  239. package/lib-esm/models/features/polyline/navigations-options.d.ts +0 -11
  240. package/lib-esm/models/features/polyline/polyline-options.d.ts +0 -18
  241. package/lib-esm/models/features/popup/popup-options.d.ts +0 -9
  242. package/lib-esm/utils/maps-api-loader.service.d.ts +0 -9
  243. package/lib-esm/utils/url-builder.d.ts +0 -11
@@ -1,597 +1,707 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var event_type_1 = require("../../dto/event-type");
4
- var polyline_type_1 = require("../../dto/polyline-type");
5
- var event_return_1 = require("../../features/events/event-return");
6
- var GooglePolylines = /** @class */ (function () {
7
- function GooglePolylines(map, google, googlePopups) {
8
- this.map = null;
9
- this.google = null;
10
- this.selectedPolyline = null;
11
- this.selectedPath = null;
12
- this.navigateInfoWindow = null;
13
- this.directionForward = false;
14
- this.multiSelectionForward = false;
15
- this.multiSelection = false;
16
- this.map = map;
17
- this.google = google;
18
- this.googlePopups = googlePopups;
19
- }
20
- GooglePolylines.prototype.drawPolyline = function (options, eventClick) {
21
- var self = this;
22
- var newOptions = {
23
- draggable: options.draggable,
24
- editable: options.editable,
25
- icons: null,
26
- infowindows: options.infowindows,
27
- object: options.object,
28
- path: null,
29
- strokeColor: options.color,
30
- strokeOpacity: options.opacity || 1,
31
- strokeWeight: options.weight,
32
- suppressUndo: true,
33
- zIndex: options.zIndex
34
- };
35
- if (options.style !== null) {
36
- switch (options.style) {
37
- case polyline_type_1.PolylineType.Dotted:
38
- console.warn('PolylineType.Dotted is deprecated, instead use PolylineType.Dashed.');
39
- case polyline_type_1.PolylineType.Dashed:
40
- newOptions.strokeOpacity = 0;
41
- newOptions.icons = [{
42
- icon: {
43
- path: 'M 0,-1 0,1',
44
- scale: 2,
45
- strokeOpacity: 1,
46
- strokeWeight: options.weight
47
- },
48
- offset: '0',
49
- repeat: '10px'
50
- }];
51
- break;
52
- case polyline_type_1.PolylineType.Arrow:
53
- newOptions.icons = [{
54
- icon: {
55
- path: google.maps.SymbolPath.FORWARD_OPEN_ARROW,
56
- scaledSize: new google.maps.Size(20, 20),
57
- size: new google.maps.Size(20, 20)
58
- },
59
- offset: '100%',
60
- repeat: '100px'
61
- },
62
- { icon: { path: google.maps.SymbolPath.FORWARD_OPEN_ARROW }, offset: '0%' },
63
- { icon: { path: google.maps.SymbolPath.FORWARD_OPEN_ARROW }, offset: '100%' }];
64
- break;
65
- default:
66
- break;
67
- }
68
- }
69
- newOptions.path = options.path ? options.path.map(function (x) {
70
- return {
71
- lat: x[0],
72
- lng: x[1]
73
- };
74
- }) : [];
75
- var polyline = new this.google.maps.Polyline(newOptions);
76
- if (eventClick) {
77
- this.google.maps.event.addListener(polyline, 'click', function (event) {
78
- var param = new event_return_1.default([event.latLng.lat(), event.latLng.lng()]);
79
- eventClick(param, polyline.object);
80
- });
81
- }
82
- if (options.addToMap) {
83
- polyline.setMap(self.map);
84
- }
85
- if (options.fitBounds) {
86
- self.map.fitBounds(self.getPolylineBounds(polyline));
87
- }
88
- return polyline;
89
- };
90
- GooglePolylines.prototype.drawPolylineWithNavigation = function (options, eventClick) {
91
- var polyline = this.drawPolyline(options, null);
92
- polyline.navigationHandlerClick = eventClick;
93
- this.navigationOptions = options.navigateOptions;
94
- this.navigateByPoint = this.navigationOptions ? this.navigationOptions.navigateByPoint : true;
95
- this.addNavigation(polyline);
96
- return polyline;
97
- };
98
- GooglePolylines.prototype.togglePolylines = function (polylines, show) {
99
- var _this = this;
100
- polylines.forEach(function (polyline) {
101
- var self = _this;
102
- polyline.setMap(show ? self.map : null);
103
- });
104
- };
105
- GooglePolylines.prototype.alterPolylineOptions = function (polylines, options) {
106
- polylines.forEach(function (polyline) {
107
- var newOptions = {
108
- draggable: options.draggable ? options.draggable : polyline.draggable,
109
- editable: options.editable ? options.editable : polyline.editable,
110
- infowindows: options.infowindows ? options.infowindows : polyline.infowindows,
111
- object: options.object ? options.object : polyline.object,
112
- strokeColor: options.color ? options.color : polyline.strokeColor,
113
- strokeOpacity: options.opacity ? options.opacity : polyline.strokeOpacity,
114
- strokeWeight: options.weight ? options.weight : polyline.strokeWeight,
115
- zIndex: options.zIndex ? options.zIndex : polyline.zIndex
116
- };
117
- if (options.path) {
118
- polyline.setPath(options.path.map(function (x) { return new google.maps.LatLng(x[0], x[1]); }));
119
- }
120
- switch (options.style) {
121
- case polyline_type_1.PolylineType.Dotted:
122
- console.warn('PolylineType.Dotted is deprecated, instead use PolylineType.Dashed.');
123
- case polyline_type_1.PolylineType.Dashed:
124
- newOptions.strokeOpacity = 0;
125
- newOptions.icons = [{
126
- icon: {
127
- path: 'M 0,-1 0,1',
128
- scale: 2,
129
- strokeOpacity: 1
130
- },
131
- offset: '0',
132
- repeat: '10px'
133
- }];
134
- break;
135
- case polyline_type_1.PolylineType.Arrow:
136
- newOptions.icons = [{
137
- icon: {
138
- path: google.maps.SymbolPath.FORWARD_OPEN_ARROW,
139
- scaledSize: new google.maps.Size(20, 20),
140
- size: new google.maps.Size(20, 20)
141
- },
142
- offset: '90%',
143
- repeat: '20%'
144
- },
145
- { icon: { path: google.maps.SymbolPath.FORWARD_OPEN_ARROW }, offset: '0%' },
146
- { icon: { path: google.maps.SymbolPath.FORWARD_OPEN_ARROW }, offset: '100%' }];
147
- break;
148
- default:
149
- newOptions.icons = null;
150
- break;
151
- }
152
- polyline.setOptions(newOptions);
153
- });
154
- };
155
- GooglePolylines.prototype.fitBoundsPolylines = function (polylines) {
156
- var self = this;
157
- self.map.fitBounds(self.getPolylinesBounds(polylines));
158
- };
159
- GooglePolylines.prototype.isPolylineOnMap = function (polyline) {
160
- return !!polyline.map;
161
- };
162
- GooglePolylines.prototype.addPolylinePath = function (polylines, position) {
163
- var _this = this;
164
- polylines.forEach(function (polyline) {
165
- var path = polyline.getPath();
166
- path.push(new _this.google.maps.LatLng(position[0], position[1]));
167
- polyline.setPath(path);
168
- });
169
- };
170
- GooglePolylines.prototype.getPolylinePath = function (polyline) {
171
- return polyline.getPath().getArray().map(function (x) { return [x.lat(), x.lng()]; });
172
- };
173
- GooglePolylines.prototype.removePolylineHighlight = function () {
174
- this.google.maps.event.clearListeners(document, 'keyup');
175
- this.google.maps.event.clearListeners(document, 'keydown');
176
- if (this.selectedPath) {
177
- this.selectedPath.setMap(null);
178
- this.selectedPath = null;
179
- }
180
- if (this.navigateInfoWindow) {
181
- this.navigateInfoWindow.close();
182
- }
183
- };
184
- GooglePolylines.prototype.addPolylineEvent = function (polylines, eventType, eventFunction) {
185
- var _this = this;
186
- polylines.forEach(function (polyline) {
187
- switch (eventType) {
188
- case event_type_1.PolylineEventType.SetAt:
189
- _this.addPolylineEventMove(polyline, eventFunction);
190
- break;
191
- case event_type_1.PolylineEventType.RightClick:
192
- _this.addPolylineEventRightClick(polyline, eventFunction);
193
- break;
194
- case event_type_1.PolylineEventType.InsertAt:
195
- _this.addPolylineEventInsertAt(polyline, eventFunction);
196
- break;
197
- case event_type_1.PolylineEventType.RemoveAt:
198
- _this.addPolylineEventRemoveAt(polyline, eventFunction);
199
- break;
200
- case event_type_1.PolylineEventType.DragPolyline:
201
- _this.addPolylineEventDragPolyline(polyline, eventFunction);
202
- break;
203
- case event_type_1.PolylineEventType.MouseOver:
204
- _this.addPolylineEventMouseOver(polyline, eventFunction);
205
- break;
206
- case event_type_1.PolylineEventType.MouseOut:
207
- _this.addPolylineEventMouseOut(polyline, eventFunction);
208
- break;
209
- default:
210
- break;
211
- }
212
- });
213
- };
214
- GooglePolylines.prototype.removePolylineEvent = function (polylines, event) {
215
- var _this = this;
216
- polylines.forEach(function (polyline) { return _this.google.maps.event.clearListeners(polyline, 'click'); });
217
- polylines.forEach(function (polyline) {
218
- switch (event) {
219
- case event_type_1.PolylineEventType.SetAt:
220
- _this.google.maps.event.clearListeners(polyline.getPath(), 'set_at');
221
- break;
222
- case event_type_1.PolylineEventType.RightClick:
223
- _this.google.maps.event.clearListeners(polyline, 'rightclick');
224
- break;
225
- case event_type_1.PolylineEventType.InsertAt:
226
- _this.google.maps.event.clearListeners(polyline.getPath(), 'insert_at');
227
- break;
228
- case event_type_1.PolylineEventType.RemoveAt:
229
- _this.google.maps.event.clearListeners(polyline.getPath(), 'remove_at');
230
- break;
231
- case event_type_1.PolylineEventType.DragPolyline:
232
- _this.google.maps.event.clearListeners(polyline, 'dragstart');
233
- _this.google.maps.event.clearListeners(polyline, 'dragend');
234
- break;
235
- case event_type_1.PolylineEventType.MouseOver:
236
- _this.google.maps.event.clearListeners(polyline, 'mouseover');
237
- break;
238
- case event_type_1.PolylineEventType.MouseOut:
239
- _this.google.maps.event.clearListeners(polyline, 'mouseout');
240
- break;
241
- default:
242
- break;
243
- }
244
- });
245
- };
246
- GooglePolylines.prototype.setIndexPolylineHighlight = function (polyline, index) {
247
- this.directionForward = false;
248
- polyline.initialIdx = index;
249
- polyline.finalIdx = index + 1;
250
- this.moveSelectedPath(polyline, this.navigationOptions);
251
- this.selectedPolyline = polyline;
252
- if (this.navigationOptions.navegateOnKeyPress) {
253
- this.google.maps.event.clearListeners(document, 'keydown');
254
- this.google.maps.event.addDomListener(document, 'keydown', this.onKeyUp.bind(this));
255
- }
256
- else {
257
- this.google.maps.event.clearListeners(document, 'keyup');
258
- this.google.maps.event.addDomListener(document, 'keyup', this.onKeyUp.bind(this));
259
- }
260
- };
261
- GooglePolylines.prototype.getObjectPolyline = function (polyline) {
262
- return polyline.object;
263
- };
264
- GooglePolylines.prototype.getObjectPolylineHighlight = function () {
265
- if (this.selectedPath) {
266
- return this.selectedPath.object;
267
- }
268
- return null;
269
- };
270
- GooglePolylines.prototype.addPolylineHighlightEvent = function (eventType, eventFunction) {
271
- if (this.selectedPath) {
272
- this.addPolylineEvent([this.selectedPath], eventType, eventFunction);
273
- }
274
- };
275
- GooglePolylines.prototype.getPolylineHighlightIndex = function () {
276
- if (this.selectedPath) {
277
- return [this.selectedPath.initialIdx, this.selectedPath.finalIdx];
278
- }
279
- return null;
280
- };
281
- /* Private methods */
282
- GooglePolylines.prototype.addNavigation = function (polyline) {
283
- var self = this;
284
- this.google.maps.event.clearListeners(polyline, 'click');
285
- this.google.maps.event.addListener(polyline, 'click', self.onClickPolyline.bind(self, polyline));
286
- };
287
- GooglePolylines.prototype.onClickPolyline = function (polyline, event) {
288
- var index = this.checkIdx(polyline, event.latLng);
289
- polyline.initialIdx = index;
290
- polyline.finalIdx = index + 1;
291
- this.moveSelectedPath(polyline, this.navigationOptions);
292
- this.selectedPolyline = polyline;
293
- if (this.navigationOptions.navegateOnKeyPress) {
294
- this.google.maps.event.clearListeners(document, 'keydown');
295
- this.google.maps.event.addDomListener(document, 'keydown', this.onKeyUp.bind(this));
296
- }
297
- else {
298
- this.google.maps.event.clearListeners(document, 'keyup');
299
- this.google.maps.event.addDomListener(document, 'keyup', this.onKeyUp.bind(this));
300
- }
301
- if (polyline.navigationHandlerClick) {
302
- var param = new event_return_1.default([event.latLng.lat(), event.latLng.lng()]);
303
- polyline.navigationHandlerClick(param, polyline.object);
304
- }
305
- };
306
- GooglePolylines.prototype.onKeyUp = function (event) {
307
- var self = this;
308
- if (self.selectedPath) {
309
- switch (event.which ? event.which : event.keyCode) {
310
- case 38:
311
- case 39:
312
- // up arrow or right arrow
313
- self.moveForwards(event.shiftKey);
314
- break;
315
- case 37:
316
- case 40:
317
- // left arrow or down arrow
318
- self.moveBackwards(event.shiftKey);
319
- break;
320
- }
321
- }
322
- };
323
- GooglePolylines.prototype.moveForwards = function (multiSelection) {
324
- var self = this;
325
- var polyline = self.selectedPolyline;
326
- if ((!self.navigateByPoint || self.directionForward) &&
327
- polyline.finalIdx < polyline.getPath().getArray().length - 1) {
328
- self.navigateForward(multiSelection, polyline);
329
- }
330
- self.directionForward = true;
331
- self.moveSelectedPath(polyline, null);
332
- };
333
- GooglePolylines.prototype.navigateForward = function (multiSelection, polyline) {
334
- var self = this;
335
- if (!multiSelection) {
336
- polyline.finalIdx++;
337
- polyline.initialIdx = self.multiSelection ? polyline.finalIdx - 1 : polyline.initialIdx + 1;
338
- self.multiSelection = false;
339
- }
340
- else {
341
- self.multiSelection = true;
342
- if (self.multiSelectionForward) {
343
- polyline.finalIdx++;
344
- }
345
- self.multiSelectionForward = true;
346
- }
347
- };
348
- GooglePolylines.prototype.moveBackwards = function (multiSelection) {
349
- var self = this;
350
- var polyline = self.selectedPolyline;
351
- if ((!self.navigateByPoint || !self.directionForward) && polyline.initialIdx > 0) {
352
- self.navigateBackward(multiSelection, polyline);
353
- }
354
- self.directionForward = false;
355
- self.moveSelectedPath(polyline, null);
356
- };
357
- GooglePolylines.prototype.navigateBackward = function (multiSelection, polyline) {
358
- var self = this;
359
- if (!multiSelection) {
360
- polyline.initialIdx--;
361
- polyline.finalIdx = !self.multiSelection ? polyline.finalIdx - 1 : polyline.initialIdx + 1;
362
- self.multiSelection = false;
363
- }
364
- else {
365
- self.multiSelection = true;
366
- if (!self.multiSelectionForward) {
367
- polyline.initialIdx--;
368
- }
369
- self.multiSelectionForward = false;
370
- }
371
- };
372
- GooglePolylines.prototype.moveSelectedPath = function (polyline, options) {
373
- var pathSelected = polyline.getPath().getArray().slice(polyline.initialIdx, polyline.finalIdx + 1);
374
- if (this.selectedPath) {
375
- this.selectedPath.setPath(pathSelected);
376
- this.selectedPath.object = polyline.object;
377
- this.updateSelectedPathListeners();
378
- }
379
- else {
380
- var newOptions = {
381
- editable: options.editable,
382
- keyboardShortcuts: false,
383
- map: this.map,
384
- object: polyline.object,
385
- path: pathSelected,
386
- strokeColor: options && options.color || '#FF0000',
387
- strokeOpacity: options && options.opacity || 1,
388
- strokeWeight: options && options.weight || 10,
389
- zIndex: 9999
390
- };
391
- if (options.style !== null) {
392
- switch (options.style) {
393
- case polyline_type_1.PolylineType.Dotted:
394
- console.warn('PolylineType.Dotted is deprecated, instead use PolylineType.Dashed.');
395
- case polyline_type_1.PolylineType.Dashed:
396
- newOptions.strokeOpacity = 0;
397
- newOptions.icons = [{
398
- icon: {
399
- path: 'M 0,-1 0,1',
400
- scale: 2,
401
- strokeOpacity: 1
402
- },
403
- offset: '0',
404
- repeat: '10px'
405
- }];
406
- break;
407
- case polyline_type_1.PolylineType.Arrow:
408
- newOptions.icons = [{
409
- icon: {
410
- anchor: new google.maps.Point(0, 2),
411
- fillColor: '#000',
412
- fillOpacity: 0.7,
413
- path: google.maps.SymbolPath.FORWARD_OPEN_ARROW,
414
- scale: 4,
415
- strokeColor: '#000',
416
- strokeWeight: 5,
417
- },
418
- offset: '100%'
419
- }];
420
- break;
421
- default:
422
- break;
423
- }
424
- }
425
- this.selectedPath = new this.google.maps.Polyline(newOptions);
426
- }
427
- this.selectedPath.initialIdx = polyline.initialIdx;
428
- this.selectedPath.finalIdx = polyline.finalIdx;
429
- this.drawPopupNavigation(polyline);
430
- };
431
- GooglePolylines.prototype.addPolylineEventMove = function (polyline, eventFunction) {
432
- polyline.moveListener = function (newEvent, lastEvent) {
433
- if (polyline.dragging)
434
- return;
435
- var path = polyline.getPath().getAt(newEvent);
436
- var newPosition = new event_return_1.default([path.lat(), path.lng()]);
437
- var lastPosition = new event_return_1.default([lastEvent.lat(), lastEvent.lng()]);
438
- eventFunction(newPosition, lastPosition, polyline.object, newEvent, polyline.getPath().getArray().map(function (x) { return new event_return_1.default([x.lat(), x.lng()]); }));
439
- };
440
- this.google.maps.event.addListener(polyline.getPath(), 'set_at', polyline.moveListener);
441
- };
442
- GooglePolylines.prototype.addPolylineEventInsertAt = function (polyline, eventFunction) {
443
- polyline.insertAtListener = function (event) {
444
- var path = polyline.getPath();
445
- var newPath = path.getAt(event);
446
- var newPoint = new event_return_1.default([newPath.lat(), newPath.lng()]);
447
- var previousPath = path.getAt(event - 1);
448
- var previousPoint = previousPath ? new event_return_1.default([previousPath.lat(), previousPath.lng()]) : null;
449
- eventFunction(newPoint, previousPoint, polyline.object, event, polyline.getPath().getArray().map(function (x) { return new event_return_1.default([x.lat(), x.lng()]); }));
450
- };
451
- this.google.maps.event.addListener(polyline.getPath(), 'insert_at', polyline.insertAtListener);
452
- };
453
- GooglePolylines.prototype.addPolylineEventRemoveAt = function (polyline, eventFunction) {
454
- polyline.removeAtListener = function (event) {
455
- var param = new event_return_1.default([polyline.getPath().getAt(event).lat(), polyline.getPath().getAt(event).lng()]);
456
- eventFunction(param, polyline.object, polyline.getPath().getArray().map(function (x) { return new event_return_1.default([x.lat(), x.lng()]); }));
457
- };
458
- this.google.maps.event.addListener(polyline.getPath(), 'remove_at', polyline.removeAtListener);
459
- };
460
- GooglePolylines.prototype.addPolylineEventRightClick = function (polyline, eventFunction) {
461
- polyline.rightClickPolylineListener = function (event) {
462
- polyline.dragging = false;
463
- var param = new event_return_1.default([event.latLng.lat(), event.latLng.lng()]);
464
- eventFunction(param, polyline.object);
465
- };
466
- this.google.maps.event.addListener(polyline, 'rightclick', polyline.rightClickPolylineListener);
467
- };
468
- GooglePolylines.prototype.addPolylineEventMouseOver = function (polyline, eventFunction) {
469
- polyline.overPolylineListener = function (event) {
470
- polyline.dragging = false;
471
- var param = new event_return_1.default([event.latLng.lat(), event.latLng.lng()]);
472
- eventFunction(param, polyline.object);
473
- };
474
- this.google.maps.event.addListener(polyline, 'mouseover', polyline.overPolylineListener);
475
- };
476
- GooglePolylines.prototype.addPolylineEventMouseOut = function (polyline, eventFunction) {
477
- polyline.outPolylineListener = function (event) {
478
- polyline.dragging = false;
479
- var param = new event_return_1.default([event.latLng.lat(), event.latLng.lng()]);
480
- eventFunction(param, polyline.object);
481
- };
482
- this.google.maps.event.addListener(polyline, 'mouseout', polyline.outPolylineListener);
483
- };
484
- GooglePolylines.prototype.addPolylineEventDragPolyline = function (polyline, eventFunction) {
485
- polyline.dragPolylineListener = function () {
486
- polyline.dragging = false;
487
- var param = polyline.getPath().getArray().map(function (x) { return new event_return_1.default([x.lat(), x.lng()]); });
488
- eventFunction(param, polyline.object);
489
- };
490
- this.google.maps.event.addListener(polyline, 'dragend', polyline.dragPolylineListener);
491
- this.google.maps.event.addListener(polyline, 'dragstart', function () { return polyline.dragging = true; });
492
- };
493
- GooglePolylines.prototype.updateSelectedPathListeners = function () {
494
- if (this.selectedPath.moveListener) {
495
- this.google.maps.event.clearListeners(this.selectedPath.getPath(), 'set_at');
496
- this.google.maps.event.addListener(this.selectedPath.getPath(), 'set_at', this.selectedPath.moveListener);
497
- }
498
- if (this.selectedPath.insertAtListener) {
499
- this.google.maps.event.clearListeners(this.selectedPath.getPath(), 'insert_at');
500
- this.google.maps.event.addListener(this.selectedPath.getPath(), 'insert_at', this.selectedPath.insertAtListener);
501
- }
502
- if (this.selectedPath.removeAtListener) {
503
- this.google.maps.event.clearListeners(this.selectedPath.getPath(), 'remove_at');
504
- this.google.maps.event.addListener(this.selectedPath.getPath(), 'remove_at', this.selectedPath.removeAtListener);
505
- }
506
- };
507
- GooglePolylines.prototype.drawPopupNavigation = function (polyline) {
508
- var self = this;
509
- var idx = self.directionForward ? polyline.finalIdx : polyline.initialIdx;
510
- if (!self.navigateByPoint) {
511
- idx = polyline.finalIdx > polyline.initialIdx ? polyline.finalIdx : polyline.initialIdx;
512
- }
513
- var infowindow = polyline.infowindows ? polyline.infowindows[idx] : null;
514
- if (infowindow) {
515
- var point = polyline.getPath().getArray()[idx];
516
- if (self.navigateInfoWindow) {
517
- this.googlePopups.alterPopup(self.navigateInfoWindow, {
518
- content: infowindow,
519
- latlng: [point.lat(), point.lng()]
520
- });
521
- }
522
- else {
523
- self.navigateInfoWindow = this.googlePopups.drawPopup({
524
- content: infowindow,
525
- latlng: [point.lat(), point.lng()]
526
- });
527
- }
528
- }
529
- };
530
- GooglePolylines.prototype.checkIdx = function (polyline, point) {
531
- var self = this;
532
- var path = polyline.getPath();
533
- var distance = 0;
534
- var minDistance = Number.MAX_VALUE;
535
- var returnValue = -1;
536
- for (var i = 0; i < path.length - 1; i++) {
537
- distance = self.distanceToLine(path.getAt(i), path.getAt(i + 1), point);
538
- if (distance < minDistance) {
539
- minDistance = distance;
540
- returnValue = i;
541
- }
542
- }
543
- return returnValue;
544
- };
545
- GooglePolylines.prototype.distanceToLine = function (pt1, pt2, pt) {
546
- var self = this;
547
- var deltaX = pt2.lng() - pt1.lng();
548
- var deltaY = pt2.lat() - pt1.lat();
549
- var incIntersect = (pt.lng() - pt1.lng()) * deltaX;
550
- var deltaSum = (deltaX * deltaX) + (deltaY * deltaY);
551
- incIntersect += (pt.lat() - pt1.lat()) * deltaY;
552
- if (deltaSum > 0) {
553
- incIntersect /= deltaSum;
554
- }
555
- else {
556
- incIntersect = -1;
557
- }
558
- // The intersection occurs outside the line segment, 'before' pt1.
559
- if (incIntersect < 0) {
560
- return self.kmTo(pt, pt1);
561
- }
562
- else if (incIntersect > 1) {
563
- return self.kmTo(pt, pt2);
564
- }
565
- // Intersection point calculation.
566
- var intersect = new this.google.maps
567
- .LatLng(pt1.lat() + incIntersect * deltaY, pt1.lng() + incIntersect * deltaX);
568
- return self.kmTo(pt, intersect);
569
- };
570
- GooglePolylines.prototype.kmTo = function (pt1, pt2) {
571
- var e = Math;
572
- var ra = e.PI / 180;
573
- var b = pt1.lat() * ra;
574
- var c = pt2.lat() * ra;
575
- var d = b - c;
576
- var g = pt1.lng() * ra - pt2.lng() * ra;
577
- var f = 2 * e.asin(e.sqrt(e.pow(e.sin(d / 2), 2) + e.cos(b) * e.cos(c) * e.pow(e.sin(g / 2), 2)));
578
- return f * 6378.137 * 1000;
579
- };
580
- GooglePolylines.prototype.getPolylinesBounds = function (polylines) {
581
- var bounds = new this.google.maps.LatLngBounds();
582
- polylines.forEach(function (polyline) {
583
- var paths = polyline.getPath().getArray();
584
- paths.forEach(function (path) { return bounds.extend(path); });
585
- });
586
- return bounds;
587
- };
588
- GooglePolylines.prototype.getPolylineBounds = function (polyline) {
589
- var bounds = new this.google.maps.LatLngBounds();
590
- var paths = polyline.getPath().getArray();
591
- paths.forEach(function (path) { return bounds.extend(path); });
592
- return bounds;
593
- };
594
- return GooglePolylines;
595
- }());
596
- exports.default = GooglePolylines;
1
+ import { PolylineEventType } from "../../dto/event-type";
2
+ import { PolylineType } from "../../dto/polyline-type";
3
+ import EventReturn from "../../features/events/event-return";
4
+ var GooglePolylines = /** @class */ (function () {
5
+ function GooglePolylines(map, google, googlePopups) {
6
+ this.map = null;
7
+ this.google = null;
8
+ this.googlePopups = null;
9
+ this.selectedPolyline = null;
10
+ this.selectedPath = null;
11
+ this.navigateInfoWindow = null;
12
+ this.directionForward = false;
13
+ this.multiSelectionForward = false;
14
+ this.multiSelection = false;
15
+ this.navigateByPoint = false;
16
+ this.navigationOptions = {};
17
+ this.map = map;
18
+ this.google = google;
19
+ this.googlePopups = googlePopups;
20
+ }
21
+ GooglePolylines.prototype.drawPolyline = function (options, eventClick) {
22
+ var self = this;
23
+ var newOptions = {
24
+ draggable: options.draggable,
25
+ editable: options.editable,
26
+ icons: null,
27
+ infowindows: options.infowindows,
28
+ object: options.object,
29
+ path: null,
30
+ strokeColor: options.color,
31
+ strokeOpacity: options.opacity || 1,
32
+ strokeWeight: options.weight,
33
+ suppressUndo: true,
34
+ zIndex: options.zIndex,
35
+ };
36
+ if (options.style !== null) {
37
+ switch (options.style) {
38
+ case PolylineType.Dotted:
39
+ console.warn("PolylineType.Dotted is deprecated, instead use PolylineType.Dashed.");
40
+ break;
41
+ case PolylineType.Dashed:
42
+ newOptions.strokeOpacity = 0;
43
+ newOptions.icons = [
44
+ {
45
+ icon: {
46
+ path: "M 0,-1 0,1",
47
+ scale: 2,
48
+ strokeOpacity: 1,
49
+ strokeWeight: options.weight,
50
+ },
51
+ offset: "0",
52
+ repeat: "10px",
53
+ },
54
+ ];
55
+ break;
56
+ case PolylineType.Arrow:
57
+ newOptions.icons = [
58
+ {
59
+ icon: {
60
+ path: google.maps.SymbolPath.FORWARD_OPEN_ARROW,
61
+ scaledSize: new google.maps.Size(20, 20),
62
+ size: new google.maps.Size(20, 20),
63
+ },
64
+ offset: "100%",
65
+ repeat: "100px",
66
+ },
67
+ {
68
+ icon: {
69
+ path: google.maps.SymbolPath.FORWARD_OPEN_ARROW,
70
+ },
71
+ offset: "0%",
72
+ },
73
+ {
74
+ icon: {
75
+ path: google.maps.SymbolPath.FORWARD_OPEN_ARROW,
76
+ },
77
+ offset: "100%",
78
+ },
79
+ ];
80
+ break;
81
+ default:
82
+ break;
83
+ }
84
+ }
85
+ newOptions.path = options.path
86
+ ? options.path.map(function (x) {
87
+ return {
88
+ lat: x[0],
89
+ lng: x[1],
90
+ };
91
+ })
92
+ : [];
93
+ var polyline = new this.google.maps.Polyline(newOptions);
94
+ if (eventClick) {
95
+ this.google.maps.event.addListener(polyline, "click", function (event) {
96
+ var param = new EventReturn([
97
+ event.latLng.lat(),
98
+ event.latLng.lng(),
99
+ ]);
100
+ eventClick(param, polyline.object);
101
+ });
102
+ }
103
+ if (options.addToMap) {
104
+ polyline.setMap(self.map);
105
+ }
106
+ if (options.fitBounds) {
107
+ self.map.fitBounds(self.getPolylineBounds(polyline));
108
+ }
109
+ return polyline;
110
+ };
111
+ GooglePolylines.prototype.drawPolylineWithNavigation = function (options, eventClick) {
112
+ var polyline = this.drawPolyline(options, null);
113
+ polyline.navigationHandlerClick = eventClick;
114
+ this.navigationOptions = options.navigateOptions;
115
+ this.navigateByPoint = this.navigationOptions
116
+ ? this.navigationOptions.navigateByPoint
117
+ : true;
118
+ this.addNavigation(polyline);
119
+ return polyline;
120
+ };
121
+ GooglePolylines.prototype.togglePolylines = function (polylines, show) {
122
+ var _this = this;
123
+ polylines.forEach(function (polyline) {
124
+ var self = _this;
125
+ polyline.setMap(show ? self.map : null);
126
+ });
127
+ };
128
+ GooglePolylines.prototype.alterPolylineOptions = function (polylines, options) {
129
+ polylines.forEach(function (polyline) {
130
+ var newOptions = {
131
+ draggable: options.draggable
132
+ ? options.draggable
133
+ : polyline.draggable,
134
+ editable: options.editable
135
+ ? options.editable
136
+ : polyline.editable,
137
+ infowindows: options.infowindows
138
+ ? options.infowindows
139
+ : polyline.infowindows,
140
+ object: options.object ? options.object : polyline.object,
141
+ strokeColor: options.color
142
+ ? options.color
143
+ : polyline.strokeColor,
144
+ strokeOpacity: options.opacity
145
+ ? options.opacity
146
+ : polyline.strokeOpacity,
147
+ strokeWeight: options.weight
148
+ ? options.weight
149
+ : polyline.strokeWeight,
150
+ zIndex: options.zIndex ? options.zIndex : polyline.zIndex,
151
+ };
152
+ if (options.path) {
153
+ polyline.setPath(options.path.map(function (x) { return new google.maps.LatLng(x[0], x[1]); }));
154
+ }
155
+ switch (options.style) {
156
+ case PolylineType.Dotted:
157
+ console.warn("PolylineType.Dotted is deprecated, instead use PolylineType.Dashed.");
158
+ break;
159
+ case PolylineType.Dashed:
160
+ newOptions.strokeOpacity = 0;
161
+ newOptions.icons = [
162
+ {
163
+ icon: {
164
+ path: "M 0,-1 0,1",
165
+ scale: 2,
166
+ strokeOpacity: 1,
167
+ },
168
+ offset: "0",
169
+ repeat: "10px",
170
+ },
171
+ ];
172
+ break;
173
+ case PolylineType.Arrow:
174
+ newOptions.icons = [
175
+ {
176
+ icon: {
177
+ path: google.maps.SymbolPath.FORWARD_OPEN_ARROW,
178
+ scaledSize: new google.maps.Size(20, 20),
179
+ size: new google.maps.Size(20, 20),
180
+ },
181
+ offset: "90%",
182
+ repeat: "20%",
183
+ },
184
+ {
185
+ icon: {
186
+ path: google.maps.SymbolPath.FORWARD_OPEN_ARROW,
187
+ },
188
+ offset: "0%",
189
+ },
190
+ {
191
+ icon: {
192
+ path: google.maps.SymbolPath.FORWARD_OPEN_ARROW,
193
+ },
194
+ offset: "100%",
195
+ },
196
+ ];
197
+ break;
198
+ default:
199
+ newOptions.icons = null;
200
+ break;
201
+ }
202
+ polyline.setOptions(newOptions);
203
+ });
204
+ };
205
+ GooglePolylines.prototype.fitBoundsPolylines = function (polylines) {
206
+ var self = this;
207
+ self.map.fitBounds(self.getPolylinesBounds(polylines));
208
+ };
209
+ GooglePolylines.prototype.isPolylineOnMap = function (polyline) {
210
+ return !!polyline.map;
211
+ };
212
+ GooglePolylines.prototype.addPolylinePath = function (polylines, position) {
213
+ var _this = this;
214
+ polylines.forEach(function (polyline) {
215
+ var path = polyline.getPath();
216
+ path.push(new _this.google.maps.LatLng(position[0], position[1]));
217
+ polyline.setPath(path);
218
+ });
219
+ };
220
+ GooglePolylines.prototype.getPolylinePath = function (polyline) {
221
+ return polyline
222
+ .getPath()
223
+ .getArray()
224
+ .map(function (x) { return [x.lat(), x.lng()]; });
225
+ };
226
+ GooglePolylines.prototype.removePolylineHighlight = function () {
227
+ this.google.maps.event.clearListeners(document, "keyup");
228
+ this.google.maps.event.clearListeners(document, "keydown");
229
+ if (this.selectedPath) {
230
+ this.selectedPath.setMap(null);
231
+ this.selectedPath = null;
232
+ }
233
+ if (this.navigateInfoWindow) {
234
+ this.navigateInfoWindow.close();
235
+ }
236
+ };
237
+ GooglePolylines.prototype.addPolylineEvent = function (polylines, eventType, eventFunction) {
238
+ var _this = this;
239
+ polylines.forEach(function (polyline) {
240
+ switch (eventType) {
241
+ case PolylineEventType.SetAt:
242
+ _this.addPolylineEventMove(polyline, eventFunction);
243
+ break;
244
+ case PolylineEventType.RightClick:
245
+ _this.addPolylineEventRightClick(polyline, eventFunction);
246
+ break;
247
+ case PolylineEventType.InsertAt:
248
+ _this.addPolylineEventInsertAt(polyline, eventFunction);
249
+ break;
250
+ case PolylineEventType.RemoveAt:
251
+ _this.addPolylineEventRemoveAt(polyline, eventFunction);
252
+ break;
253
+ case PolylineEventType.DragPolyline:
254
+ _this.addPolylineEventDragPolyline(polyline, eventFunction);
255
+ break;
256
+ case PolylineEventType.MouseOver:
257
+ _this.addPolylineEventMouseOver(polyline, eventFunction);
258
+ break;
259
+ case PolylineEventType.MouseOut:
260
+ _this.addPolylineEventMouseOut(polyline, eventFunction);
261
+ break;
262
+ default:
263
+ break;
264
+ }
265
+ });
266
+ };
267
+ GooglePolylines.prototype.removePolylineEvent = function (polylines, event) {
268
+ var _this = this;
269
+ polylines.forEach(function (polyline) {
270
+ return _this.google.maps.event.clearListeners(polyline, "click");
271
+ });
272
+ polylines.forEach(function (polyline) {
273
+ switch (event) {
274
+ case PolylineEventType.SetAt:
275
+ _this.google.maps.event.clearListeners(polyline.getPath(), "set_at");
276
+ break;
277
+ case PolylineEventType.RightClick:
278
+ _this.google.maps.event.clearListeners(polyline, "rightclick");
279
+ break;
280
+ case PolylineEventType.InsertAt:
281
+ _this.google.maps.event.clearListeners(polyline.getPath(), "insert_at");
282
+ break;
283
+ case PolylineEventType.RemoveAt:
284
+ _this.google.maps.event.clearListeners(polyline.getPath(), "remove_at");
285
+ break;
286
+ case PolylineEventType.DragPolyline:
287
+ _this.google.maps.event.clearListeners(polyline, "dragstart");
288
+ _this.google.maps.event.clearListeners(polyline, "dragend");
289
+ break;
290
+ case PolylineEventType.MouseOver:
291
+ _this.google.maps.event.clearListeners(polyline, "mouseover");
292
+ break;
293
+ case PolylineEventType.MouseOut:
294
+ _this.google.maps.event.clearListeners(polyline, "mouseout");
295
+ break;
296
+ default:
297
+ break;
298
+ }
299
+ });
300
+ };
301
+ GooglePolylines.prototype.setIndexPolylineHighlight = function (polyline, index) {
302
+ this.directionForward = false;
303
+ polyline.initialIdx = index;
304
+ polyline.finalIdx = index + 1;
305
+ this.moveSelectedPath(polyline, this.navigationOptions);
306
+ this.selectedPolyline = polyline;
307
+ if (this.navigationOptions.navegateOnKeyPress) {
308
+ this.google.maps.event.clearListeners(document, "keydown");
309
+ this.google.maps.event.addDomListener(document, "keydown", this.onKeyUp.bind(this));
310
+ }
311
+ else {
312
+ this.google.maps.event.clearListeners(document, "keyup");
313
+ this.google.maps.event.addDomListener(document, "keyup", this.onKeyUp.bind(this));
314
+ }
315
+ };
316
+ GooglePolylines.prototype.getObjectPolyline = function (polyline) {
317
+ return polyline.object;
318
+ };
319
+ GooglePolylines.prototype.getObjectPolylineHighlight = function () {
320
+ if (this.selectedPath) {
321
+ return this.selectedPath.object;
322
+ }
323
+ return null;
324
+ };
325
+ GooglePolylines.prototype.addPolylineHighlightEvent = function (eventType, eventFunction) {
326
+ if (this.selectedPath) {
327
+ this.addPolylineEvent([this.selectedPath], eventType, eventFunction);
328
+ }
329
+ };
330
+ GooglePolylines.prototype.getPolylineHighlightIndex = function () {
331
+ if (this.selectedPath) {
332
+ return [this.selectedPath.initialIdx, this.selectedPath.finalIdx];
333
+ }
334
+ return null;
335
+ };
336
+ /* Private methods */
337
+ GooglePolylines.prototype.addNavigation = function (polyline) {
338
+ var self = this;
339
+ this.google.maps.event.clearListeners(polyline, "click");
340
+ this.google.maps.event.addListener(polyline, "click", self.onClickPolyline.bind(self, polyline));
341
+ };
342
+ GooglePolylines.prototype.onClickPolyline = function (polyline, event) {
343
+ var index = this.checkIdx(polyline, event.latLng);
344
+ polyline.initialIdx = index;
345
+ polyline.finalIdx = index + 1;
346
+ this.moveSelectedPath(polyline, this.navigationOptions);
347
+ this.selectedPolyline = polyline;
348
+ if (this.navigationOptions.navegateOnKeyPress) {
349
+ this.google.maps.event.clearListeners(document, "keydown");
350
+ this.google.maps.event.addDomListener(document, "keydown", this.onKeyUp.bind(this));
351
+ }
352
+ else {
353
+ this.google.maps.event.clearListeners(document, "keyup");
354
+ this.google.maps.event.addDomListener(document, "keyup", this.onKeyUp.bind(this));
355
+ }
356
+ if (polyline.navigationHandlerClick) {
357
+ var param = new EventReturn([
358
+ event.latLng.lat(),
359
+ event.latLng.lng(),
360
+ ]);
361
+ polyline.navigationHandlerClick(param, polyline.object);
362
+ }
363
+ };
364
+ GooglePolylines.prototype.onKeyUp = function (event) {
365
+ var self = this;
366
+ if (self.selectedPath) {
367
+ switch (event.which ? event.which : event.keyCode) {
368
+ case 38:
369
+ case 39:
370
+ // up arrow or right arrow
371
+ self.moveForwards(event.shiftKey);
372
+ break;
373
+ case 37:
374
+ case 40:
375
+ // left arrow or down arrow
376
+ self.moveBackwards(event.shiftKey);
377
+ break;
378
+ }
379
+ }
380
+ };
381
+ GooglePolylines.prototype.moveForwards = function (multiSelection) {
382
+ var self = this;
383
+ var polyline = self.selectedPolyline;
384
+ if ((!self.navigateByPoint || self.directionForward) &&
385
+ polyline.finalIdx < polyline.getPath().getArray().length - 1) {
386
+ self.navigateForward(multiSelection, polyline);
387
+ }
388
+ self.directionForward = true;
389
+ self.moveSelectedPath(polyline, null);
390
+ };
391
+ GooglePolylines.prototype.navigateForward = function (multiSelection, polyline) {
392
+ var self = this;
393
+ if (!multiSelection) {
394
+ polyline.finalIdx++;
395
+ polyline.initialIdx = self.multiSelection
396
+ ? polyline.finalIdx - 1
397
+ : polyline.initialIdx + 1;
398
+ self.multiSelection = false;
399
+ }
400
+ else {
401
+ self.multiSelection = true;
402
+ if (self.multiSelectionForward) {
403
+ polyline.finalIdx++;
404
+ }
405
+ self.multiSelectionForward = true;
406
+ }
407
+ };
408
+ GooglePolylines.prototype.moveBackwards = function (multiSelection) {
409
+ var self = this;
410
+ var polyline = self.selectedPolyline;
411
+ if ((!self.navigateByPoint || !self.directionForward) &&
412
+ polyline.initialIdx > 0) {
413
+ self.navigateBackward(multiSelection, polyline);
414
+ }
415
+ self.directionForward = false;
416
+ self.moveSelectedPath(polyline, null);
417
+ };
418
+ GooglePolylines.prototype.navigateBackward = function (multiSelection, polyline) {
419
+ var self = this;
420
+ if (!multiSelection) {
421
+ polyline.initialIdx--;
422
+ polyline.finalIdx = !self.multiSelection
423
+ ? polyline.finalIdx - 1
424
+ : polyline.initialIdx + 1;
425
+ self.multiSelection = false;
426
+ }
427
+ else {
428
+ self.multiSelection = true;
429
+ if (!self.multiSelectionForward) {
430
+ polyline.initialIdx--;
431
+ }
432
+ self.multiSelectionForward = false;
433
+ }
434
+ };
435
+ GooglePolylines.prototype.moveSelectedPath = function (polyline, options) {
436
+ var pathSelected = polyline
437
+ .getPath()
438
+ .getArray()
439
+ .slice(polyline.initialIdx, polyline.finalIdx + 1);
440
+ if (this.selectedPath) {
441
+ this.selectedPath.setPath(pathSelected);
442
+ this.selectedPath.object = polyline.object;
443
+ this.updateSelectedPathListeners();
444
+ }
445
+ else {
446
+ var newOptions = {
447
+ editable: options === null || options === void 0 ? void 0 : options.editable,
448
+ keyboardShortcuts: false,
449
+ map: this.map,
450
+ object: polyline.object,
451
+ path: pathSelected,
452
+ strokeColor: (options && options.color) || "#FF0000",
453
+ strokeOpacity: (options && options.opacity) || 1,
454
+ strokeWeight: (options && options.weight) || 10,
455
+ zIndex: 9999,
456
+ };
457
+ if ((options === null || options === void 0 ? void 0 : options.style) !== null) {
458
+ switch (options === null || options === void 0 ? void 0 : options.style) {
459
+ case PolylineType.Dotted:
460
+ console.warn("PolylineType.Dotted is deprecated, instead use PolylineType.Dashed.");
461
+ break;
462
+ case PolylineType.Dashed:
463
+ newOptions.strokeOpacity = 0;
464
+ newOptions.icons = [
465
+ {
466
+ icon: {
467
+ path: "M 0,-1 0,1",
468
+ scale: 2,
469
+ strokeOpacity: 1,
470
+ },
471
+ offset: "0",
472
+ repeat: "10px",
473
+ },
474
+ ];
475
+ break;
476
+ case PolylineType.Arrow:
477
+ newOptions.icons = [
478
+ {
479
+ icon: {
480
+ anchor: new google.maps.Point(0, 2),
481
+ fillColor: "#000",
482
+ fillOpacity: 0.7,
483
+ path: google.maps.SymbolPath
484
+ .FORWARD_OPEN_ARROW,
485
+ scale: 4,
486
+ strokeColor: "#000",
487
+ strokeWeight: 5,
488
+ },
489
+ offset: "100%",
490
+ },
491
+ ];
492
+ break;
493
+ default:
494
+ break;
495
+ }
496
+ }
497
+ this.selectedPath = new this.google.maps.Polyline(newOptions);
498
+ }
499
+ this.selectedPath.initialIdx = polyline.initialIdx;
500
+ this.selectedPath.finalIdx = polyline.finalIdx;
501
+ this.drawPopupNavigation(polyline);
502
+ };
503
+ GooglePolylines.prototype.addPolylineEventMove = function (polyline, eventFunction) {
504
+ polyline.moveListener = function (newEvent, lastEvent) {
505
+ if (polyline.dragging)
506
+ return;
507
+ var path = polyline.getPath().getAt(newEvent);
508
+ var newPosition = new EventReturn([path.lat(), path.lng()]);
509
+ var lastPosition = new EventReturn([
510
+ lastEvent.lat(),
511
+ lastEvent.lng(),
512
+ ]);
513
+ eventFunction(newPosition, lastPosition, polyline.object, newEvent, polyline
514
+ .getPath()
515
+ .getArray()
516
+ .map(function (x) { return new EventReturn([x.lat(), x.lng()]); }));
517
+ };
518
+ this.google.maps.event.addListener(polyline.getPath(), "set_at", polyline.moveListener);
519
+ };
520
+ GooglePolylines.prototype.addPolylineEventInsertAt = function (polyline, eventFunction) {
521
+ polyline.insertAtListener = function (event) {
522
+ var path = polyline.getPath();
523
+ var newPath = path.getAt(event);
524
+ var newPoint = new EventReturn([newPath.lat(), newPath.lng()]);
525
+ var previousPath = path.getAt(event - 1);
526
+ var previousPoint = previousPath
527
+ ? new EventReturn([previousPath.lat(), previousPath.lng()])
528
+ : null;
529
+ eventFunction(newPoint, previousPoint, polyline.object, event, polyline
530
+ .getPath()
531
+ .getArray()
532
+ .map(function (x) { return new EventReturn([x.lat(), x.lng()]); }));
533
+ };
534
+ this.google.maps.event.addListener(polyline.getPath(), "insert_at", polyline.insertAtListener);
535
+ };
536
+ GooglePolylines.prototype.addPolylineEventRemoveAt = function (polyline, eventFunction) {
537
+ polyline.removeAtListener = function (event) {
538
+ var param = new EventReturn([
539
+ polyline.getPath().getAt(event).lat(),
540
+ polyline.getPath().getAt(event).lng(),
541
+ ]);
542
+ eventFunction(param, polyline.object, polyline
543
+ .getPath()
544
+ .getArray()
545
+ .map(function (x) { return new EventReturn([x.lat(), x.lng()]); }));
546
+ };
547
+ this.google.maps.event.addListener(polyline.getPath(), "remove_at", polyline.removeAtListener);
548
+ };
549
+ GooglePolylines.prototype.addPolylineEventRightClick = function (polyline, eventFunction) {
550
+ polyline.rightClickPolylineListener = function (event) {
551
+ polyline.dragging = false;
552
+ var param = new EventReturn([
553
+ event.latLng.lat(),
554
+ event.latLng.lng(),
555
+ ]);
556
+ eventFunction(param, polyline.object);
557
+ };
558
+ this.google.maps.event.addListener(polyline, "rightclick", polyline.rightClickPolylineListener);
559
+ };
560
+ GooglePolylines.prototype.addPolylineEventMouseOver = function (polyline, eventFunction) {
561
+ polyline.overPolylineListener = function (event) {
562
+ polyline.dragging = false;
563
+ var param = new EventReturn([
564
+ event.latLng.lat(),
565
+ event.latLng.lng(),
566
+ ]);
567
+ eventFunction(param, polyline.object);
568
+ };
569
+ this.google.maps.event.addListener(polyline, "mouseover", polyline.overPolylineListener);
570
+ };
571
+ GooglePolylines.prototype.addPolylineEventMouseOut = function (polyline, eventFunction) {
572
+ polyline.outPolylineListener = function (event) {
573
+ polyline.dragging = false;
574
+ var param = new EventReturn([
575
+ event.latLng.lat(),
576
+ event.latLng.lng(),
577
+ ]);
578
+ eventFunction(param, polyline.object);
579
+ };
580
+ this.google.maps.event.addListener(polyline, "mouseout", polyline.outPolylineListener);
581
+ };
582
+ GooglePolylines.prototype.addPolylineEventDragPolyline = function (polyline, eventFunction) {
583
+ polyline.dragPolylineListener = function () {
584
+ polyline.dragging = false;
585
+ var param = polyline
586
+ .getPath()
587
+ .getArray()
588
+ .map(function (x) { return new EventReturn([x.lat(), x.lng()]); });
589
+ eventFunction(param, polyline.object);
590
+ };
591
+ this.google.maps.event.addListener(polyline, "dragend", polyline.dragPolylineListener);
592
+ this.google.maps.event.addListener(polyline, "dragstart", function () { return (polyline.dragging = true); });
593
+ };
594
+ GooglePolylines.prototype.updateSelectedPathListeners = function () {
595
+ if (this.selectedPath.moveListener) {
596
+ this.google.maps.event.clearListeners(this.selectedPath.getPath(), "set_at");
597
+ this.google.maps.event.addListener(this.selectedPath.getPath(), "set_at", this.selectedPath.moveListener);
598
+ }
599
+ if (this.selectedPath.insertAtListener) {
600
+ this.google.maps.event.clearListeners(this.selectedPath.getPath(), "insert_at");
601
+ this.google.maps.event.addListener(this.selectedPath.getPath(), "insert_at", this.selectedPath.insertAtListener);
602
+ }
603
+ if (this.selectedPath.removeAtListener) {
604
+ this.google.maps.event.clearListeners(this.selectedPath.getPath(), "remove_at");
605
+ this.google.maps.event.addListener(this.selectedPath.getPath(), "remove_at", this.selectedPath.removeAtListener);
606
+ }
607
+ };
608
+ GooglePolylines.prototype.drawPopupNavigation = function (polyline) {
609
+ var _a, _b;
610
+ var self = this;
611
+ var idx = self.directionForward
612
+ ? polyline.finalIdx
613
+ : polyline.initialIdx;
614
+ if (!self.navigateByPoint) {
615
+ idx =
616
+ polyline.finalIdx > polyline.initialIdx
617
+ ? polyline.finalIdx
618
+ : polyline.initialIdx;
619
+ }
620
+ var infowindow = polyline.infowindows
621
+ ? polyline.infowindows[idx]
622
+ : null;
623
+ if (infowindow) {
624
+ var point = polyline.getPath().getArray()[idx];
625
+ if (self.navigateInfoWindow) {
626
+ (_a = this.googlePopups) === null || _a === void 0 ? void 0 : _a.alterPopup(self.navigateInfoWindow, {
627
+ content: infowindow,
628
+ latlng: [point.lat(), point.lng()],
629
+ });
630
+ }
631
+ else {
632
+ self.navigateInfoWindow = (_b = this.googlePopups) === null || _b === void 0 ? void 0 : _b.drawPopup({
633
+ content: infowindow,
634
+ latlng: [point.lat(), point.lng()],
635
+ });
636
+ }
637
+ }
638
+ };
639
+ GooglePolylines.prototype.checkIdx = function (polyline, point) {
640
+ var self = this;
641
+ var path = polyline.getPath();
642
+ var distance = 0;
643
+ var minDistance = Number.MAX_VALUE;
644
+ var returnValue = -1;
645
+ for (var i = 0; i < path.length - 1; i++) {
646
+ distance = self.distanceToLine(path.getAt(i), path.getAt(i + 1), point);
647
+ if (distance < minDistance) {
648
+ minDistance = distance;
649
+ returnValue = i;
650
+ }
651
+ }
652
+ return returnValue;
653
+ };
654
+ GooglePolylines.prototype.distanceToLine = function (pt1, pt2, pt) {
655
+ var self = this;
656
+ var deltaX = pt2.lng() - pt1.lng();
657
+ var deltaY = pt2.lat() - pt1.lat();
658
+ var incIntersect = (pt.lng() - pt1.lng()) * deltaX;
659
+ var deltaSum = deltaX * deltaX + deltaY * deltaY;
660
+ incIntersect += (pt.lat() - pt1.lat()) * deltaY;
661
+ if (deltaSum > 0) {
662
+ incIntersect /= deltaSum;
663
+ }
664
+ else {
665
+ incIntersect = -1;
666
+ }
667
+ // The intersection occurs outside the line segment, 'before' pt1.
668
+ if (incIntersect < 0) {
669
+ return self.kmTo(pt, pt1);
670
+ }
671
+ else if (incIntersect > 1) {
672
+ return self.kmTo(pt, pt2);
673
+ }
674
+ // Intersection point calculation.
675
+ var intersect = new this.google.maps.LatLng(pt1.lat() + incIntersect * deltaY, pt1.lng() + incIntersect * deltaX);
676
+ return self.kmTo(pt, intersect);
677
+ };
678
+ GooglePolylines.prototype.kmTo = function (pt1, pt2) {
679
+ var e = Math;
680
+ var ra = e.PI / 180;
681
+ var b = pt1.lat() * ra;
682
+ var c = pt2.lat() * ra;
683
+ var d = b - c;
684
+ var g = pt1.lng() * ra - pt2.lng() * ra;
685
+ var f = 2 *
686
+ e.asin(e.sqrt(e.pow(e.sin(d / 2), 2) +
687
+ e.cos(b) * e.cos(c) * e.pow(e.sin(g / 2), 2)));
688
+ return f * 6378.137 * 1000;
689
+ };
690
+ GooglePolylines.prototype.getPolylinesBounds = function (polylines) {
691
+ var bounds = new this.google.maps.LatLngBounds();
692
+ polylines.forEach(function (polyline) {
693
+ var paths = polyline.getPath().getArray();
694
+ paths.forEach(function (path) { return bounds.extend(path); });
695
+ });
696
+ return bounds;
697
+ };
698
+ GooglePolylines.prototype.getPolylineBounds = function (polyline) {
699
+ var bounds = new this.google.maps.LatLngBounds();
700
+ var paths = polyline.getPath().getArray();
701
+ paths.forEach(function (path) { return bounds.extend(path); });
702
+ return bounds;
703
+ };
704
+ return GooglePolylines;
705
+ }());
706
+ export default GooglePolylines;
597
707
  //# sourceMappingURL=google-polylines.js.map