@sword916/vae-map-plus 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/lib/index.js +5376 -0
  2. package/lib/style.css +1 -0
  3. package/lib/vae-amap/favicon.ico +0 -0
  4. package/lib/vae-amap/images/game.png +0 -0
  5. package/lib/vae-amap/images/grid.png +0 -0
  6. package/lib/vae-amap/images/marker.png +0 -0
  7. package/lib/vae-amap/index.js +209 -0
  8. package/lib/vae-amap/style.css +1 -0
  9. package/lib/vae-cloudmap/favicon.ico +0 -0
  10. package/lib/vae-cloudmap/images/game.png +0 -0
  11. package/lib/vae-cloudmap/images/grid.png +0 -0
  12. package/lib/vae-cloudmap/images/marker.png +0 -0
  13. package/lib/vae-cloudmap/index.html +30 -0
  14. package/lib/vae-cloudmap/index.js +4085 -0
  15. package/lib/vae-cloudmap/style.css +1 -0
  16. package/lib/vae-map/favicon.ico +0 -0
  17. package/lib/vae-map/images/game.png +0 -0
  18. package/lib/vae-map/images/grid.png +0 -0
  19. package/lib/vae-map/images/marker.png +0 -0
  20. package/lib/vae-map/index.html +30 -0
  21. package/lib/vae-map/index.js +4322 -0
  22. package/lib/vae-map/style.css +1 -0
  23. package/package.json +1 -1
  24. package/plugins/L.AnimatedMarker/favicon.ico +0 -0
  25. package/plugins/L.AnimatedMarker/images/game.png +0 -0
  26. package/plugins/L.AnimatedMarker/images/grid.png +0 -0
  27. package/plugins/L.AnimatedMarker/images/marker.png +0 -0
  28. package/plugins/L.AnimatedMarker/index.html +30 -0
  29. package/plugins/L.AnimatedMarker/index.js +83 -0
  30. package/plugins/L.EchartsLayer/favicon.ico +0 -0
  31. package/plugins/L.EchartsLayer/images/game.png +0 -0
  32. package/plugins/L.EchartsLayer/images/grid.png +0 -0
  33. package/plugins/L.EchartsLayer/images/marker.png +0 -0
  34. package/plugins/L.EchartsLayer/index.html +30 -0
  35. package/plugins/L.EchartsLayer/index.js +176 -0
  36. package/plugins/L.FootageCalculator.Area/favicon.ico +0 -0
  37. package/plugins/L.FootageCalculator.Area/images/game.png +0 -0
  38. package/plugins/L.FootageCalculator.Area/images/grid.png +0 -0
  39. package/plugins/L.FootageCalculator.Area/images/marker.png +0 -0
  40. package/plugins/L.FootageCalculator.Area/index.html +30 -0
  41. package/plugins/L.FootageCalculator.Area/index.js +418 -0
  42. package/plugins/L.FootageCalculator.Line/favicon.ico +0 -0
  43. package/plugins/L.FootageCalculator.Line/images/game.png +0 -0
  44. package/plugins/L.FootageCalculator.Line/images/grid.png +0 -0
  45. package/plugins/L.FootageCalculator.Line/images/marker.png +0 -0
  46. package/plugins/L.FootageCalculator.Line/index.html +30 -0
  47. package/plugins/L.FootageCalculator.Line/index.js +416 -0
  48. package/plugins/L.GeoUtil/favicon.ico +0 -0
  49. package/plugins/L.GeoUtil/images/game.png +0 -0
  50. package/plugins/L.GeoUtil/images/grid.png +0 -0
  51. package/plugins/L.GeoUtil/images/marker.png +0 -0
  52. package/plugins/L.GeoUtil/index.html +30 -0
  53. package/plugins/L.GeoUtil/index.js +279 -0
  54. package/plugins/L.Glyphicon/favicon.ico +0 -0
  55. package/plugins/L.Glyphicon/images/game.png +0 -0
  56. package/plugins/L.Glyphicon/images/grid.png +0 -0
  57. package/plugins/L.Glyphicon/images/marker.png +0 -0
  58. package/plugins/L.Glyphicon/index.html +30 -0
  59. package/plugins/L.Glyphicon/index.js +57 -0
  60. package/plugins/L.Glyphicon/style.css +1 -0
  61. package/plugins/L.MarkerClusterX/favicon.ico +0 -0
  62. package/plugins/L.MarkerClusterX/images/game.png +0 -0
  63. package/plugins/L.MarkerClusterX/images/grid.png +0 -0
  64. package/plugins/L.MarkerClusterX/images/marker.png +0 -0
  65. package/plugins/L.MarkerClusterX/index.html +30 -0
  66. package/plugins/L.MarkerClusterX/index.js +33 -0
  67. package/plugins/L.MarkerClusterX/style.css +1 -0
  68. package/plugins/L.SafeDivOverlay/favicon.ico +0 -0
  69. package/plugins/L.SafeDivOverlay/images/game.png +0 -0
  70. package/plugins/L.SafeDivOverlay/images/grid.png +0 -0
  71. package/plugins/L.SafeDivOverlay/images/marker.png +0 -0
  72. package/plugins/L.SafeDivOverlay/index.html +30 -0
  73. package/plugins/L.SafeDivOverlay/index.js +26 -0
  74. package/plugins/L.TileLayer.ChinaProvider/favicon.ico +0 -0
  75. package/plugins/L.TileLayer.ChinaProvider/images/game.png +0 -0
  76. package/plugins/L.TileLayer.ChinaProvider/images/grid.png +0 -0
  77. package/plugins/L.TileLayer.ChinaProvider/images/marker.png +0 -0
  78. package/plugins/L.TileLayer.ChinaProvider/index.html +30 -0
  79. package/plugins/L.TileLayer.ChinaProvider/index.js +91 -0
  80. package/plugins/L.VuePopup/favicon.ico +0 -0
  81. package/plugins/L.VuePopup/images/game.png +0 -0
  82. package/plugins/L.VuePopup/images/grid.png +0 -0
  83. package/plugins/L.VuePopup/images/marker.png +0 -0
  84. package/plugins/L.VuePopup/index.html +30 -0
  85. package/plugins/L.VuePopup/index.js +68 -0
  86. package/plugins/L.VueTooltip/favicon.ico +0 -0
  87. package/plugins/L.VueTooltip/images/game.png +0 -0
  88. package/plugins/L.VueTooltip/images/grid.png +0 -0
  89. package/plugins/L.VueTooltip/images/marker.png +0 -0
  90. package/plugins/L.VueTooltip/index.html +30 -0
  91. package/plugins/L.VueTooltip/index.js +68 -0
  92. package/plugins/Mixin.Map.Measure/favicon.ico +0 -0
  93. package/plugins/Mixin.Map.Measure/images/game.png +0 -0
  94. package/plugins/Mixin.Map.Measure/images/grid.png +0 -0
  95. package/plugins/Mixin.Map.Measure/images/marker.png +0 -0
  96. package/plugins/Mixin.Map.Measure/index.html +30 -0
  97. package/plugins/Mixin.Map.Measure/index.js +84 -0
  98. package/plugins/globals/favicon.ico +0 -0
  99. package/plugins/globals/images/game.png +0 -0
  100. package/plugins/globals/images/grid.png +0 -0
  101. package/plugins/globals/images/marker.png +0 -0
  102. package/plugins/globals/index.html +30 -0
  103. package/plugins/globals/index.js +4 -0
  104. package/build/index.mjs +0 -113
  105. package/examples/App.vue +0 -18
  106. package/examples/index.js +0 -13
  107. package/examples/router/index.js +0 -35
  108. package/examples/views/amap.vue +0 -29
  109. package/examples/views/amarker.vue +0 -58
  110. package/examples/views/buffer.vue +0 -66
  111. package/examples/views/cluster.vue +0 -74
  112. package/examples/views/cover.vue +0 -85
  113. package/examples/views/draw-line.vue +0 -49
  114. package/examples/views/draw.vue +0 -54
  115. package/examples/views/echarts.vue +0 -142
  116. package/examples/views/emarker.vue +0 -39
  117. package/examples/views/image.vue +0 -182
  118. package/examples/views/index.vue +0 -61
  119. package/examples/views/lrmap.vue +0 -108
  120. package/examples/views/map.vue +0 -82
  121. package/examples/views/measure.vue +0 -86
  122. package/examples/views/parts/popup.vue +0 -39
  123. package/examples/views/parts/tooltip.vue +0 -39
  124. package/examples/views/push-area.vue +0 -52
  125. package/examples/views/push-line.vue +0 -84
  126. package/examples/views/trace.vue +0 -49
  127. package/jsconfig.json +0 -17
  128. package/src/components/resize-listener/component.jsx +0 -30
  129. package/src/components/resize-listener/index.js +0 -3
  130. package/src/composables/useAutoMessage.js +0 -41
  131. package/src/composables/useContextMenu.js +0 -99
  132. package/src/composables/useMapMeasure.js +0 -191
  133. package/src/composables/useResizeObserver.js +0 -81
  134. package/src/mixins/message.js +0 -1
  135. package/src/packages/index.js +0 -16
  136. package/src/packages/vae-amap/index.js +0 -8
  137. package/src/packages/vae-amap/style.less +0 -9
  138. package/src/packages/vae-amap/vae-amap.jsx +0 -98
  139. package/src/packages/vae-cloudmap/ctrl-context-menu/index.vue +0 -74
  140. package/src/packages/vae-cloudmap/ctrl-draw/index.vue +0 -499
  141. package/src/packages/vae-cloudmap/ctrl-draw-line/index.vue +0 -161
  142. package/src/packages/vae-cloudmap/index.js +0 -57
  143. package/src/packages/vae-cloudmap/scripts/L.MarkerCluster/index.js +0 -2690
  144. package/src/packages/vae-cloudmap/scripts/L.MarkerCluster/style.css +0 -14
  145. package/src/packages/vae-cloudmap/scripts/L.Vae.CRS/index.js +0 -212
  146. package/src/packages/vae-cloudmap/scripts/L.Vae.Client/index.js +0 -780
  147. package/src/packages/vae-cloudmap/scripts/Mixin.ContextMenu/index.js +0 -101
  148. package/src/packages/vae-cloudmap/style.less +0 -163
  149. package/src/packages/vae-cloudmap/vae-cloudmap.jsx +0 -272
  150. package/src/packages/vae-map/ctrl-context-menu/index.vue +0 -74
  151. package/src/packages/vae-map/ctrl-draw/index.vue +0 -498
  152. package/src/packages/vae-map/ctrl-draw-line/index.vue +0 -128
  153. package/src/packages/vae-map/index.js +0 -59
  154. package/src/packages/vae-map/scripts/L.MarkerCluster/index.js +0 -2690
  155. package/src/packages/vae-map/scripts/L.MarkerCluster/style.css +0 -14
  156. package/src/packages/vae-map/scripts/L.Vae.CRS/index.js +0 -114
  157. package/src/packages/vae-map/scripts/L.Vae.Client/index.js +0 -548
  158. package/src/packages/vae-map/scripts/Mixin.ContextMenu/index.js +0 -1
  159. package/src/packages/vae-map/style.less +0 -161
  160. package/src/packages/vae-map/vae-lrmap.jsx +0 -237
  161. package/src/packages/vae-map/vae-map.jsx +0 -135
  162. package/src/plugins/L.AnimatedMarker/index.js +0 -158
  163. package/src/plugins/L.EchartsLayer/index.js +0 -339
  164. package/src/plugins/L.ElasticMarker/index.js +0 -162
  165. package/src/plugins/L.FootageCalculator.Area/index.js +0 -263
  166. package/src/plugins/L.FootageCalculator.Line/index.js +0 -273
  167. package/src/plugins/L.GeoUtil/buffer.js +0 -67
  168. package/src/plugins/L.GeoUtil/index.js +0 -284
  169. package/src/plugins/L.Glyphicon/index.js +0 -91
  170. package/src/plugins/L.Glyphicon/style.less +0 -37
  171. package/src/plugins/L.MarkerClusterX/index.js +0 -93
  172. package/src/plugins/L.MarkerClusterX/style.less +0 -162
  173. package/src/plugins/L.SafeDivOverlay/index.js +0 -55
  174. package/src/plugins/L.TileLayer.ChinaProvider/index.js +0 -108
  175. package/src/plugins/L.VuePopup/index.js +0 -67
  176. package/src/plugins/L.VueTooltip/index.js +0 -63
  177. package/src/plugins/Mixin.Map.Measure/index.js +0 -248
  178. package/src/plugins/globals/index.js +0 -7
  179. package/src/utils/index.js +0 -36
  180. package/src/utils/resize-event.js +0 -45
  181. /package/{public → lib}/favicon.ico +0 -0
  182. /package/{public → lib}/images/game.png +0 -0
  183. /package/{public → lib}/images/grid.png +0 -0
  184. /package/{public → lib}/images/marker.png +0 -0
  185. /package/{public → lib/vae-amap}/index.html +0 -0
@@ -0,0 +1,279 @@
1
+ import g from "@turf/buffer";
2
+ function c(t, e, n = {}) {
3
+ const r = { type: "Feature" };
4
+ return (n.id === 0 || n.id) && (r.id = n.id), n.bbox && (r.bbox = n.bbox), r.properties = {}, r.geometry = t, r;
5
+ }
6
+ function P(t, e, n = {}) {
7
+ if (!t)
8
+ throw new Error("coordinates is required");
9
+ if (!Array.isArray(t))
10
+ throw new Error("coordinates must be an Array");
11
+ if (t.length < 2)
12
+ throw new Error("coordinates must be at least 2 numbers long");
13
+ if (!d(t[0]) || !d(t[1]))
14
+ throw new Error("coordinates must contain numbers");
15
+ return c({
16
+ type: "Point",
17
+ coordinates: t
18
+ }, e, n);
19
+ }
20
+ function w(t, e, n = {}) {
21
+ for (const o of t) {
22
+ if (o.length < 4)
23
+ throw new Error(
24
+ "Each LinearRing of a Polygon must have 4 or more Positions."
25
+ );
26
+ if (o[o.length - 1].length !== o[0].length)
27
+ throw new Error("First and last Position are not equivalent.");
28
+ for (let i = 0; i < o[o.length - 1].length; i++)
29
+ if (o[o.length - 1][i] !== o[0][i])
30
+ throw new Error("First and last Position are not equivalent.");
31
+ }
32
+ return c({
33
+ type: "Polygon",
34
+ coordinates: t
35
+ }, e, n);
36
+ }
37
+ function A(t, e, n = {}) {
38
+ if (t.length < 2)
39
+ throw new Error("coordinates must be an array of two or more positions");
40
+ return c({
41
+ type: "LineString",
42
+ coordinates: t
43
+ }, e, n);
44
+ }
45
+ function d(t) {
46
+ return !isNaN(t) && t !== null && !Array.isArray(t);
47
+ }
48
+ const x = (t) => {
49
+ let e = [];
50
+ return t.geometry.coordinates.forEach((r) => {
51
+ e.push(r.map((o) => ({
52
+ lat: o[1],
53
+ lng: o[0]
54
+ })));
55
+ }), e;
56
+ }, S = {
57
+ /**
58
+ * 点缓冲分析
59
+ * @param {L.LatLng} center 中心点
60
+ * @param {Number} distance 缓冲距离
61
+ * @param {String} units 单位
62
+ * @returns {Array<Array<L.LatLng>>} 缓冲区经纬度序列
63
+ */
64
+ bufferPoint(t, e, n = "meters") {
65
+ const r = [t.lng, t.lat], o = g(P(r), e, { units: n });
66
+ return x(o);
67
+ },
68
+ /**
69
+ * 路径缓冲分析
70
+ * @param {Array<L.LatLng>} latLngs 路径经纬度序列
71
+ * @param {Number} distance 缓冲距离
72
+ * @param {String} units 单位
73
+ * @returns {Array<Array<L.LatLng>>} 缓冲区经纬度序列
74
+ */
75
+ bufferLine(t, e, n = "meters") {
76
+ const r = t.map((i) => [i.lng, i.lat]), o = g(A(r), e, { units: n });
77
+ return x(o);
78
+ },
79
+ /**
80
+ * 区域缓冲分析
81
+ * @param {Array<L.LatLng>} latLngs 区域经纬度序列
82
+ * @param {Number} distance 缓冲距离
83
+ * @param {String} units 单位
84
+ * @returns {Array<Array<L.LatLng>>} 缓冲区经纬度序列
85
+ */
86
+ bufferArea(t, e, n = "meters") {
87
+ let r = t.map((i) => [i.lng, i.lat]);
88
+ r.push(r[0]);
89
+ const o = g(w([r]), e, { units: n });
90
+ return x(o);
91
+ }
92
+ }, b = {
93
+ /**
94
+ * 角度转弧度
95
+ * @param {角度} angle
96
+ */
97
+ angleToRad(t) {
98
+ return t * Math.PI / 180;
99
+ },
100
+ /**
101
+ * 弧度转角度
102
+ * @param {弧度} rad
103
+ */
104
+ radToAngle(t) {
105
+ return t * 180 / Math.PI;
106
+ },
107
+ /**
108
+ * 水平角度转顺时针角
109
+ * @param {角度} angle
110
+ */
111
+ toClockwiseAngle(t) {
112
+ let e = 90 - t;
113
+ return e < 0 && (e += 360), e;
114
+ },
115
+ /**
116
+ * 求两点水平弧度
117
+ * @param {L.Point} a 起点
118
+ * @param {L.Point} b 终点
119
+ */
120
+ computeRad(t, e) {
121
+ return Math.atan2(e.y - t.y, e.x - t.x);
122
+ },
123
+ /**
124
+ * 求两点水平角度
125
+ * @param {L.Point} a 起点
126
+ * @param {L.Point} b 终点
127
+ */
128
+ computeAngle(t, e) {
129
+ return this.radToAngle(this.computeRad(t, e));
130
+ },
131
+ /**
132
+ * 获取线段夹角弧度
133
+ * @param {L.Point} a 交点
134
+ * @param {L.Point} b 终点一
135
+ * @param {L.Point} c 终点二
136
+ */
137
+ segmentsRad(t, e, n) {
138
+ const r = e.x - t.x, o = e.y - t.y, i = n.x - t.x, l = n.y - t.y, a = r * i + o * l, s = r * l - o * i;
139
+ return Math.atan2(s, a);
140
+ },
141
+ /**
142
+ * 获取点到线段所在直线的垂足
143
+ * @param {L.Point} a 点
144
+ * @param {L.Point} m 线段起点
145
+ * @param {L.Point} n 线段终点
146
+ */
147
+ footPointOnLine(t, e, n) {
148
+ const r = (e.x - n.x) * (e.x - n.x) + (e.y - n.y) * (e.y - n.y), i = ((t.x - e.x) * (n.x - e.x) + (t.y - e.y) * (n.y - e.y)) / r, l = e.x + i * (n.x - e.x), a = e.y + i * (n.y - e.y);
149
+ return L.point(l, a);
150
+ },
151
+ /**
152
+ * 两线段所在直线的交点坐标,平行或共线时不返回
153
+ * @param {L.Point} a 线段一起点
154
+ * @param {L.Point} b 线段一终点
155
+ * @param {L.Point} c 线段二起点
156
+ * @param {L.Point} d 线段二终点
157
+ */
158
+ linesIntersection(t, e, n, r) {
159
+ const o = (e.y - t.y) * (r.x - n.x) - (t.x - e.x) * (n.y - r.y);
160
+ if (o) {
161
+ const i = ((e.x - t.x) * (r.x - n.x) * (n.y - t.y) + (e.y - t.y) * (r.x - n.x) * t.x - (r.y - n.y) * (e.x - t.x) * n.x) / o, l = -((e.y - t.y) * (r.y - n.y) * (n.x - t.x) + (e.x - t.x) * (r.y - n.y) * t.y - (r.x - n.x) * (e.y - t.y) * n.y) / o;
162
+ return L.point(i, l);
163
+ }
164
+ },
165
+ /**
166
+ * 根据经纬度计算累计距离,单位米
167
+ * @param {Array<L.LatLng>} latLngs
168
+ * @param {L.CRS} 坐标系,默认使用L.CRS.EPSG3857
169
+ */
170
+ distanceByLatLngs(t, e = L.CRS.EPSG3857) {
171
+ typeof e.distance != "function" && (e = L.CRS.EPSG3857);
172
+ let n = 0;
173
+ if (Array.isArray(t) && t.length > 1)
174
+ for (let r = 0; r < t.length - 1; r++)
175
+ n += e.distance(t[r], t[r + 1]);
176
+ return n;
177
+ },
178
+ /**
179
+ * 根据经纬度计算面积,单位平方米
180
+ * @param {Array<L.LatLng>} latLngs
181
+ */
182
+ areaByLatLngs(t) {
183
+ let e = t.length, n = 0, r = Math.PI / 180, o, i;
184
+ if (e > 2) {
185
+ for (let l = 0; l < e; l++)
186
+ o = t[l], i = t[(l + 1) % e], n += (i.lng - o.lng) * r * (2 + Math.sin(o.lat * r) + Math.sin(i.lat * r));
187
+ n = n * 6378137 * 6378137 / 2;
188
+ }
189
+ return Math.abs(n);
190
+ },
191
+ /**
192
+ * 根据坐标点计算面积
193
+ * @param {Array<L.Point>} points
194
+ */
195
+ areaByPoints(t) {
196
+ let e = 0;
197
+ if (Array.isArray(t) && t.length > 2) {
198
+ let n = 0;
199
+ for (let r = 0; r < t.length; r++)
200
+ r + 1 == t.length ? n += t[r].x * t[0].y - t[0].x * t[r].y : n += t[r].x * t[r + 1].y - t[r + 1].x * t[r].y;
201
+ e = 1 / 2 * Math.abs(n);
202
+ }
203
+ return e;
204
+ },
205
+ /**
206
+ * 转换面积,增加单位
207
+ * @param {number} area 面积数字,单位平方米
208
+ */
209
+ readableArea(t) {
210
+ let e = 0;
211
+ return t > 1e3 * 1e3 ? e = (t / (1e3 * 1e3)).toFixed(2) + " km²" : e = Math.ceil(t) + " m²", e;
212
+ },
213
+ /**
214
+ * 点是否在多边形内,射线法
215
+ * @param {L.Point} point 给定点
216
+ * @param {Array<L.Point>} points 多边形坐标
217
+ * @returns {Boolean} 是否置于多边形内或边界上
218
+ */
219
+ isPointInPoly(t, e) {
220
+ const n = t.x, r = t.y;
221
+ let o = !1, i = !1;
222
+ const l = e.length;
223
+ for (let a = 0, s = l - 1; a < l; s = a, a++) {
224
+ const y = e[a].x, u = e[a].y, h = e[s].x, f = e[s].y;
225
+ if ((y === n && u === r || h === n && f === r) && (i = !0), u < r && f >= r || u >= r && f < r) {
226
+ const m = y + (r - u) * (h - y) / (f - u);
227
+ i = m === n, m > n && (o = !o);
228
+ }
229
+ if (i)
230
+ break;
231
+ }
232
+ return i || o;
233
+ },
234
+ /**
235
+ * 点到面的距离,在内部视为0
236
+ * @param {L.Point} point 给定点
237
+ * @param {Array<L.Point>} points 多边形坐标
238
+ * @param {L.CRS} crs 地图CRS
239
+ * @returns {Boolean} 距离数值,若CRS可用,单位为米
240
+ */
241
+ distanceToPoly(t, e, n) {
242
+ let r = 0;
243
+ if (!this.isPointInPoly(t, e)) {
244
+ let o = [], i = [];
245
+ const l = e.length;
246
+ for (let y = 0, u = l - 1; y < l; u = y, y++)
247
+ o.push(L.LineUtil.pointToSegmentDistance(t, e[y], e[u])), i.push(L.LineUtil.closestPointOnSegment(t, e[y], e[u]));
248
+ r = _.min(o);
249
+ const a = _.indexOf(o, r), s = i[a];
250
+ if (n && n.unproject) {
251
+ const y = n.unproject(t), u = n.unproject(s);
252
+ r = n.distance(y, u);
253
+ }
254
+ }
255
+ return r;
256
+ },
257
+ /**
258
+ * 点到折线的距离
259
+ * @param {L.Point} point 给定点
260
+ * @param {Array<L.Point>} points 折线坐标
261
+ * @param {L.CRS} crs 地图CRS
262
+ * @param {Boolean} 距离数值,若CRS可用,单位为米
263
+ */
264
+ distanceToLine(t, e, n) {
265
+ let r = 0, o = [], i = [];
266
+ if (Array.isArray(e) && e.length > 1) {
267
+ for (let s = 0; s < e.length - 1; s++)
268
+ o.push(L.LineUtil.pointToSegmentDistance(t, e[s], e[s + 1])), i.push(L.LineUtil.closestPointOnSegment(t, e[s], e[s + 1]));
269
+ r = _.min(o);
270
+ const l = _.indexOf(o, r), a = i[l];
271
+ if (n && n.unproject) {
272
+ const s = n.unproject(t), y = n.unproject(a);
273
+ r = n.distance(s, y);
274
+ }
275
+ }
276
+ return r;
277
+ }
278
+ };
279
+ L.GeoUtil = L.extend(L.GeoUtil || {}, _.assign(b, S));
Binary file
@@ -0,0 +1,30 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
7
+ <meta name="viewport" content="width=device-width,initial-scale=1.0">
8
+ <link rel="icon" href="<%= BASE_URL %>favicon.ico">
9
+ <style type="text/css">
10
+ html {
11
+ width: 100%;
12
+ height: 100%;
13
+ }
14
+
15
+ body {
16
+ width: 100%;
17
+ height: 100%;
18
+ margin: 0;
19
+ padding: 0;
20
+ overflow: hidden;
21
+ }
22
+ </style>
23
+ <title>...</title>
24
+ </head>
25
+
26
+ <body>
27
+ <div id="app"></div>
28
+ </body>
29
+
30
+ </html>
@@ -0,0 +1,57 @@
1
+ L.Glyphicon = L.DivIcon.extend({
2
+ options: {
3
+ icon: "fas fa-leaf",
4
+ size: 32,
5
+ fontSize: null,
6
+ background: "white",
7
+ color: "#4d90fe",
8
+ borderRadius: null,
9
+ borderWidth: 2,
10
+ borderColor: null,
11
+ boxShadow: !0,
12
+ additionalCSS: "",
13
+ className: "",
14
+ effect: {
15
+ type: null,
16
+ size: null,
17
+ color: null,
18
+ interval: null
19
+ }
20
+ },
21
+ initialize(r = {}) {
22
+ L.setOptions(this, r);
23
+ let e = this.options, l = document.createElement("div");
24
+ L.DomUtil.addClass(l, "vae-glyphicon");
25
+ let t = [];
26
+ t.push(`height:${e.size - e.borderWidth * 2}px`), t.push(`width:${e.size - e.borderWidth * 2}px`), t.push(`color:${e.color}`);
27
+ let p = _.isNil(e.fontSize) ? e.size / 2 : e.fontSize;
28
+ t.push(`font-size:${p}px`);
29
+ let h = _.isNil(e.borderRadius) ? e.size : e.borderRadius;
30
+ t.push(`border-radius:${h}px`), t.push(`border-width:${e.borderWidth}px`), t.push(`border-color:${e.borderColor || e.color}`), t.push("border-style:solid"), t.push(`background-color:${e.background}`), e.boxShadow && t.push("box-shadow:0 2px 6px 0 rgba(0, 0, 0, 0.2)"), t.push(e.additionalCSS);
31
+ let d = document.createAttribute("style");
32
+ d.value = t.join(";");
33
+ let a = document.createElement("div");
34
+ L.DomUtil.addClass(a, e.icon), l.setAttributeNode(d), l.appendChild(a);
35
+ let o = e.effect;
36
+ if (o && o.type) {
37
+ let n = document.createElement("div"), c = o.type;
38
+ if (c === "halo") {
39
+ let u = document.createAttribute("style"), i = [];
40
+ L.DomUtil.addClass(n, "halo");
41
+ let s = o.size || e.size * 3;
42
+ i.push(`height:${s}px`), i.push(`width:${s}px`);
43
+ let f = o.color || e.color;
44
+ i.push(`background-color:${f}`), i.push(`top:-${(s - e.size) / 2}px`), i.push(`left:-${(s - e.size) / 2}px`), i.push(`animation:vae-effect-${c} ${o.interval || 2}s 0s infinite ease-in`), u.value = i.join(";"), n.setAttributeNode(u);
45
+ }
46
+ l.appendChild(n);
47
+ }
48
+ L.DivIcon.prototype.initialize.call(this, {
49
+ html: l.outerHTML,
50
+ iconSize: [e.size, e.size],
51
+ className: e.className
52
+ });
53
+ }
54
+ });
55
+ L.glyphicon = function(r) {
56
+ return new L.Glyphicon(r);
57
+ };
@@ -0,0 +1 @@
1
+ .vae-glyphicon{display:flex;align-items:center;justify-content:center}.vae-glyphicon .halo{border-radius:50%;position:absolute;pointer-events:none;z-index:-1}@keyframes vae-effect-halo{0%{transform:scale(.2);opacity:0}65%{opacity:.75}75%{opacity:.75}85%{opacity:.2}to{transform:scale(1);opacity:0}}
@@ -0,0 +1,30 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
7
+ <meta name="viewport" content="width=device-width,initial-scale=1.0">
8
+ <link rel="icon" href="<%= BASE_URL %>favicon.ico">
9
+ <style type="text/css">
10
+ html {
11
+ width: 100%;
12
+ height: 100%;
13
+ }
14
+
15
+ body {
16
+ width: 100%;
17
+ height: 100%;
18
+ margin: 0;
19
+ padding: 0;
20
+ overflow: hidden;
21
+ }
22
+ </style>
23
+ <title>...</title>
24
+ </head>
25
+
26
+ <body>
27
+ <div id="app"></div>
28
+ </body>
29
+
30
+ </html>
@@ -0,0 +1,33 @@
1
+ function c(l) {
2
+ let e = 1, i = 30, r = 6;
3
+ const t = l.getChildCount();
4
+ t > 0 && t <= 9 ? (e = 1, i = 30, r = 6) : t > 9 && t <= 49 ? (e = 2, i = 38, r = 8) : t > 49 && t <= 99 ? (e = 3, i = 46, r = 8) : t > 99 && t <= 499 ? (e = 4, i = 54, r = 10) : t > 499 && t < 999 ? (e = 5, i = 62, r = 10) : (e = 6, i = 70, r = 12);
5
+ const s = `vae-markercluster--icon style--${this.iconStyle || "blue"} level--${e}`, n = i - r, o = `border-radius:${i / 2}px;`, a = `height:${n}px;width:${n}px;border-radius:${n / 2}px;`;
6
+ return L.divIcon({
7
+ html: `<div class="outer center" style="${o}"><div class="inner center" style="${a}">${t}</div></div>`,
8
+ className: s,
9
+ iconSize: [i, i]
10
+ });
11
+ }
12
+ L.MarkerClusterGroupX = L.MarkerClusterGroup.extend({
13
+ options: {
14
+ iconStyle: "blue",
15
+ showCoverageOnHover: !1,
16
+ maxClusterRadius: 60,
17
+ spiderLegPolylineOptions: {
18
+ weight: 2,
19
+ dashArray: [5, 5],
20
+ interactive: !1,
21
+ opacity: 0.8
22
+ },
23
+ iconCreateFunction: c
24
+ },
25
+ initialize(l = {}) {
26
+ L.setOptions(this, l);
27
+ const e = this.options.iconStyle || "blue";
28
+ this.options.spiderLegPolylineOptions.color = e == "red" ? "hsl(354, 70%, 54%)" : e == "blue" ? "hsl(211, 100%, 45%)" : e == "green" ? "hsl(134, 61%, 41%)" : e == "gray" ? "#606266" : e == "yellow" ? "#f9c31f" : e == "orange" ? "#fd7e14" : e == "cyan" ? "#17a2b8" : e == "purple" ? "#5c11d4" : e == "pink" ? "#e83e8c" : e == "transparent" ? "rgba(0,0,0,0.6)" : null, L.MarkerClusterGroup.prototype.initialize.call(this, this.options);
29
+ }
30
+ });
31
+ L.markerClusterGroupX = function(l) {
32
+ return new L.MarkerClusterGroupX(l);
33
+ };
@@ -0,0 +1 @@
1
+ .vae-markercluster--icon .outer{height:100%;width:100%;font-size:12px}.vae-markercluster--icon .outer .inner{color:#fff;font-weight:700}.vae-markercluster--icon .center{display:flex;align-items:center;justify-content:center}.vae-markercluster--icon.style--red.level--1 .outer{background:#ff7548}.vae-markercluster--icon.style--red.level--1 .outer .inner{background:#da2b3c}.vae-markercluster--icon.style--red.level--2 .outer{background:#ff6e3e}.vae-markercluster--icon.style--red.level--2 .outer .inner{background:#d02536}.vae-markercluster--icon.style--red.level--3 .outer{background:#f63}.vae-markercluster--icon.style--red.level--3 .outer .inner{background:#c32232}.vae-markercluster--icon.style--red.level--4 .outer{background:#ff5e29}.vae-markercluster--icon.style--red.level--4 .outer .inner{background:#b6202f}.vae-markercluster--icon.style--red.level--5 .outer{background:#ff571f}.vae-markercluster--icon.style--red.level--5 .outer .inner{background:#a91e2c}.vae-markercluster--icon.style--red.level--6 .outer{background:#ff4f15}.vae-markercluster--icon.style--red.level--6 .outer .inner{background:#9c1c28}.vae-markercluster--icon.style--orange.level--1 .outer{background:#f9c21a}.vae-markercluster--icon.style--orange.level--1 .outer .inner{background:#fd780a}.vae-markercluster--icon.style--orange.level--2 .outer{background:#f9c015}.vae-markercluster--icon.style--orange.level--2 .outer .inner{background:#fa7302}.vae-markercluster--icon.style--orange.level--3 .outer{background:#f9bf10}.vae-markercluster--icon.style--orange.level--3 .outer .inner{background:#f06e02}.vae-markercluster--icon.style--orange.level--4 .outer{background:#f8be0b}.vae-markercluster--icon.style--orange.level--4 .outer .inner{background:#e66a02}.vae-markercluster--icon.style--orange.level--5 .outer{background:#f8bc07}.vae-markercluster--icon.style--orange.level--5 .outer .inner{background:#dc6502}.vae-markercluster--icon.style--orange.level--6 .outer{background:#f3b807}.vae-markercluster--icon.style--orange.level--6 .outer .inner{background:#d26102}.vae-markercluster--icon.style--yellow.level--1 .outer{background:#fdfd6d}.vae-markercluster--icon.style--yellow.level--1 .outer .inner{background:#f9bf10}.vae-markercluster--icon.style--yellow.level--2 .outer{background:#fdfd63}.vae-markercluster--icon.style--yellow.level--2 .outer .inner{background:#f3b807}.vae-markercluster--icon.style--yellow.level--3 .outer{background:#fdfd59}.vae-markercluster--icon.style--yellow.level--3 .outer .inner{background:#e4ad06}.vae-markercluster--icon.style--yellow.level--4 .outer{background:#fcfc4f}.vae-markercluster--icon.style--yellow.level--4 .outer .inner{background:#d5a206}.vae-markercluster--icon.style--yellow.level--5 .outer{background:#fcfc45}.vae-markercluster--icon.style--yellow.level--5 .outer .inner{background:#c69605}.vae-markercluster--icon.style--yellow.level--6 .outer{background:#fcfc3b}.vae-markercluster--icon.style--yellow.level--6 .outer .inner{background:#b78b05}.vae-markercluster--icon.style--blue.level--1 .outer{background:#4dc3ff}.vae-markercluster--icon.style--blue.level--1 .outer .inner{background:#0068d6}.vae-markercluster--icon.style--blue.level--2 .outer{background:#42c0ff}.vae-markercluster--icon.style--blue.level--2 .outer .inner{background:#0060c7}.vae-markercluster--icon.style--blue.level--3 .outer{background:#38bdff}.vae-markercluster--icon.style--blue.level--3 .outer .inner{background:#0059b8}.vae-markercluster--icon.style--blue.level--4 .outer{background:#2eb9ff}.vae-markercluster--icon.style--blue.level--4 .outer .inner{background:#0051a8}.vae-markercluster--icon.style--blue.level--5 .outer{background:#24b6ff}.vae-markercluster--icon.style--blue.level--5 .outer .inner{background:#004a99}.vae-markercluster--icon.style--blue.level--6 .outer{background:#1ab2ff}.vae-markercluster--icon.style--blue.level--6 .outer .inner{background:#00438a}.vae-markercluster--icon.style--green.level--1 .outer{background:#7bcb52}.vae-markercluster--icon.style--green.level--1 .outer .inner{background:#269c41}.vae-markercluster--icon.style--green.level--2 .outer{background:#75c94a}.vae-markercluster--icon.style--green.level--2 .outer .inner{background:#23903c}.vae-markercluster--icon.style--green.level--3 .outer{background:#6fc743}.vae-markercluster--icon.style--green.level--3 .outer .inner{background:#208337}.vae-markercluster--icon.style--green.level--4 .outer{background:#69c43b}.vae-markercluster--icon.style--green.level--4 .outer .inner{background:#1d7732}.vae-markercluster--icon.style--green.level--5 .outer{background:#64bc38}.vae-markercluster--icon.style--green.level--5 .outer .inner{background:#1a6b2d}.vae-markercluster--icon.style--green.level--6 .outer{background:#60b536}.vae-markercluster--icon.style--green.level--6 .outer .inner{background:#175e28}.vae-markercluster--icon.style--cyan.level--1 .outer{background:#00fafa}.vae-markercluster--icon.style--cyan.level--1 .outer .inner{background:#169aaf}.vae-markercluster--icon.style--cyan.level--2 .outer{background:#00f5f5}.vae-markercluster--icon.style--cyan.level--2 .outer .inner{background:#1592a6}.vae-markercluster--icon.style--cyan.level--3 .outer{background:#00f0f0}.vae-markercluster--icon.style--cyan.level--3 .outer .inner{background:#148a9d}.vae-markercluster--icon.style--cyan.level--4 .outer{background:#00ebeb}.vae-markercluster--icon.style--cyan.level--4 .outer .inner{background:#128294}.vae-markercluster--icon.style--cyan.level--5 .outer{background:#00e5e6}.vae-markercluster--icon.style--cyan.level--5 .outer .inner{background:#117a8b}.vae-markercluster--icon.style--cyan.level--6 .outer{background:#00e0e0}.vae-markercluster--icon.style--cyan.level--6 .outer .inner{background:#107282}.vae-markercluster--icon.style--purple.level--1 .outer{background:#64abf7}.vae-markercluster--icon.style--purple.level--1 .outer .inner{background:#5610c6}.vae-markercluster--icon.style--purple.level--2 .outer{background:#5aa6f6}.vae-markercluster--icon.style--purple.level--2 .outer .inner{background:#500fb8}.vae-markercluster--icon.style--purple.level--3 .outer{background:#51a0f6}.vae-markercluster--icon.style--purple.level--3 .outer .inner{background:#4a0eaa}.vae-markercluster--icon.style--purple.level--4 .outer{background:#479bf5}.vae-markercluster--icon.style--purple.level--4 .outer .inner{background:#430c9b}.vae-markercluster--icon.style--purple.level--5 .outer{background:#3d96f5}.vae-markercluster--icon.style--purple.level--5 .outer .inner{background:#3d0b8d}.vae-markercluster--icon.style--purple.level--6 .outer{background:#3491f4}.vae-markercluster--icon.style--purple.level--6 .outer .inner{background:#370a7f}.vae-markercluster--icon.style--pink.level--1 .outer{background:#f6b1c2}.vae-markercluster--icon.style--pink.level--1 .outer .inner{background:#e63084}.vae-markercluster--icon.style--pink.level--2 .outer{background:#f5a8bb}.vae-markercluster--icon.style--pink.level--2 .outer .inner{background:#e5237c}.vae-markercluster--icon.style--pink.level--3 .outer{background:#f49fb4}.vae-markercluster--icon.style--pink.level--3 .outer .inner{background:#de1a74}.vae-markercluster--icon.style--pink.level--4 .outer{background:#f395ac}.vae-markercluster--icon.style--pink.level--4 .outer .inner{background:#d0196d}.vae-markercluster--icon.style--pink.level--5 .outer{background:#f28ca5}.vae-markercluster--icon.style--pink.level--5 .outer .inner{background:#c21766}.vae-markercluster--icon.style--pink.level--6 .outer{background:#f1839e}.vae-markercluster--icon.style--pink.level--6 .outer .inner{background:#b5165f}.vae-markercluster--icon.style--gray.level--1 .outer{background:#babfc7}.vae-markercluster--icon.style--gray.level--1 .outer .inner{background:#595a5e}.vae-markercluster--icon.style--gray.level--2 .outer{background:#b5b9c3}.vae-markercluster--icon.style--gray.level--2 .outer .inner{background:#515356}.vae-markercluster--icon.style--gray.level--3 .outer{background:#afb4be}.vae-markercluster--icon.style--gray.level--3 .outer .inner{background:#4a4b4e}.vae-markercluster--icon.style--gray.level--4 .outer{background:#a9afba}.vae-markercluster--icon.style--gray.level--4 .outer .inner{background:#424446}.vae-markercluster--icon.style--gray.level--5 .outer{background:#a4aab5}.vae-markercluster--icon.style--gray.level--5 .outer .inner{background:#3b3c3f}.vae-markercluster--icon.style--gray.level--6 .outer{background:#9ea4b1}.vae-markercluster--icon.style--gray.level--6 .outer .inner{background:#333537}.vae-markercluster--icon.style--transparent.level--1 .outer{background:#0003}.vae-markercluster--icon.style--transparent.level--1 .outer .inner{background:#0009}.vae-markercluster--icon.style--transparent.level--2 .outer{background:#0003}.vae-markercluster--icon.style--transparent.level--2 .outer .inner{background:#0009}.vae-markercluster--icon.style--transparent.level--3 .outer{background:#0003}.vae-markercluster--icon.style--transparent.level--3 .outer .inner{background:#0009}.vae-markercluster--icon.style--transparent.level--4 .outer{background:#0003}.vae-markercluster--icon.style--transparent.level--4 .outer .inner{background:#0009}.vae-markercluster--icon.style--transparent.level--5 .outer{background:#0003}.vae-markercluster--icon.style--transparent.level--5 .outer .inner{background:#0009}.vae-markercluster--icon.style--transparent.level--6 .outer{background:#0003}.vae-markercluster--icon.style--transparent.level--6 .outer .inner{background:#0009}
@@ -0,0 +1,30 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
7
+ <meta name="viewport" content="width=device-width,initial-scale=1.0">
8
+ <link rel="icon" href="<%= BASE_URL %>favicon.ico">
9
+ <style type="text/css">
10
+ html {
11
+ width: 100%;
12
+ height: 100%;
13
+ }
14
+
15
+ body {
16
+ width: 100%;
17
+ height: 100%;
18
+ margin: 0;
19
+ padding: 0;
20
+ overflow: hidden;
21
+ }
22
+ </style>
23
+ <title>...</title>
24
+ </head>
25
+
26
+ <body>
27
+ <div id="app"></div>
28
+ </body>
29
+
30
+ </html>
@@ -0,0 +1,26 @@
1
+ import r from "leaflet";
2
+ const p = "_safeDivOverlayPatched";
3
+ function s(n) {
4
+ return !!(n && n._map && n._latlng && n._container);
5
+ }
6
+ function i(n, o) {
7
+ var u;
8
+ if (!((u = n == null ? void 0 : n.prototype) != null && u[o]))
9
+ return;
10
+ const t = `${p}_${o}`;
11
+ if (n.prototype[t])
12
+ return;
13
+ const d = n.prototype[o];
14
+ n.include({
15
+ [t]: !0,
16
+ [o](..._) {
17
+ if (s(this))
18
+ return d.apply(this, _);
19
+ }
20
+ });
21
+ }
22
+ function c(n) {
23
+ !n || n[p] || (i(n.Tooltip, "_animateZoom"), i(n.Tooltip, "_updatePosition"), i(n.Popup, "_animateZoom"), i(n.Popup, "_updatePosition"), n[p] = !0);
24
+ }
25
+ c(r);
26
+ typeof window < "u" && window.L && window.L !== r && c(window.L);
@@ -0,0 +1,30 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
7
+ <meta name="viewport" content="width=device-width,initial-scale=1.0">
8
+ <link rel="icon" href="<%= BASE_URL %>favicon.ico">
9
+ <style type="text/css">
10
+ html {
11
+ width: 100%;
12
+ height: 100%;
13
+ }
14
+
15
+ body {
16
+ width: 100%;
17
+ height: 100%;
18
+ margin: 0;
19
+ padding: 0;
20
+ overflow: hidden;
21
+ }
22
+ </style>
23
+ <title>...</title>
24
+ </head>
25
+
26
+ <body>
27
+ <div id="app"></div>
28
+ </body>
29
+
30
+ </html>
@@ -0,0 +1,91 @@
1
+ const m = {
2
+ TianDiTu: {
3
+ Normal: {
4
+ Map: "https://t{s}.tianditu.gov.cn/DataServer?T=vec_w&X={x}&Y={y}&L={z}&tk={key}",
5
+ Annotion: "https://t{s}.tianditu.gov.cn/DataServer?T=cva_w&X={x}&Y={y}&L={z}&tk={key}"
6
+ },
7
+ Satellite: {
8
+ Map: "https://t{s}.tianditu.gov.cn/DataServer?T=img_w&X={x}&Y={y}&L={z}&tk={key}",
9
+ Annotion: "https://t{s}.tianditu.gov.cn/DataServer?T=cia_w&X={x}&Y={y}&L={z}&tk={key}"
10
+ },
11
+ Terrain: {
12
+ Map: "https://t{s}.tianditu.gov.cn/DataServer?T=ter_w&X={x}&Y={y}&L={z}&tk={key}",
13
+ Annotion: "https://t{s}.tianditu.gov.cn/DataServer?T=cta_w&X={x}&Y={y}&L={z}&tk={key}"
14
+ },
15
+ Subdomains: ["0", "1", "2", "3", "4", "5", "6", "7"],
16
+ key: "1a346e3ea95a3227a097cabf11a901b7"
17
+ },
18
+ GaoDe: {
19
+ Normal: {
20
+ Map: "https://webrd0{s}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}"
21
+ },
22
+ Satellite: {
23
+ Map: "https://webst0{s}.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}",
24
+ Annotion: "https://webst0{s}.is.autonavi.com/appmaptile?style=8&x={x}&y={y}&z={z}"
25
+ },
26
+ Subdomains: ["1", "2", "3", "4"]
27
+ },
28
+ GaoDe_Mobile: {
29
+ Normal: {
30
+ Map: "https://wprd0{s}.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=7"
31
+ },
32
+ Satellite: {
33
+ Map: "https://wprd0{s}.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=6",
34
+ Annotion: "https://wprd0{s}.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=2&style=8"
35
+ },
36
+ Subdomains: ["1", "2", "3", "4"]
37
+ },
38
+ Google: {
39
+ Normal: {
40
+ Map: "https://www.google.cn/maps/vt?lyrs=m&gl=cn&x={x}&y={y}&z={z}"
41
+ },
42
+ Satellite: {
43
+ Map: "https://www.google.cn/maps/vt?lyrs=s&gl=cn&x={x}&y={y}&z={z}",
44
+ Annotion: "https://www.google.cn/maps/vt?lyrs=h&gl=cn&x={x}&y={y}&z={z}"
45
+ },
46
+ Subdomains: []
47
+ },
48
+ Geoq: {
49
+ Normal: {
50
+ Map: "https://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer/tile/{z}/{y}/{x}",
51
+ PurplishBlue: "https://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/{z}/{y}/{x}",
52
+ Gray: "https://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetGray/MapServer/tile/{z}/{y}/{x}",
53
+ Warm: "https://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetWarm/MapServer/tile/{z}/{y}/{x}"
54
+ },
55
+ Theme: {
56
+ Hydro: "https://thematic.geoq.cn/arcgis/rest/services/ThematicMaps/WorldHydroMap/MapServer/tile/{z}/{y}/{x}",
57
+ Division: "https://thematic.geoq.cn/arcgis/rest/services/ThematicMaps/administrative_division_boundaryandlabel/MapServer/tile/{z}/{y}/{x}"
58
+ },
59
+ Subdomains: []
60
+ }
61
+ };
62
+ L.TileLayer.ChinaProvider = L.TileLayer.extend({
63
+ initialize(e, i = {}) {
64
+ var n;
65
+ const [p, s] = e.split("@"), a = p.split(".");
66
+ if (a[0] && a.length == 3) {
67
+ const r = a[0], l = a[1], c = a[2], t = m[r];
68
+ if (t) {
69
+ const o = (n = t == null ? void 0 : t[l]) == null ? void 0 : n[c];
70
+ if (o)
71
+ if (t.hasOwnProperty("key") && !s)
72
+ console.error(`provider '${r}' need a key`);
73
+ else {
74
+ const y = {
75
+ maxZoom: 24,
76
+ subdomains: t.Subdomains,
77
+ key: s
78
+ };
79
+ L.TileLayer.prototype.initialize.call(this, o, L.extend(y, i));
80
+ }
81
+ else
82
+ console.error(`provider not found '${e}'`);
83
+ } else
84
+ console.error(`provider not found '${e}'`);
85
+ } else
86
+ console.error(`provider not found '${e}'`);
87
+ }
88
+ });
89
+ L.tileLayer.chinaProvider = function(e, i) {
90
+ return new L.TileLayer.ChinaProvider(e, i);
91
+ };