vue3-google-map 0.17.0 → 0.17.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.
- package/LICENSE +21 -0
- package/README.md +4 -2
- package/dist/index.cjs.js +17 -4
- package/dist/index.es.js +595 -508
- package/dist/index.umd.js +17 -4
- package/dist/types/components/CustomMarker.vue.d.ts +1 -0
- package/dist/types/components/GoogleMap.vue.d.ts +1 -1
- package/dist/types/shims-google-maps.d.ts +15 -0
- package/package.json +20 -22
package/dist/index.es.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
(function(){"use strict";try{if(typeof document<"u"){var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
import { defineComponent as
|
|
6
|
-
const
|
|
1
|
+
(function(){"use strict";try{if(typeof document<"u"){var a=document.createElement("style");a.appendChild(document.createTextNode(".mapdiv[data-v-174b771e]{width:100%;height:100%}.info-window-wrapper[data-v-45a4606d]{display:none}.mapdiv .info-window-wrapper[data-v-45a4606d]{display:inline-block}.custom-marker-wrapper[data-v-2d2d343a]{display:none}.mapdiv .custom-marker-wrapper[data-v-2d2d343a]{display:inline-block}")),document.head.appendChild(a)}}catch(d){console.error("vite-plugin-css-injected-by-js",d)}})();
|
|
2
|
+
var qe = Object.defineProperty;
|
|
3
|
+
var Be = (n, e, t) => e in n ? qe(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;
|
|
4
|
+
var se = (n, e, t) => (Be(n, typeof e != "symbol" ? e + "" : e, t), t);
|
|
5
|
+
import { defineComponent as b, ref as y, provide as G, watch as O, onMounted as Me, onBeforeUnmount as B, markRaw as S, toRef as N, openBlock as Y, createElementBlock as X, createElementVNode as ae, renderSlot as Q, normalizeProps as Ne, guardReactiveProps as Ze, inject as C, computed as J, withDirectives as De, vShow as Ue, Comment as Ee, mergeProps as Pe, createCommentVNode as Oe } from "vue";
|
|
6
|
+
const Z = Symbol("map"), D = Symbol("api"), xe = Symbol("marker"), Le = Symbol("markerCluster"), ee = Symbol("CustomMarker"), Se = Symbol("mapTilesLoaded"), q = [
|
|
7
7
|
"click",
|
|
8
8
|
"dblclick",
|
|
9
9
|
"drag",
|
|
@@ -16,18 +16,59 @@ const q = Symbol("map"), R = Symbol("api"), xe = Symbol("marker"), Ee = Symbol("
|
|
|
16
16
|
"mouseup",
|
|
17
17
|
"rightclick"
|
|
18
18
|
];
|
|
19
|
-
|
|
19
|
+
/*! *****************************************************************************
|
|
20
|
+
Copyright (c) Microsoft Corporation.
|
|
21
|
+
|
|
22
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
23
|
+
purpose with or without fee is hereby granted.
|
|
24
|
+
|
|
25
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
26
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
27
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
28
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
29
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
30
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
31
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
32
|
+
***************************************************************************** */
|
|
33
|
+
function Fe(n, e, t, s) {
|
|
34
|
+
function r(o) {
|
|
35
|
+
return o instanceof t ? o : new t(function(a) {
|
|
36
|
+
a(o);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
return new (t || (t = Promise))(function(o, a) {
|
|
40
|
+
function l(u) {
|
|
41
|
+
try {
|
|
42
|
+
h(s.next(u));
|
|
43
|
+
} catch (c) {
|
|
44
|
+
a(c);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function i(u) {
|
|
48
|
+
try {
|
|
49
|
+
h(s.throw(u));
|
|
50
|
+
} catch (c) {
|
|
51
|
+
a(c);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function h(u) {
|
|
55
|
+
u.done ? o(u.value) : r(u.value).then(l, i);
|
|
56
|
+
}
|
|
57
|
+
h((s = s.apply(n, e || [])).next());
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
var ze = function n(e, t) {
|
|
20
61
|
if (e === t)
|
|
21
62
|
return !0;
|
|
22
63
|
if (e && t && typeof e == "object" && typeof t == "object") {
|
|
23
64
|
if (e.constructor !== t.constructor)
|
|
24
65
|
return !1;
|
|
25
|
-
var s, r,
|
|
66
|
+
var s, r, o;
|
|
26
67
|
if (Array.isArray(e)) {
|
|
27
68
|
if (s = e.length, s != t.length)
|
|
28
69
|
return !1;
|
|
29
70
|
for (r = s; r-- !== 0; )
|
|
30
|
-
if (!
|
|
71
|
+
if (!n(e[r], t[r]))
|
|
31
72
|
return !1;
|
|
32
73
|
return !0;
|
|
33
74
|
}
|
|
@@ -37,22 +78,26 @@ var De = function o(e, t) {
|
|
|
37
78
|
return e.valueOf() === t.valueOf();
|
|
38
79
|
if (e.toString !== Object.prototype.toString)
|
|
39
80
|
return e.toString() === t.toString();
|
|
40
|
-
if (
|
|
81
|
+
if (o = Object.keys(e), s = o.length, s !== Object.keys(t).length)
|
|
41
82
|
return !1;
|
|
42
83
|
for (r = s; r-- !== 0; )
|
|
43
|
-
if (!Object.prototype.hasOwnProperty.call(t,
|
|
84
|
+
if (!Object.prototype.hasOwnProperty.call(t, o[r]))
|
|
44
85
|
return !1;
|
|
45
86
|
for (r = s; r-- !== 0; ) {
|
|
46
|
-
var a =
|
|
47
|
-
if (!
|
|
87
|
+
var a = o[r];
|
|
88
|
+
if (!n(e[a], t[a]))
|
|
48
89
|
return !1;
|
|
49
90
|
}
|
|
50
91
|
return !0;
|
|
51
92
|
}
|
|
52
93
|
return e !== e && t !== t;
|
|
53
94
|
};
|
|
54
|
-
const
|
|
55
|
-
|
|
95
|
+
const he = "__googleMapsScriptId";
|
|
96
|
+
var R;
|
|
97
|
+
(function(n) {
|
|
98
|
+
n[n.INITIALIZED = 0] = "INITIALIZED", n[n.LOADING = 1] = "LOADING", n[n.SUCCESS = 2] = "SUCCESS", n[n.FAILURE = 3] = "FAILURE";
|
|
99
|
+
})(R || (R = {}));
|
|
100
|
+
class A {
|
|
56
101
|
/**
|
|
57
102
|
* Creates an instance of Loader using [[LoaderOptions]]. No defaults are set
|
|
58
103
|
* using this library, instead the defaults are set by the Google Maps
|
|
@@ -62,13 +107,13 @@ class S {
|
|
|
62
107
|
* const loader = Loader({apiKey, version: 'weekly', libraries: ['places']});
|
|
63
108
|
* ```
|
|
64
109
|
*/
|
|
65
|
-
constructor({ apiKey: e,
|
|
66
|
-
if (this.
|
|
67
|
-
if (!
|
|
68
|
-
throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(
|
|
69
|
-
return
|
|
110
|
+
constructor({ apiKey: e, authReferrerPolicy: t, channel: s, client: r, id: o = he, language: a, libraries: l = [], mapIds: i, nonce: h, region: u, retries: c = 3, url: d = "https://maps.googleapis.com/maps/api/js", version: p }) {
|
|
111
|
+
if (this.callbacks = [], this.done = !1, this.loading = !1, this.errors = [], this.apiKey = e, this.authReferrerPolicy = t, this.channel = s, this.client = r, this.id = o || he, this.language = a, this.libraries = l, this.mapIds = i, this.nonce = h, this.region = u, this.retries = c, this.url = d, this.version = p, A.instance) {
|
|
112
|
+
if (!ze(this.options, A.instance.options))
|
|
113
|
+
throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(A.instance.options)}`);
|
|
114
|
+
return A.instance;
|
|
70
115
|
}
|
|
71
|
-
|
|
116
|
+
A.instance = this;
|
|
72
117
|
}
|
|
73
118
|
get options() {
|
|
74
119
|
return {
|
|
@@ -82,9 +127,13 @@ class S {
|
|
|
82
127
|
region: this.region,
|
|
83
128
|
mapIds: this.mapIds,
|
|
84
129
|
nonce: this.nonce,
|
|
85
|
-
url: this.url
|
|
130
|
+
url: this.url,
|
|
131
|
+
authReferrerPolicy: this.authReferrerPolicy
|
|
86
132
|
};
|
|
87
133
|
}
|
|
134
|
+
get status() {
|
|
135
|
+
return this.errors.length ? R.FAILURE : this.done ? R.SUCCESS : this.loading ? R.LOADING : R.INITIALIZED;
|
|
136
|
+
}
|
|
88
137
|
get failed() {
|
|
89
138
|
return this.done && !this.loading && this.errors.length >= this.retries + 1;
|
|
90
139
|
}
|
|
@@ -92,10 +141,11 @@ class S {
|
|
|
92
141
|
* CreateUrl returns the Google Maps JavaScript API script url given the [[LoaderOptions]].
|
|
93
142
|
*
|
|
94
143
|
* @ignore
|
|
144
|
+
* @deprecated
|
|
95
145
|
*/
|
|
96
146
|
createUrl() {
|
|
97
147
|
let e = this.url;
|
|
98
|
-
return e +=
|
|
148
|
+
return e += "?callback=__googleMapsCallback", this.apiKey && (e += `&key=${this.apiKey}`), this.channel && (e += `&channel=${this.channel}`), this.client && (e += `&client=${this.client}`), this.libraries.length > 0 && (e += `&libraries=${this.libraries.join(",")}`), this.language && (e += `&language=${this.language}`), this.region && (e += `®ion=${this.region}`), this.version && (e += `&v=${this.version}`), this.mapIds && (e += `&map_ids=${this.mapIds.join(",")}`), this.authReferrerPolicy && (e += `&auth_referrer_policy=${this.authReferrerPolicy}`), e;
|
|
99
149
|
}
|
|
100
150
|
deleteScript() {
|
|
101
151
|
const e = document.getElementById(this.id);
|
|
@@ -103,6 +153,7 @@ class S {
|
|
|
103
153
|
}
|
|
104
154
|
/**
|
|
105
155
|
* Load the Google Maps JavaScript API script and return a Promise.
|
|
156
|
+
* @deprecated, use importLibrary() instead.
|
|
106
157
|
*/
|
|
107
158
|
load() {
|
|
108
159
|
return this.loadPromise();
|
|
@@ -111,6 +162,7 @@ class S {
|
|
|
111
162
|
* Load the Google Maps JavaScript API script and return a Promise.
|
|
112
163
|
*
|
|
113
164
|
* @ignore
|
|
165
|
+
* @deprecated, use importLibrary() instead.
|
|
114
166
|
*/
|
|
115
167
|
loadPromise() {
|
|
116
168
|
return new Promise((e, t) => {
|
|
@@ -119,8 +171,12 @@ class S {
|
|
|
119
171
|
});
|
|
120
172
|
});
|
|
121
173
|
}
|
|
174
|
+
importLibrary(e) {
|
|
175
|
+
return this.execute(), google.maps.importLibrary(e);
|
|
176
|
+
}
|
|
122
177
|
/**
|
|
123
178
|
* Load the Google Maps JavaScript API script with a callback.
|
|
179
|
+
* @deprecated, use importLibrary() instead.
|
|
124
180
|
*/
|
|
125
181
|
loadCallback(e) {
|
|
126
182
|
this.callbacks.push(e), this.execute();
|
|
@@ -129,12 +185,45 @@ class S {
|
|
|
129
185
|
* Set the script on document.
|
|
130
186
|
*/
|
|
131
187
|
setScript() {
|
|
188
|
+
var e, t;
|
|
132
189
|
if (document.getElementById(this.id)) {
|
|
133
190
|
this.callback();
|
|
134
191
|
return;
|
|
135
192
|
}
|
|
136
|
-
const
|
|
137
|
-
|
|
193
|
+
const s = {
|
|
194
|
+
key: this.apiKey,
|
|
195
|
+
channel: this.channel,
|
|
196
|
+
client: this.client,
|
|
197
|
+
libraries: this.libraries.length && this.libraries,
|
|
198
|
+
v: this.version,
|
|
199
|
+
mapIds: this.mapIds,
|
|
200
|
+
language: this.language,
|
|
201
|
+
region: this.region,
|
|
202
|
+
authReferrerPolicy: this.authReferrerPolicy
|
|
203
|
+
};
|
|
204
|
+
Object.keys(s).forEach(
|
|
205
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
206
|
+
(o) => !s[o] && delete s[o]
|
|
207
|
+
), !((t = (e = window == null ? void 0 : window.google) === null || e === void 0 ? void 0 : e.maps) === null || t === void 0) && t.importLibrary || ((o) => {
|
|
208
|
+
let a, l, i, h = "The Google Maps JavaScript API", u = "google", c = "importLibrary", d = "__ib__", p = document, f = window;
|
|
209
|
+
f = f[u] || (f[u] = {});
|
|
210
|
+
const m = f.maps || (f.maps = {}), g = /* @__PURE__ */ new Set(), v = new URLSearchParams(), w = () => (
|
|
211
|
+
// @ts-ignore
|
|
212
|
+
a || (a = new Promise((_, M) => Fe(this, void 0, void 0, function* () {
|
|
213
|
+
var P;
|
|
214
|
+
yield l = p.createElement("script"), l.id = this.id, v.set("libraries", [...g] + "");
|
|
215
|
+
for (i in o)
|
|
216
|
+
v.set(i.replace(/[A-Z]/g, ($) => "_" + $[0].toLowerCase()), o[i]);
|
|
217
|
+
v.set("callback", u + ".maps." + d), l.src = this.url + "?" + v, m[d] = _, l.onerror = () => a = M(Error(h + " could not load.")), l.nonce = this.nonce || ((P = p.querySelector("script[nonce]")) === null || P === void 0 ? void 0 : P.nonce) || "", p.head.append(l);
|
|
218
|
+
})))
|
|
219
|
+
);
|
|
220
|
+
m[c] ? console.warn(h + " only loads once. Ignoring:", o) : m[c] = (_, ...M) => g.add(_) && w().then(() => m[c](_, ...M));
|
|
221
|
+
})(s);
|
|
222
|
+
const r = this.libraries.map((o) => this.importLibrary(o));
|
|
223
|
+
r.length || r.push(this.importLibrary("core")), Promise.all(r).then(() => this.callback(), (o) => {
|
|
224
|
+
const a = new ErrorEvent("error", { error: o });
|
|
225
|
+
this.loadErrorCallback(a);
|
|
226
|
+
});
|
|
138
227
|
}
|
|
139
228
|
/**
|
|
140
229
|
* Reset the loader state.
|
|
@@ -148,15 +237,12 @@ class S {
|
|
|
148
237
|
loadErrorCallback(e) {
|
|
149
238
|
if (this.errors.push(e), this.errors.length <= this.retries) {
|
|
150
239
|
const t = this.errors.length * Math.pow(2, this.errors.length);
|
|
151
|
-
console.
|
|
240
|
+
console.error(`Failed to load Google Maps script, retrying in ${t} ms.`), setTimeout(() => {
|
|
152
241
|
this.deleteScript(), this.setScript();
|
|
153
242
|
}, t);
|
|
154
243
|
} else
|
|
155
244
|
this.onerrorEvent = e, this.callback();
|
|
156
245
|
}
|
|
157
|
-
setCallback() {
|
|
158
|
-
window.__googleMapsCallback = this.callback.bind(this);
|
|
159
|
-
}
|
|
160
246
|
callback() {
|
|
161
247
|
this.done = !0, this.loading = !1, this.callbacks.forEach((e) => {
|
|
162
248
|
e(this.onerrorEvent);
|
|
@@ -170,21 +256,21 @@ class S {
|
|
|
170
256
|
console.warn("Google Maps already loaded outside @googlemaps/js-api-loader.This may result in undesirable behavior as options and script parameters may not match."), this.callback();
|
|
171
257
|
return;
|
|
172
258
|
}
|
|
173
|
-
this.loading || (this.loading = !0, this.
|
|
259
|
+
this.loading || (this.loading = !0, this.setScript());
|
|
174
260
|
}
|
|
175
261
|
}
|
|
176
262
|
}
|
|
177
|
-
function
|
|
178
|
-
return class extends
|
|
263
|
+
function Ve(n) {
|
|
264
|
+
return class extends n.OverlayView {
|
|
179
265
|
constructor(s) {
|
|
180
266
|
super();
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
const { element: r, ...
|
|
184
|
-
this.element = r, this.opts =
|
|
267
|
+
se(this, "element");
|
|
268
|
+
se(this, "opts");
|
|
269
|
+
const { element: r, ...o } = s;
|
|
270
|
+
this.element = r, this.opts = o, this.opts.map && this.setMap(this.opts.map);
|
|
185
271
|
}
|
|
186
272
|
getPosition() {
|
|
187
|
-
return this.opts.position ? this.opts.position instanceof
|
|
273
|
+
return this.opts.position ? this.opts.position instanceof n.LatLng ? this.opts.position : new n.LatLng(this.opts.position) : null;
|
|
188
274
|
}
|
|
189
275
|
getVisible() {
|
|
190
276
|
if (!this.element)
|
|
@@ -201,52 +287,53 @@ function Ue(o) {
|
|
|
201
287
|
draw() {
|
|
202
288
|
if (!this.element)
|
|
203
289
|
return;
|
|
204
|
-
const
|
|
290
|
+
const s = this.getProjection(), r = s == null ? void 0 : s.fromLatLngToDivPixel(this.getPosition());
|
|
205
291
|
if (r) {
|
|
206
292
|
this.element.style.position = "absolute";
|
|
207
|
-
const
|
|
208
|
-
let
|
|
293
|
+
const o = this.element.offsetHeight, a = this.element.offsetWidth;
|
|
294
|
+
let l, i;
|
|
209
295
|
switch (this.opts.anchorPoint) {
|
|
210
296
|
case "TOP_CENTER":
|
|
211
|
-
|
|
297
|
+
l = r.x - a / 2, i = r.y;
|
|
212
298
|
break;
|
|
213
299
|
case "BOTTOM_CENTER":
|
|
214
|
-
|
|
300
|
+
l = r.x - a / 2, i = r.y - o;
|
|
215
301
|
break;
|
|
216
302
|
case "LEFT_CENTER":
|
|
217
|
-
|
|
303
|
+
l = r.x, i = r.y - o / 2;
|
|
218
304
|
break;
|
|
219
305
|
case "RIGHT_CENTER":
|
|
220
|
-
|
|
306
|
+
l = r.x - a, i = r.y - o / 2;
|
|
221
307
|
break;
|
|
222
308
|
case "TOP_LEFT":
|
|
223
|
-
|
|
309
|
+
l = r.x, i = r.y;
|
|
224
310
|
break;
|
|
225
311
|
case "TOP_RIGHT":
|
|
226
|
-
|
|
312
|
+
l = r.x - a, i = r.y;
|
|
227
313
|
break;
|
|
228
314
|
case "BOTTOM_LEFT":
|
|
229
|
-
|
|
315
|
+
l = r.x, i = r.y - o;
|
|
230
316
|
break;
|
|
231
317
|
case "BOTTOM_RIGHT":
|
|
232
|
-
|
|
318
|
+
l = r.x - a, i = r.y - o;
|
|
233
319
|
break;
|
|
234
320
|
default:
|
|
235
|
-
|
|
321
|
+
l = r.x - a / 2, i = r.y - o / 2;
|
|
236
322
|
}
|
|
237
|
-
this.element.style.left =
|
|
323
|
+
this.element.style.left = l + "px", this.element.style.top = i + "px", this.element.style.transform = `translateX(${this.opts.offsetX || 0}px) translateY(${this.opts.offsetY || 0}px)`, this.opts.zIndex && (this.element.style.zIndex = this.opts.zIndex.toString());
|
|
238
324
|
}
|
|
239
325
|
}
|
|
240
326
|
onRemove() {
|
|
241
327
|
this.element && this.element.remove();
|
|
242
328
|
}
|
|
243
329
|
setOptions(s) {
|
|
244
|
-
|
|
330
|
+
const { element: r, ...o } = s;
|
|
331
|
+
this.element = r, this.opts = o, this.draw();
|
|
245
332
|
}
|
|
246
333
|
};
|
|
247
334
|
}
|
|
248
335
|
let de;
|
|
249
|
-
const
|
|
336
|
+
const pe = [
|
|
250
337
|
"bounds_changed",
|
|
251
338
|
"center_changed",
|
|
252
339
|
"click",
|
|
@@ -266,7 +353,7 @@ const he = [
|
|
|
266
353
|
"tilesloaded",
|
|
267
354
|
"tilt_changed",
|
|
268
355
|
"zoom_changed"
|
|
269
|
-
],
|
|
356
|
+
], Ge = b({
|
|
270
357
|
props: {
|
|
271
358
|
apiPromise: {
|
|
272
359
|
type: Promise
|
|
@@ -454,104 +541,104 @@ const he = [
|
|
|
454
541
|
required: !1
|
|
455
542
|
}
|
|
456
543
|
},
|
|
457
|
-
emits:
|
|
458
|
-
setup(
|
|
459
|
-
const t =
|
|
460
|
-
|
|
461
|
-
const
|
|
462
|
-
const
|
|
463
|
-
Object.keys(
|
|
464
|
-
|
|
544
|
+
emits: pe,
|
|
545
|
+
setup(n, { emit: e }) {
|
|
546
|
+
const t = y(), s = y(!1), r = y(), o = y(), a = y(!1);
|
|
547
|
+
G(Z, r), G(D, o), G(Se, a);
|
|
548
|
+
const l = () => {
|
|
549
|
+
const c = { ...n };
|
|
550
|
+
Object.keys(c).forEach((m) => {
|
|
551
|
+
c[m] === void 0 && delete c[m];
|
|
465
552
|
});
|
|
466
553
|
const p = (m) => {
|
|
467
554
|
var g;
|
|
468
|
-
return m ? { position: (g =
|
|
555
|
+
return m ? { position: (g = o.value) == null ? void 0 : g.ControlPosition[m] } : {};
|
|
469
556
|
}, f = {
|
|
470
|
-
scaleControlOptions:
|
|
471
|
-
panControlOptions: p(
|
|
472
|
-
zoomControlOptions: p(
|
|
473
|
-
rotateControlOptions: p(
|
|
474
|
-
streetViewControlOptions: p(
|
|
475
|
-
fullscreenControlOptions: p(
|
|
476
|
-
disableDefaultUI:
|
|
557
|
+
scaleControlOptions: n.scaleControlStyle ? { style: n.scaleControlStyle } : {},
|
|
558
|
+
panControlOptions: p(n.panControlPosition),
|
|
559
|
+
zoomControlOptions: p(n.zoomControlPosition),
|
|
560
|
+
rotateControlOptions: p(n.rotateControlPosition),
|
|
561
|
+
streetViewControlOptions: p(n.streetViewControlPosition),
|
|
562
|
+
fullscreenControlOptions: p(n.fullscreenControlPosition),
|
|
563
|
+
disableDefaultUI: n.disableDefaultUi
|
|
477
564
|
};
|
|
478
|
-
return { ...
|
|
565
|
+
return { ...c, ...f };
|
|
479
566
|
}, i = O(
|
|
480
|
-
[
|
|
481
|
-
([
|
|
482
|
-
const p =
|
|
567
|
+
[o, r],
|
|
568
|
+
([c, d]) => {
|
|
569
|
+
const p = c, f = d;
|
|
483
570
|
p && f && (p.event.addListenerOnce(f, "tilesloaded", () => {
|
|
484
571
|
a.value = !0;
|
|
485
572
|
}), setTimeout(i, 0));
|
|
486
573
|
},
|
|
487
574
|
{ immediate: !0 }
|
|
488
|
-
),
|
|
575
|
+
), h = () => {
|
|
489
576
|
try {
|
|
490
|
-
const { apiKey:
|
|
491
|
-
de = new
|
|
492
|
-
} catch (
|
|
493
|
-
console.error(
|
|
577
|
+
const { apiKey: c, region: d, version: p, language: f, libraries: m } = n;
|
|
578
|
+
de = new A({ apiKey: c, region: d, version: p, language: f, libraries: m });
|
|
579
|
+
} catch (c) {
|
|
580
|
+
console.error(c);
|
|
494
581
|
}
|
|
495
|
-
}, u = (
|
|
496
|
-
|
|
497
|
-
const
|
|
498
|
-
|
|
582
|
+
}, u = (c) => {
|
|
583
|
+
o.value = S(c.maps), r.value = S(new c.maps.Map(t.value, l()));
|
|
584
|
+
const d = Ve(o.value);
|
|
585
|
+
o.value[ee] = d, pe.forEach((f) => {
|
|
499
586
|
var m;
|
|
500
587
|
(m = r.value) == null || m.addListener(f, (g) => e(f, g));
|
|
501
588
|
}), s.value = !0;
|
|
502
|
-
const p = Object.keys(
|
|
589
|
+
const p = Object.keys(n).filter(
|
|
503
590
|
(f) => !["apiPromise", "apiKey", "version", "libraries", "region", "language", "center", "zoom"].includes(f)
|
|
504
|
-
).map((f) =>
|
|
591
|
+
).map((f) => N(n, f));
|
|
505
592
|
O(
|
|
506
|
-
[() =>
|
|
507
|
-
([f, m], [g,
|
|
508
|
-
var
|
|
509
|
-
const { center: w, zoom:
|
|
510
|
-
(
|
|
511
|
-
const
|
|
512
|
-
f &&
|
|
593
|
+
[() => n.center, () => n.zoom, ...p],
|
|
594
|
+
([f, m], [g, v]) => {
|
|
595
|
+
var $, E, F;
|
|
596
|
+
const { center: w, zoom: _, ...M } = l();
|
|
597
|
+
($ = r.value) == null || $.setOptions(M), m !== void 0 && m !== v && ((E = r.value) == null || E.setZoom(m));
|
|
598
|
+
const P = !g || f.lng !== g.lng || f.lat !== g.lat;
|
|
599
|
+
f && P && ((F = r.value) == null || F.panTo(f));
|
|
513
600
|
}
|
|
514
601
|
);
|
|
515
602
|
};
|
|
516
603
|
return Me(() => {
|
|
517
|
-
|
|
518
|
-
}),
|
|
519
|
-
var
|
|
520
|
-
a.value = !1, r.value && ((
|
|
521
|
-
}), { mapRef: t, ready: s, map: r, api:
|
|
604
|
+
n.apiPromise && n.apiPromise instanceof Promise ? n.apiPromise.then(u) : (h(), de.load().then(u));
|
|
605
|
+
}), B(() => {
|
|
606
|
+
var c;
|
|
607
|
+
a.value = !1, r.value && ((c = o.value) == null || c.event.clearInstanceListeners(r.value));
|
|
608
|
+
}), { mapRef: t, ready: s, map: r, api: o, mapTilesLoaded: a };
|
|
522
609
|
}
|
|
523
610
|
});
|
|
524
|
-
const
|
|
525
|
-
const t =
|
|
611
|
+
const te = (n, e) => {
|
|
612
|
+
const t = n.__vccOpts || n;
|
|
526
613
|
for (const [s, r] of e)
|
|
527
614
|
t[s] = r;
|
|
528
615
|
return t;
|
|
529
|
-
},
|
|
616
|
+
}, He = {
|
|
530
617
|
ref: "mapRef",
|
|
531
618
|
class: "mapdiv"
|
|
532
619
|
};
|
|
533
|
-
function
|
|
534
|
-
return
|
|
535
|
-
|
|
536
|
-
|
|
620
|
+
function We(n, e, t, s, r, o) {
|
|
621
|
+
return Y(), X("div", null, [
|
|
622
|
+
ae("div", He, null, 512),
|
|
623
|
+
Q(n.$slots, "default", Ne(Ze({ ready: n.ready, map: n.map, api: n.api, mapTilesLoaded: n.mapTilesLoaded })), void 0, !0)
|
|
537
624
|
]);
|
|
538
625
|
}
|
|
539
|
-
const Ot = /* @__PURE__ */
|
|
540
|
-
function
|
|
541
|
-
return
|
|
626
|
+
const Ot = /* @__PURE__ */ te(Ge, [["render", We], ["__scopeId", "data-v-174b771e"]]);
|
|
627
|
+
function Ke(n) {
|
|
628
|
+
return n && n.__esModule && Object.prototype.hasOwnProperty.call(n, "default") ? n.default : n;
|
|
542
629
|
}
|
|
543
|
-
var
|
|
630
|
+
var Je = function n(e, t) {
|
|
544
631
|
if (e === t)
|
|
545
632
|
return !0;
|
|
546
633
|
if (e && t && typeof e == "object" && typeof t == "object") {
|
|
547
634
|
if (e.constructor !== t.constructor)
|
|
548
635
|
return !1;
|
|
549
|
-
var s, r,
|
|
636
|
+
var s, r, o;
|
|
550
637
|
if (Array.isArray(e)) {
|
|
551
638
|
if (s = e.length, s != t.length)
|
|
552
639
|
return !1;
|
|
553
640
|
for (r = s; r-- !== 0; )
|
|
554
|
-
if (!
|
|
641
|
+
if (!n(e[r], t[r]))
|
|
555
642
|
return !1;
|
|
556
643
|
return !0;
|
|
557
644
|
}
|
|
@@ -561,51 +648,51 @@ var We = function o(e, t) {
|
|
|
561
648
|
return e.valueOf() === t.valueOf();
|
|
562
649
|
if (e.toString !== Object.prototype.toString)
|
|
563
650
|
return e.toString() === t.toString();
|
|
564
|
-
if (
|
|
651
|
+
if (o = Object.keys(e), s = o.length, s !== Object.keys(t).length)
|
|
565
652
|
return !1;
|
|
566
653
|
for (r = s; r-- !== 0; )
|
|
567
|
-
if (!Object.prototype.hasOwnProperty.call(t,
|
|
654
|
+
if (!Object.prototype.hasOwnProperty.call(t, o[r]))
|
|
568
655
|
return !1;
|
|
569
656
|
for (r = s; r-- !== 0; ) {
|
|
570
|
-
var a =
|
|
571
|
-
if (!
|
|
657
|
+
var a = o[r];
|
|
658
|
+
if (!n(e[a], t[a]))
|
|
572
659
|
return !1;
|
|
573
660
|
}
|
|
574
661
|
return !0;
|
|
575
662
|
}
|
|
576
663
|
return e !== e && t !== t;
|
|
577
664
|
};
|
|
578
|
-
const
|
|
579
|
-
const r =
|
|
580
|
-
() => !!(
|
|
665
|
+
const T = /* @__PURE__ */ Ke(Je), Ye = (n) => n === "Marker", Xe = (n) => n === ee, U = (n, e, t, s) => {
|
|
666
|
+
const r = y(), o = C(Z, y()), a = C(D, y()), l = C(Le, y()), i = J(
|
|
667
|
+
() => !!(l.value && a.value && (r.value instanceof a.value.Marker || r.value instanceof a.value[ee]))
|
|
581
668
|
);
|
|
582
669
|
return O(
|
|
583
|
-
[
|
|
584
|
-
(
|
|
670
|
+
[o, t],
|
|
671
|
+
(h, [u, c]) => {
|
|
585
672
|
var p, f, m;
|
|
586
|
-
const
|
|
587
|
-
!
|
|
588
|
-
new a.value[
|
|
589
|
-
) :
|
|
590
|
-
new a.value[
|
|
591
|
-
) : r.value =
|
|
592
|
-
new a.value[
|
|
673
|
+
const d = !T(t.value, c) || o.value !== u;
|
|
674
|
+
!o.value || !a.value || !d || (r.value ? (r.value.setOptions(t.value), i.value && ((p = l.value) == null || p.removeMarker(r.value), (f = l.value) == null || f.addMarker(r.value))) : (Ye(n) ? r.value = S(
|
|
675
|
+
new a.value[n](t.value)
|
|
676
|
+
) : Xe(n) ? r.value = S(
|
|
677
|
+
new a.value[n](t.value)
|
|
678
|
+
) : r.value = S(
|
|
679
|
+
new a.value[n]({
|
|
593
680
|
...t.value,
|
|
594
|
-
map:
|
|
681
|
+
map: o.value
|
|
595
682
|
})
|
|
596
|
-
), i.value ? (m =
|
|
597
|
-
var
|
|
598
|
-
(
|
|
683
|
+
), i.value ? (m = l.value) == null || m.addMarker(r.value) : r.value.setMap(o.value), e.forEach((g) => {
|
|
684
|
+
var v;
|
|
685
|
+
(v = r.value) == null || v.addListener(g, (w) => s(g, w));
|
|
599
686
|
})));
|
|
600
687
|
},
|
|
601
688
|
{
|
|
602
689
|
immediate: !0
|
|
603
690
|
}
|
|
604
|
-
),
|
|
605
|
-
var
|
|
606
|
-
r.value && ((
|
|
691
|
+
), B(() => {
|
|
692
|
+
var h, u;
|
|
693
|
+
r.value && ((h = a.value) == null || h.event.clearInstanceListeners(r.value), i.value ? (u = l.value) == null || u.removeMarker(r.value) : r.value.setMap(null));
|
|
607
694
|
}), r;
|
|
608
|
-
},
|
|
695
|
+
}, fe = [
|
|
609
696
|
"animation_changed",
|
|
610
697
|
"click",
|
|
611
698
|
"dblclick",
|
|
@@ -629,7 +716,7 @@ const A = /* @__PURE__ */ He(We), Ke = (o) => o === "Marker", Je = (o) => o ===
|
|
|
629
716
|
"shape_changed",
|
|
630
717
|
"title_changed",
|
|
631
718
|
"visible_changed"
|
|
632
|
-
],
|
|
719
|
+
], xt = b({
|
|
633
720
|
name: "Marker",
|
|
634
721
|
props: {
|
|
635
722
|
options: {
|
|
@@ -637,15 +724,15 @@ const A = /* @__PURE__ */ He(We), Ke = (o) => o === "Marker", Je = (o) => o ===
|
|
|
637
724
|
required: !0
|
|
638
725
|
}
|
|
639
726
|
},
|
|
640
|
-
emits:
|
|
641
|
-
setup(
|
|
642
|
-
const r =
|
|
643
|
-
return
|
|
727
|
+
emits: fe,
|
|
728
|
+
setup(n, { emit: e, expose: t, slots: s }) {
|
|
729
|
+
const r = N(n, "options"), o = U("Marker", fe, r, e);
|
|
730
|
+
return G(xe, o), t({ marker: o }), () => {
|
|
644
731
|
var a;
|
|
645
732
|
return (a = s.default) == null ? void 0 : a.call(s);
|
|
646
733
|
};
|
|
647
734
|
}
|
|
648
|
-
}),
|
|
735
|
+
}), Lt = b({
|
|
649
736
|
name: "Polyline",
|
|
650
737
|
props: {
|
|
651
738
|
options: {
|
|
@@ -653,13 +740,13 @@ const A = /* @__PURE__ */ He(We), Ke = (o) => o === "Marker", Je = (o) => o ===
|
|
|
653
740
|
required: !0
|
|
654
741
|
}
|
|
655
742
|
},
|
|
656
|
-
emits:
|
|
657
|
-
setup(
|
|
658
|
-
const t =
|
|
659
|
-
return { polyline:
|
|
743
|
+
emits: q,
|
|
744
|
+
setup(n, { emit: e }) {
|
|
745
|
+
const t = N(n, "options");
|
|
746
|
+
return { polyline: U("Polyline", q, t, e) };
|
|
660
747
|
},
|
|
661
748
|
render: () => null
|
|
662
|
-
}),
|
|
749
|
+
}), St = b({
|
|
663
750
|
name: "Polygon",
|
|
664
751
|
props: {
|
|
665
752
|
options: {
|
|
@@ -667,13 +754,13 @@ const A = /* @__PURE__ */ He(We), Ke = (o) => o === "Marker", Je = (o) => o ===
|
|
|
667
754
|
required: !0
|
|
668
755
|
}
|
|
669
756
|
},
|
|
670
|
-
emits:
|
|
671
|
-
setup(
|
|
672
|
-
const t =
|
|
673
|
-
return { polygon:
|
|
757
|
+
emits: q,
|
|
758
|
+
setup(n, { emit: e }) {
|
|
759
|
+
const t = N(n, "options");
|
|
760
|
+
return { polygon: U("Polygon", q, t, e) };
|
|
674
761
|
},
|
|
675
762
|
render: () => null
|
|
676
|
-
}),
|
|
763
|
+
}), me = q.concat(["bounds_changed"]), It = b({
|
|
677
764
|
name: "Rectangle",
|
|
678
765
|
props: {
|
|
679
766
|
options: {
|
|
@@ -681,13 +768,13 @@ const A = /* @__PURE__ */ He(We), Ke = (o) => o === "Marker", Je = (o) => o ===
|
|
|
681
768
|
required: !0
|
|
682
769
|
}
|
|
683
770
|
},
|
|
684
|
-
emits:
|
|
685
|
-
setup(
|
|
686
|
-
const t =
|
|
687
|
-
return { rectangle:
|
|
771
|
+
emits: me,
|
|
772
|
+
setup(n, { emit: e }) {
|
|
773
|
+
const t = N(n, "options");
|
|
774
|
+
return { rectangle: U("Rectangle", me, t, e) };
|
|
688
775
|
},
|
|
689
776
|
render: () => null
|
|
690
|
-
}),
|
|
777
|
+
}), ge = q.concat(["center_changed", "radius_changed"]), At = b({
|
|
691
778
|
name: "Circle",
|
|
692
779
|
props: {
|
|
693
780
|
options: {
|
|
@@ -695,13 +782,13 @@ const A = /* @__PURE__ */ He(We), Ke = (o) => o === "Marker", Je = (o) => o ===
|
|
|
695
782
|
required: !0
|
|
696
783
|
}
|
|
697
784
|
},
|
|
698
|
-
emits:
|
|
699
|
-
setup(
|
|
700
|
-
const t =
|
|
701
|
-
return { circle:
|
|
785
|
+
emits: ge,
|
|
786
|
+
setup(n, { emit: e }) {
|
|
787
|
+
const t = N(n, "options");
|
|
788
|
+
return { circle: U("Circle", ge, t, e) };
|
|
702
789
|
},
|
|
703
790
|
render: () => null
|
|
704
|
-
}),
|
|
791
|
+
}), Qe = b({
|
|
705
792
|
props: {
|
|
706
793
|
position: {
|
|
707
794
|
type: String,
|
|
@@ -713,48 +800,48 @@ const A = /* @__PURE__ */ He(We), Ke = (o) => o === "Marker", Je = (o) => o ===
|
|
|
713
800
|
}
|
|
714
801
|
},
|
|
715
802
|
emits: ["content:loaded"],
|
|
716
|
-
setup(
|
|
717
|
-
const t =
|
|
718
|
-
[
|
|
719
|
-
([u,
|
|
720
|
-
|
|
803
|
+
setup(n, { emit: e }) {
|
|
804
|
+
const t = y(null), s = C(Z, y()), r = C(D, y()), o = C(Se, y(!1)), a = y(!1), l = O(
|
|
805
|
+
[o, r, t],
|
|
806
|
+
([u, c, d]) => {
|
|
807
|
+
c && u && d && (i(n.position), a.value = !0, e("content:loaded"), setTimeout(l, 0));
|
|
721
808
|
},
|
|
722
809
|
{ immediate: !0 }
|
|
723
810
|
), i = (u) => {
|
|
724
811
|
if (s.value && r.value && t.value) {
|
|
725
|
-
const
|
|
726
|
-
s.value.controls[
|
|
812
|
+
const c = r.value.ControlPosition[u];
|
|
813
|
+
s.value.controls[c].push(t.value);
|
|
727
814
|
}
|
|
728
|
-
},
|
|
815
|
+
}, h = (u) => {
|
|
729
816
|
if (s.value && r.value) {
|
|
730
|
-
let
|
|
731
|
-
const
|
|
732
|
-
s.value.controls[
|
|
733
|
-
p === t.value && (
|
|
734
|
-
}),
|
|
817
|
+
let c = null;
|
|
818
|
+
const d = r.value.ControlPosition[u];
|
|
819
|
+
s.value.controls[d].forEach((p, f) => {
|
|
820
|
+
p === t.value && (c = f);
|
|
821
|
+
}), c !== null && s.value.controls[d].removeAt(c);
|
|
735
822
|
}
|
|
736
823
|
};
|
|
737
|
-
return
|
|
738
|
-
() =>
|
|
739
|
-
(u,
|
|
740
|
-
|
|
824
|
+
return B(() => h(n.position)), O(
|
|
825
|
+
() => n.position,
|
|
826
|
+
(u, c) => {
|
|
827
|
+
h(c), i(u);
|
|
741
828
|
}
|
|
742
829
|
), O(
|
|
743
|
-
() =>
|
|
830
|
+
() => n.index,
|
|
744
831
|
(u) => {
|
|
745
|
-
u && t.value && (t.value.index =
|
|
832
|
+
u && t.value && (t.value.index = n.index);
|
|
746
833
|
}
|
|
747
834
|
), { controlRef: t, showContent: a };
|
|
748
835
|
}
|
|
749
|
-
}),
|
|
750
|
-
function
|
|
751
|
-
return
|
|
752
|
-
|
|
836
|
+
}), et = { ref: "controlRef" };
|
|
837
|
+
function tt(n, e, t, s, r, o) {
|
|
838
|
+
return De((Y(), X("div", et, [
|
|
839
|
+
Q(n.$slots, "default")
|
|
753
840
|
], 512)), [
|
|
754
|
-
[
|
|
841
|
+
[Ue, n.showContent]
|
|
755
842
|
]);
|
|
756
843
|
}
|
|
757
|
-
const
|
|
844
|
+
const Tt = /* @__PURE__ */ te(Qe, [["render", tt]]), ve = ["closeclick", "content_changed", "domready", "position_changed", "visible", "zindex_changed"], st = b({
|
|
758
845
|
inheritAttrs: !1,
|
|
759
846
|
props: {
|
|
760
847
|
options: {
|
|
@@ -762,62 +849,62 @@ const At = /* @__PURE__ */ ee(Ye, [["render", Qe]]), ge = ["closeclick", "conten
|
|
|
762
849
|
default: () => ({})
|
|
763
850
|
}
|
|
764
851
|
},
|
|
765
|
-
emits:
|
|
766
|
-
setup(
|
|
767
|
-
const r =
|
|
768
|
-
let
|
|
769
|
-
const u =
|
|
852
|
+
emits: ve,
|
|
853
|
+
setup(n, { slots: e, emit: t, expose: s }) {
|
|
854
|
+
const r = y(), o = y(), a = C(Z, y()), l = C(D, y()), i = C(xe, y());
|
|
855
|
+
let h;
|
|
856
|
+
const u = J(() => {
|
|
770
857
|
var p;
|
|
771
|
-
return (p = e.default) == null ? void 0 : p.call(e).some((f) => f.type !==
|
|
772
|
-
}),
|
|
858
|
+
return (p = e.default) == null ? void 0 : p.call(e).some((f) => f.type !== Ee);
|
|
859
|
+
}), c = (p) => {
|
|
773
860
|
var f;
|
|
774
861
|
return (f = r.value) == null ? void 0 : f.open({ map: a.value, anchor: i.value, ...p });
|
|
775
|
-
},
|
|
862
|
+
}, d = () => {
|
|
776
863
|
var p;
|
|
777
864
|
return (p = r.value) == null ? void 0 : p.close();
|
|
778
865
|
};
|
|
779
866
|
return Me(() => {
|
|
780
867
|
O(
|
|
781
|
-
[a, () =>
|
|
868
|
+
[a, () => n.options],
|
|
782
869
|
([p, f], [m, g]) => {
|
|
783
|
-
const
|
|
784
|
-
a.value &&
|
|
870
|
+
const v = !T(f, g) || a.value !== m;
|
|
871
|
+
a.value && l.value && v && (r.value ? (r.value.setOptions({
|
|
785
872
|
...f,
|
|
786
|
-
content: u.value ?
|
|
787
|
-
}), i.value ||
|
|
788
|
-
new
|
|
873
|
+
content: u.value ? o.value : f.content
|
|
874
|
+
}), i.value || c()) : (r.value = S(
|
|
875
|
+
new l.value.InfoWindow({
|
|
789
876
|
...f,
|
|
790
|
-
content: u.value ?
|
|
877
|
+
content: u.value ? o.value : f.content
|
|
791
878
|
})
|
|
792
|
-
), i.value ?
|
|
793
|
-
|
|
794
|
-
}) :
|
|
795
|
-
var
|
|
796
|
-
(
|
|
879
|
+
), i.value ? h = i.value.addListener("click", () => {
|
|
880
|
+
c();
|
|
881
|
+
}) : c(), ve.forEach((w) => {
|
|
882
|
+
var _;
|
|
883
|
+
(_ = r.value) == null || _.addListener(w, (M) => t(w, M));
|
|
797
884
|
})));
|
|
798
885
|
},
|
|
799
886
|
{
|
|
800
887
|
immediate: !0
|
|
801
888
|
}
|
|
802
889
|
);
|
|
803
|
-
}),
|
|
890
|
+
}), B(() => {
|
|
804
891
|
var p;
|
|
805
|
-
|
|
806
|
-
}), s({ infoWindow: r, open:
|
|
892
|
+
h && h.remove(), r.value && ((p = l.value) == null || p.event.clearInstanceListeners(r.value), d());
|
|
893
|
+
}), s({ infoWindow: r, open: c, close: d }), { infoWindow: r, infoWindowRef: o, hasSlotContent: u, open: c, close: d };
|
|
807
894
|
}
|
|
808
895
|
});
|
|
809
|
-
const
|
|
896
|
+
const rt = {
|
|
810
897
|
key: 0,
|
|
811
898
|
class: "info-window-wrapper"
|
|
812
899
|
};
|
|
813
|
-
function
|
|
814
|
-
return
|
|
815
|
-
|
|
816
|
-
|
|
900
|
+
function nt(n, e, t, s, r, o) {
|
|
901
|
+
return n.hasSlotContent ? (Y(), X("div", rt, [
|
|
902
|
+
ae("div", Pe({ ref: "infoWindowRef" }, n.$attrs), [
|
|
903
|
+
Q(n.$slots, "default", {}, void 0, !0)
|
|
817
904
|
], 16)
|
|
818
|
-
])) :
|
|
905
|
+
])) : Oe("", !0);
|
|
819
906
|
}
|
|
820
|
-
const
|
|
907
|
+
const $t = /* @__PURE__ */ te(st, [["render", nt], ["__scopeId", "data-v-45a4606d"]]), ye = [
|
|
821
908
|
Int8Array,
|
|
822
909
|
Uint8Array,
|
|
823
910
|
Uint8ClampedArray,
|
|
@@ -827,8 +914,8 @@ const Tt = /* @__PURE__ */ ee(et, [["render", st], ["__scopeId", "data-v-45a4606
|
|
|
827
914
|
Uint32Array,
|
|
828
915
|
Float32Array,
|
|
829
916
|
Float64Array
|
|
830
|
-
],
|
|
831
|
-
class
|
|
917
|
+
], re = 1, z = 8;
|
|
918
|
+
class le {
|
|
832
919
|
/**
|
|
833
920
|
* Creates an index from raw `ArrayBuffer` data.
|
|
834
921
|
* @param {ArrayBuffer} data
|
|
@@ -840,13 +927,13 @@ class ae {
|
|
|
840
927
|
if (t !== 219)
|
|
841
928
|
throw new Error("Data does not appear to be in a KDBush format.");
|
|
842
929
|
const r = s >> 4;
|
|
843
|
-
if (r !==
|
|
844
|
-
throw new Error(`Got v${r} data when expected v${
|
|
845
|
-
const
|
|
846
|
-
if (!
|
|
930
|
+
if (r !== re)
|
|
931
|
+
throw new Error(`Got v${r} data when expected v${re}.`);
|
|
932
|
+
const o = ye[s & 15];
|
|
933
|
+
if (!o)
|
|
847
934
|
throw new Error("Unrecognized array type.");
|
|
848
|
-
const [a] = new Uint16Array(e, 2, 1), [
|
|
849
|
-
return new
|
|
935
|
+
const [a] = new Uint16Array(e, 2, 1), [l] = new Uint32Array(e, 4, 1);
|
|
936
|
+
return new le(l, a, o, e);
|
|
850
937
|
}
|
|
851
938
|
/**
|
|
852
939
|
* Creates an index that will hold a given number of items.
|
|
@@ -859,10 +946,10 @@ class ae {
|
|
|
859
946
|
if (isNaN(e) || e < 0)
|
|
860
947
|
throw new Error(`Unpexpected numItems value: ${e}.`);
|
|
861
948
|
this.numItems = +e, this.nodeSize = Math.min(Math.max(+t, 2), 65535), this.ArrayType = s, this.IndexArrayType = e < 65536 ? Uint16Array : Uint32Array;
|
|
862
|
-
const
|
|
863
|
-
if (
|
|
949
|
+
const o = ye.indexOf(this.ArrayType), a = e * 2 * this.ArrayType.BYTES_PER_ELEMENT, l = e * this.IndexArrayType.BYTES_PER_ELEMENT, i = (8 - l % 8) % 8;
|
|
950
|
+
if (o < 0)
|
|
864
951
|
throw new Error(`Unexpected typed array class: ${s}.`);
|
|
865
|
-
r && r instanceof ArrayBuffer ? (this.data = r, this.ids = new this.IndexArrayType(this.data,
|
|
952
|
+
r && r instanceof ArrayBuffer ? (this.data = r, this.ids = new this.IndexArrayType(this.data, z, e), this.coords = new this.ArrayType(this.data, z + l + i, e * 2), this._pos = e * 2, this._finished = !0) : (this.data = new ArrayBuffer(z + a + l + i), this.ids = new this.IndexArrayType(this.data, z, e), this.coords = new this.ArrayType(this.data, z + l + i, e * 2), this._pos = 0, this._finished = !1, new Uint8Array(this.data, 0, 2).set([219, (re << 4) + o]), new Uint16Array(this.data, 2, 1)[0] = t, new Uint32Array(this.data, 4, 1)[0] = e);
|
|
866
953
|
}
|
|
867
954
|
/**
|
|
868
955
|
* Add a point to the index.
|
|
@@ -881,7 +968,7 @@ class ae {
|
|
|
881
968
|
const e = this._pos >> 1;
|
|
882
969
|
if (e !== this.numItems)
|
|
883
970
|
throw new Error(`Added ${e} items when expected ${this.numItems}.`);
|
|
884
|
-
return
|
|
971
|
+
return ie(this.ids, this.coords, this.nodeSize, 0, this.numItems - 1, 0), this._finished = !0, this;
|
|
885
972
|
}
|
|
886
973
|
/**
|
|
887
974
|
* Search the index for items within a given bounding box.
|
|
@@ -894,20 +981,20 @@ class ae {
|
|
|
894
981
|
range(e, t, s, r) {
|
|
895
982
|
if (!this._finished)
|
|
896
983
|
throw new Error("Data not yet indexed - call index.finish().");
|
|
897
|
-
const { ids:
|
|
984
|
+
const { ids: o, coords: a, nodeSize: l } = this, i = [0, o.length - 1, 0], h = [];
|
|
898
985
|
for (; i.length; ) {
|
|
899
|
-
const u = i.pop() || 0,
|
|
900
|
-
if (
|
|
901
|
-
for (let g =
|
|
902
|
-
const
|
|
903
|
-
|
|
986
|
+
const u = i.pop() || 0, c = i.pop() || 0, d = i.pop() || 0;
|
|
987
|
+
if (c - d <= l) {
|
|
988
|
+
for (let g = d; g <= c; g++) {
|
|
989
|
+
const v = a[2 * g], w = a[2 * g + 1];
|
|
990
|
+
v >= e && v <= s && w >= t && w <= r && h.push(o[g]);
|
|
904
991
|
}
|
|
905
992
|
continue;
|
|
906
993
|
}
|
|
907
|
-
const p =
|
|
908
|
-
f >= e && f <= s && m >= t && m <= r &&
|
|
994
|
+
const p = d + c >> 1, f = a[2 * p], m = a[2 * p + 1];
|
|
995
|
+
f >= e && f <= s && m >= t && m <= r && h.push(o[p]), (u === 0 ? e <= f : t <= m) && (i.push(d), i.push(p - 1), i.push(1 - u)), (u === 0 ? s >= f : r >= m) && (i.push(p + 1), i.push(c), i.push(1 - u));
|
|
909
996
|
}
|
|
910
|
-
return
|
|
997
|
+
return h;
|
|
911
998
|
}
|
|
912
999
|
/**
|
|
913
1000
|
* Search the index for items within a given radius.
|
|
@@ -919,55 +1006,55 @@ class ae {
|
|
|
919
1006
|
within(e, t, s) {
|
|
920
1007
|
if (!this._finished)
|
|
921
1008
|
throw new Error("Data not yet indexed - call index.finish().");
|
|
922
|
-
const { ids: r, coords:
|
|
923
|
-
for (;
|
|
924
|
-
const u =
|
|
925
|
-
if (
|
|
926
|
-
for (let g =
|
|
927
|
-
|
|
1009
|
+
const { ids: r, coords: o, nodeSize: a } = this, l = [0, r.length - 1, 0], i = [], h = s * s;
|
|
1010
|
+
for (; l.length; ) {
|
|
1011
|
+
const u = l.pop() || 0, c = l.pop() || 0, d = l.pop() || 0;
|
|
1012
|
+
if (c - d <= a) {
|
|
1013
|
+
for (let g = d; g <= c; g++)
|
|
1014
|
+
we(o[2 * g], o[2 * g + 1], e, t) <= h && i.push(r[g]);
|
|
928
1015
|
continue;
|
|
929
1016
|
}
|
|
930
|
-
const p =
|
|
931
|
-
|
|
1017
|
+
const p = d + c >> 1, f = o[2 * p], m = o[2 * p + 1];
|
|
1018
|
+
we(f, m, e, t) <= h && i.push(r[p]), (u === 0 ? e - s <= f : t - s <= m) && (l.push(d), l.push(p - 1), l.push(1 - u)), (u === 0 ? e + s >= f : t + s >= m) && (l.push(p + 1), l.push(c), l.push(1 - u));
|
|
932
1019
|
}
|
|
933
1020
|
return i;
|
|
934
1021
|
}
|
|
935
1022
|
}
|
|
936
|
-
function
|
|
1023
|
+
function ie(n, e, t, s, r, o) {
|
|
937
1024
|
if (r - s <= t)
|
|
938
1025
|
return;
|
|
939
1026
|
const a = s + r >> 1;
|
|
940
|
-
|
|
1027
|
+
Ie(n, e, a, s, r, o), ie(n, e, t, s, a - 1, 1 - o), ie(n, e, t, a + 1, r, 1 - o);
|
|
941
1028
|
}
|
|
942
|
-
function
|
|
1029
|
+
function Ie(n, e, t, s, r, o) {
|
|
943
1030
|
for (; r > s; ) {
|
|
944
1031
|
if (r - s > 600) {
|
|
945
|
-
const
|
|
946
|
-
|
|
1032
|
+
const h = r - s + 1, u = t - s + 1, c = Math.log(h), d = 0.5 * Math.exp(2 * c / 3), p = 0.5 * Math.sqrt(c * d * (h - d) / h) * (u - h / 2 < 0 ? -1 : 1), f = Math.max(s, Math.floor(t - u * d / h + p)), m = Math.min(r, Math.floor(t + (h - u) * d / h + p));
|
|
1033
|
+
Ie(n, e, t, f, m, o);
|
|
947
1034
|
}
|
|
948
|
-
const a = e[2 * t +
|
|
949
|
-
let
|
|
950
|
-
for (
|
|
951
|
-
for (
|
|
952
|
-
|
|
953
|
-
for (; e[2 * i +
|
|
1035
|
+
const a = e[2 * t + o];
|
|
1036
|
+
let l = s, i = r;
|
|
1037
|
+
for (V(n, e, s, t), e[2 * r + o] > a && V(n, e, s, r); l < i; ) {
|
|
1038
|
+
for (V(n, e, l, i), l++, i--; e[2 * l + o] < a; )
|
|
1039
|
+
l++;
|
|
1040
|
+
for (; e[2 * i + o] > a; )
|
|
954
1041
|
i--;
|
|
955
1042
|
}
|
|
956
|
-
e[2 * s +
|
|
1043
|
+
e[2 * s + o] === a ? V(n, e, s, i) : (i++, V(n, e, i, r)), i <= t && (s = i + 1), t <= i && (r = i - 1);
|
|
957
1044
|
}
|
|
958
1045
|
}
|
|
959
|
-
function
|
|
960
|
-
|
|
1046
|
+
function V(n, e, t, s) {
|
|
1047
|
+
ne(n, t, s), ne(e, 2 * t, 2 * s), ne(e, 2 * t + 1, 2 * s + 1);
|
|
961
1048
|
}
|
|
962
|
-
function
|
|
963
|
-
const s =
|
|
964
|
-
|
|
1049
|
+
function ne(n, e, t) {
|
|
1050
|
+
const s = n[e];
|
|
1051
|
+
n[e] = n[t], n[t] = s;
|
|
965
1052
|
}
|
|
966
|
-
function
|
|
967
|
-
const r =
|
|
968
|
-
return r * r +
|
|
1053
|
+
function we(n, e, t, s) {
|
|
1054
|
+
const r = n - t, o = e - s;
|
|
1055
|
+
return r * r + o * o;
|
|
969
1056
|
}
|
|
970
|
-
const
|
|
1057
|
+
const ot = {
|
|
971
1058
|
minZoom: 0,
|
|
972
1059
|
// min zoom to generate clusters on
|
|
973
1060
|
maxZoom: 16,
|
|
@@ -988,26 +1075,26 @@ const rt = {
|
|
|
988
1075
|
reduce: null,
|
|
989
1076
|
// (accumulated, props) => { accumulated.sum += props.sum; }
|
|
990
1077
|
// properties to use for individual points when running the reducer
|
|
991
|
-
map: (
|
|
1078
|
+
map: (n) => n
|
|
992
1079
|
// props => ({sum: props.my_value})
|
|
993
|
-
},
|
|
1080
|
+
}, _e = Math.fround || ((n) => (e) => (n[0] = +e, n[0]))(new Float32Array(1)), I = 2, L = 3, oe = 4, x = 5, Ae = 6;
|
|
994
1081
|
class Te {
|
|
995
1082
|
constructor(e) {
|
|
996
|
-
this.options = Object.assign(Object.create(
|
|
1083
|
+
this.options = Object.assign(Object.create(ot), e), this.trees = new Array(this.options.maxZoom + 1), this.stride = this.options.reduce ? 7 : 6, this.clusterProps = [];
|
|
997
1084
|
}
|
|
998
1085
|
load(e) {
|
|
999
1086
|
const { log: t, minZoom: s, maxZoom: r } = this.options;
|
|
1000
1087
|
t && console.time("total time");
|
|
1001
|
-
const
|
|
1002
|
-
t && console.time(
|
|
1088
|
+
const o = `prepare ${e.length} points`;
|
|
1089
|
+
t && console.time(o), this.points = e;
|
|
1003
1090
|
const a = [];
|
|
1004
1091
|
for (let i = 0; i < e.length; i++) {
|
|
1005
|
-
const
|
|
1006
|
-
if (!
|
|
1092
|
+
const h = e[i];
|
|
1093
|
+
if (!h.geometry)
|
|
1007
1094
|
continue;
|
|
1008
|
-
const [u,
|
|
1095
|
+
const [u, c] = h.geometry.coordinates, d = _e(W(u)), p = _e(K(c));
|
|
1009
1096
|
a.push(
|
|
1010
|
-
|
|
1097
|
+
d,
|
|
1011
1098
|
p,
|
|
1012
1099
|
// projected point coordinates
|
|
1013
1100
|
1 / 0,
|
|
@@ -1020,47 +1107,47 @@ class Te {
|
|
|
1020
1107
|
// number of points in a cluster
|
|
1021
1108
|
), this.options.reduce && a.push(0);
|
|
1022
1109
|
}
|
|
1023
|
-
let
|
|
1024
|
-
t && console.timeEnd(
|
|
1110
|
+
let l = this.trees[r + 1] = this._createTree(a);
|
|
1111
|
+
t && console.timeEnd(o);
|
|
1025
1112
|
for (let i = r; i >= s; i--) {
|
|
1026
|
-
const
|
|
1027
|
-
|
|
1113
|
+
const h = +Date.now();
|
|
1114
|
+
l = this.trees[i] = this._createTree(this._cluster(l, i)), t && console.log("z%d: %d clusters in %dms", i, l.numItems, +Date.now() - h);
|
|
1028
1115
|
}
|
|
1029
1116
|
return t && console.timeEnd("total time"), this;
|
|
1030
1117
|
}
|
|
1031
1118
|
getClusters(e, t) {
|
|
1032
1119
|
let s = ((e[0] + 180) % 360 + 360) % 360 - 180;
|
|
1033
1120
|
const r = Math.max(-90, Math.min(90, e[1]));
|
|
1034
|
-
let
|
|
1121
|
+
let o = e[2] === 180 ? 180 : ((e[2] + 180) % 360 + 360) % 360 - 180;
|
|
1035
1122
|
const a = Math.max(-90, Math.min(90, e[3]));
|
|
1036
1123
|
if (e[2] - e[0] >= 360)
|
|
1037
|
-
s = -180,
|
|
1038
|
-
else if (s >
|
|
1039
|
-
const
|
|
1040
|
-
return
|
|
1124
|
+
s = -180, o = 180;
|
|
1125
|
+
else if (s > o) {
|
|
1126
|
+
const c = this.getClusters([s, r, 180, a], t), d = this.getClusters([-180, r, o, a], t);
|
|
1127
|
+
return c.concat(d);
|
|
1041
1128
|
}
|
|
1042
|
-
const
|
|
1043
|
-
for (const
|
|
1044
|
-
const
|
|
1045
|
-
u.push(d
|
|
1129
|
+
const l = this.trees[this._limitZoom(t)], i = l.range(W(s), K(a), W(o), K(r)), h = l.data, u = [];
|
|
1130
|
+
for (const c of i) {
|
|
1131
|
+
const d = this.stride * c;
|
|
1132
|
+
u.push(h[d + x] > 1 ? ke(h, d, this.clusterProps) : this.points[h[d + L]]);
|
|
1046
1133
|
}
|
|
1047
1134
|
return u;
|
|
1048
1135
|
}
|
|
1049
1136
|
getChildren(e) {
|
|
1050
|
-
const t = this._getOriginId(e), s = this._getOriginZoom(e), r = "No cluster with the specified id.",
|
|
1051
|
-
if (!
|
|
1137
|
+
const t = this._getOriginId(e), s = this._getOriginZoom(e), r = "No cluster with the specified id.", o = this.trees[s];
|
|
1138
|
+
if (!o)
|
|
1052
1139
|
throw new Error(r);
|
|
1053
|
-
const a =
|
|
1140
|
+
const a = o.data;
|
|
1054
1141
|
if (t * this.stride >= a.length)
|
|
1055
1142
|
throw new Error(r);
|
|
1056
|
-
const
|
|
1057
|
-
for (const
|
|
1058
|
-
const p =
|
|
1059
|
-
a[p + oe] === e &&
|
|
1143
|
+
const l = this.options.radius / (this.options.extent * Math.pow(2, s - 1)), i = a[t * this.stride], h = a[t * this.stride + 1], u = o.within(i, h, l), c = [];
|
|
1144
|
+
for (const d of u) {
|
|
1145
|
+
const p = d * this.stride;
|
|
1146
|
+
a[p + oe] === e && c.push(a[p + x] > 1 ? ke(a, p, this.clusterProps) : this.points[a[p + L]]);
|
|
1060
1147
|
}
|
|
1061
|
-
if (
|
|
1148
|
+
if (c.length === 0)
|
|
1062
1149
|
throw new Error(r);
|
|
1063
|
-
return
|
|
1150
|
+
return c;
|
|
1064
1151
|
}
|
|
1065
1152
|
getLeaves(e, t, s) {
|
|
1066
1153
|
t = t || 10, s = s || 0;
|
|
@@ -1068,31 +1155,31 @@ class Te {
|
|
|
1068
1155
|
return this._appendLeaves(r, e, t, s, 0), r;
|
|
1069
1156
|
}
|
|
1070
1157
|
getTile(e, t, s) {
|
|
1071
|
-
const r = this.trees[this._limitZoom(e)],
|
|
1158
|
+
const r = this.trees[this._limitZoom(e)], o = Math.pow(2, e), { extent: a, radius: l } = this.options, i = l / a, h = (s - i) / o, u = (s + 1 + i) / o, c = {
|
|
1072
1159
|
features: []
|
|
1073
1160
|
};
|
|
1074
1161
|
return this._addTileFeatures(
|
|
1075
|
-
r.range((t - i) /
|
|
1162
|
+
r.range((t - i) / o, h, (t + 1 + i) / o, u),
|
|
1076
1163
|
r.data,
|
|
1077
1164
|
t,
|
|
1078
1165
|
s,
|
|
1079
|
-
|
|
1080
|
-
|
|
1166
|
+
o,
|
|
1167
|
+
c
|
|
1081
1168
|
), t === 0 && this._addTileFeatures(
|
|
1082
|
-
r.range(1 - i /
|
|
1169
|
+
r.range(1 - i / o, h, 1, u),
|
|
1083
1170
|
r.data,
|
|
1084
|
-
|
|
1171
|
+
o,
|
|
1085
1172
|
s,
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
), t ===
|
|
1089
|
-
r.range(0,
|
|
1173
|
+
o,
|
|
1174
|
+
c
|
|
1175
|
+
), t === o - 1 && this._addTileFeatures(
|
|
1176
|
+
r.range(0, h, i / o, u),
|
|
1090
1177
|
r.data,
|
|
1091
1178
|
-1,
|
|
1092
1179
|
s,
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
),
|
|
1180
|
+
o,
|
|
1181
|
+
c
|
|
1182
|
+
), c.features.length ? c : null;
|
|
1096
1183
|
}
|
|
1097
1184
|
getClusterExpansionZoom(e) {
|
|
1098
1185
|
let t = this._getOriginZoom(e) - 1;
|
|
@@ -1104,87 +1191,87 @@ class Te {
|
|
|
1104
1191
|
}
|
|
1105
1192
|
return t;
|
|
1106
1193
|
}
|
|
1107
|
-
_appendLeaves(e, t, s, r,
|
|
1194
|
+
_appendLeaves(e, t, s, r, o) {
|
|
1108
1195
|
const a = this.getChildren(t);
|
|
1109
|
-
for (const
|
|
1110
|
-
const i =
|
|
1111
|
-
if (i && i.cluster ?
|
|
1196
|
+
for (const l of a) {
|
|
1197
|
+
const i = l.properties;
|
|
1198
|
+
if (i && i.cluster ? o + i.point_count <= r ? o += i.point_count : o = this._appendLeaves(e, i.cluster_id, s, r, o) : o < r ? o++ : e.push(l), e.length === s)
|
|
1112
1199
|
break;
|
|
1113
1200
|
}
|
|
1114
|
-
return
|
|
1201
|
+
return o;
|
|
1115
1202
|
}
|
|
1116
1203
|
_createTree(e) {
|
|
1117
|
-
const t = new
|
|
1204
|
+
const t = new le(e.length / this.stride | 0, this.options.nodeSize, Float32Array);
|
|
1118
1205
|
for (let s = 0; s < e.length; s += this.stride)
|
|
1119
1206
|
t.add(e[s], e[s + 1]);
|
|
1120
1207
|
return t.finish(), t.data = e, t;
|
|
1121
1208
|
}
|
|
1122
|
-
_addTileFeatures(e, t, s, r,
|
|
1123
|
-
for (const
|
|
1124
|
-
const i =
|
|
1125
|
-
let u,
|
|
1126
|
-
if (
|
|
1127
|
-
u =
|
|
1209
|
+
_addTileFeatures(e, t, s, r, o, a) {
|
|
1210
|
+
for (const l of e) {
|
|
1211
|
+
const i = l * this.stride, h = t[i + x] > 1;
|
|
1212
|
+
let u, c, d;
|
|
1213
|
+
if (h)
|
|
1214
|
+
u = $e(t, i, this.clusterProps), c = t[i], d = t[i + 1];
|
|
1128
1215
|
else {
|
|
1129
|
-
const m = this.points[t[i +
|
|
1216
|
+
const m = this.points[t[i + L]];
|
|
1130
1217
|
u = m.properties;
|
|
1131
|
-
const [g,
|
|
1132
|
-
|
|
1218
|
+
const [g, v] = m.geometry.coordinates;
|
|
1219
|
+
c = W(g), d = K(v);
|
|
1133
1220
|
}
|
|
1134
1221
|
const p = {
|
|
1135
1222
|
type: 1,
|
|
1136
1223
|
geometry: [[
|
|
1137
|
-
Math.round(this.options.extent * (
|
|
1138
|
-
Math.round(this.options.extent * (
|
|
1224
|
+
Math.round(this.options.extent * (c * o - s)),
|
|
1225
|
+
Math.round(this.options.extent * (d * o - r))
|
|
1139
1226
|
]],
|
|
1140
1227
|
tags: u
|
|
1141
1228
|
};
|
|
1142
1229
|
let f;
|
|
1143
|
-
|
|
1230
|
+
h || this.options.generateId ? f = t[i + L] : f = this.points[t[i + L]].id, f !== void 0 && (p.id = f), a.features.push(p);
|
|
1144
1231
|
}
|
|
1145
1232
|
}
|
|
1146
1233
|
_limitZoom(e) {
|
|
1147
1234
|
return Math.max(this.options.minZoom, Math.min(Math.floor(+e), this.options.maxZoom + 1));
|
|
1148
1235
|
}
|
|
1149
1236
|
_cluster(e, t) {
|
|
1150
|
-
const { radius: s, extent: r, reduce:
|
|
1151
|
-
for (let
|
|
1152
|
-
if (i[
|
|
1237
|
+
const { radius: s, extent: r, reduce: o, minPoints: a } = this.options, l = s / (r * Math.pow(2, t)), i = e.data, h = [], u = this.stride;
|
|
1238
|
+
for (let c = 0; c < i.length; c += u) {
|
|
1239
|
+
if (i[c + I] <= t)
|
|
1153
1240
|
continue;
|
|
1154
|
-
i[
|
|
1155
|
-
const
|
|
1241
|
+
i[c + I] = t;
|
|
1242
|
+
const d = i[c], p = i[c + 1], f = e.within(i[c], i[c + 1], l), m = i[c + x];
|
|
1156
1243
|
let g = m;
|
|
1157
|
-
for (const
|
|
1158
|
-
const w =
|
|
1159
|
-
i[w +
|
|
1244
|
+
for (const v of f) {
|
|
1245
|
+
const w = v * u;
|
|
1246
|
+
i[w + I] > t && (g += i[w + x]);
|
|
1160
1247
|
}
|
|
1161
1248
|
if (g > m && g >= a) {
|
|
1162
|
-
let
|
|
1163
|
-
const
|
|
1164
|
-
for (const
|
|
1165
|
-
const
|
|
1166
|
-
if (i[
|
|
1249
|
+
let v = d * m, w = p * m, _, M = -1;
|
|
1250
|
+
const P = ((c / u | 0) << 5) + (t + 1) + this.points.length;
|
|
1251
|
+
for (const $ of f) {
|
|
1252
|
+
const E = $ * u;
|
|
1253
|
+
if (i[E + I] <= t)
|
|
1167
1254
|
continue;
|
|
1168
|
-
i[
|
|
1169
|
-
const F = i[
|
|
1170
|
-
|
|
1255
|
+
i[E + I] = t;
|
|
1256
|
+
const F = i[E + x];
|
|
1257
|
+
v += i[E] * F, w += i[E + 1] * F, i[E + oe] = P, o && (_ || (_ = this._map(i, c, !0), M = this.clusterProps.length, this.clusterProps.push(_)), o(_, this._map(i, E)));
|
|
1171
1258
|
}
|
|
1172
|
-
i[
|
|
1259
|
+
i[c + oe] = P, h.push(v / g, w / g, 1 / 0, P, -1, g), o && h.push(M);
|
|
1173
1260
|
} else {
|
|
1174
|
-
for (let
|
|
1175
|
-
|
|
1261
|
+
for (let v = 0; v < u; v++)
|
|
1262
|
+
h.push(i[c + v]);
|
|
1176
1263
|
if (g > 1)
|
|
1177
|
-
for (const
|
|
1178
|
-
const w =
|
|
1179
|
-
if (!(i[w +
|
|
1180
|
-
i[w +
|
|
1181
|
-
for (let
|
|
1182
|
-
|
|
1264
|
+
for (const v of f) {
|
|
1265
|
+
const w = v * u;
|
|
1266
|
+
if (!(i[w + I] <= t)) {
|
|
1267
|
+
i[w + I] = t;
|
|
1268
|
+
for (let _ = 0; _ < u; _++)
|
|
1269
|
+
h.push(i[w + _]);
|
|
1183
1270
|
}
|
|
1184
1271
|
}
|
|
1185
1272
|
}
|
|
1186
1273
|
}
|
|
1187
|
-
return
|
|
1274
|
+
return h;
|
|
1188
1275
|
}
|
|
1189
1276
|
// get index of the point from which the cluster originated
|
|
1190
1277
|
_getOriginId(e) {
|
|
@@ -1195,46 +1282,46 @@ class Te {
|
|
|
1195
1282
|
return (e - this.points.length) % 32;
|
|
1196
1283
|
}
|
|
1197
1284
|
_map(e, t, s) {
|
|
1198
|
-
if (e[t +
|
|
1285
|
+
if (e[t + x] > 1) {
|
|
1199
1286
|
const a = this.clusterProps[e[t + Ae]];
|
|
1200
1287
|
return s ? Object.assign({}, a) : a;
|
|
1201
1288
|
}
|
|
1202
|
-
const r = this.points[e[t +
|
|
1203
|
-
return s &&
|
|
1289
|
+
const r = this.points[e[t + L]].properties, o = this.options.map(r);
|
|
1290
|
+
return s && o === r ? Object.assign({}, o) : o;
|
|
1204
1291
|
}
|
|
1205
1292
|
}
|
|
1206
|
-
function ke(
|
|
1293
|
+
function ke(n, e, t) {
|
|
1207
1294
|
return {
|
|
1208
1295
|
type: "Feature",
|
|
1209
|
-
id:
|
|
1210
|
-
properties:
|
|
1296
|
+
id: n[e + L],
|
|
1297
|
+
properties: $e(n, e, t),
|
|
1211
1298
|
geometry: {
|
|
1212
1299
|
type: "Point",
|
|
1213
|
-
coordinates: [
|
|
1300
|
+
coordinates: [it(n[e]), at(n[e + 1])]
|
|
1214
1301
|
}
|
|
1215
1302
|
};
|
|
1216
1303
|
}
|
|
1217
|
-
function
|
|
1218
|
-
const s =
|
|
1304
|
+
function $e(n, e, t) {
|
|
1305
|
+
const s = n[e + x], r = s >= 1e4 ? `${Math.round(s / 1e3)}k` : s >= 1e3 ? `${Math.round(s / 100) / 10}k` : s, o = n[e + Ae], a = o === -1 ? {} : Object.assign({}, t[o]);
|
|
1219
1306
|
return Object.assign(a, {
|
|
1220
1307
|
cluster: !0,
|
|
1221
|
-
cluster_id:
|
|
1308
|
+
cluster_id: n[e + L],
|
|
1222
1309
|
point_count: s,
|
|
1223
1310
|
point_count_abbreviated: r
|
|
1224
1311
|
});
|
|
1225
1312
|
}
|
|
1226
|
-
function
|
|
1227
|
-
return
|
|
1313
|
+
function W(n) {
|
|
1314
|
+
return n / 360 + 0.5;
|
|
1228
1315
|
}
|
|
1229
|
-
function
|
|
1230
|
-
const e = Math.sin(
|
|
1316
|
+
function K(n) {
|
|
1317
|
+
const e = Math.sin(n * Math.PI / 180), t = 0.5 - 0.25 * Math.log((1 + e) / (1 - e)) / Math.PI;
|
|
1231
1318
|
return t < 0 ? 0 : t > 1 ? 1 : t;
|
|
1232
1319
|
}
|
|
1233
|
-
function
|
|
1234
|
-
return (
|
|
1320
|
+
function it(n) {
|
|
1321
|
+
return (n - 0.5) * 360;
|
|
1235
1322
|
}
|
|
1236
|
-
function
|
|
1237
|
-
const e = (180 -
|
|
1323
|
+
function at(n) {
|
|
1324
|
+
const e = (180 - n * 360) * Math.PI / 180;
|
|
1238
1325
|
return 360 * Math.atan(Math.exp(e)) / Math.PI - 90;
|
|
1239
1326
|
}
|
|
1240
1327
|
/*! *****************************************************************************
|
|
@@ -1251,13 +1338,13 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
|
1251
1338
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
1252
1339
|
PERFORMANCE OF THIS SOFTWARE.
|
|
1253
1340
|
***************************************************************************** */
|
|
1254
|
-
function
|
|
1341
|
+
function ce(n, e) {
|
|
1255
1342
|
var t = {};
|
|
1256
|
-
for (var s in
|
|
1257
|
-
Object.prototype.hasOwnProperty.call(
|
|
1258
|
-
if (
|
|
1259
|
-
for (var r = 0, s = Object.getOwnPropertySymbols(
|
|
1260
|
-
e.indexOf(s[r]) < 0 && Object.prototype.propertyIsEnumerable.call(
|
|
1343
|
+
for (var s in n)
|
|
1344
|
+
Object.prototype.hasOwnProperty.call(n, s) && e.indexOf(s) < 0 && (t[s] = n[s]);
|
|
1345
|
+
if (n != null && typeof Object.getOwnPropertySymbols == "function")
|
|
1346
|
+
for (var r = 0, s = Object.getOwnPropertySymbols(n); r < s.length; r++)
|
|
1347
|
+
e.indexOf(s[r]) < 0 && Object.prototype.propertyIsEnumerable.call(n, s[r]) && (t[s[r]] = n[s[r]]);
|
|
1261
1348
|
return t;
|
|
1262
1349
|
}
|
|
1263
1350
|
class k {
|
|
@@ -1286,7 +1373,7 @@ class k {
|
|
|
1286
1373
|
return this.isAdvancedMarker(e) ? !0 : e.getVisible();
|
|
1287
1374
|
}
|
|
1288
1375
|
}
|
|
1289
|
-
class
|
|
1376
|
+
class H {
|
|
1290
1377
|
constructor({ markers: e, position: t }) {
|
|
1291
1378
|
this.markers = e, t && (t instanceof google.maps.LatLng ? this._position = t : this._position = new google.maps.LatLng(t));
|
|
1292
1379
|
}
|
|
@@ -1320,20 +1407,20 @@ class V {
|
|
|
1320
1407
|
this.marker && (k.setMap(this.marker, null), this.marker = void 0), this.markers.length = 0;
|
|
1321
1408
|
}
|
|
1322
1409
|
}
|
|
1323
|
-
const
|
|
1324
|
-
const r =
|
|
1325
|
-
return t.filter((
|
|
1326
|
-
},
|
|
1327
|
-
const { northEast: s, southWest: r } =
|
|
1328
|
-
return
|
|
1329
|
-
},
|
|
1330
|
-
const s =
|
|
1331
|
-
return [
|
|
1332
|
-
},
|
|
1333
|
-
northEast: e.fromLatLngToDivPixel(
|
|
1334
|
-
southWest: e.fromLatLngToDivPixel(
|
|
1335
|
-
}),
|
|
1336
|
-
const s = t.fromDivPixelToLatLng(e), r = t.fromDivPixelToLatLng(
|
|
1410
|
+
const lt = (n, e, t, s) => {
|
|
1411
|
+
const r = Re(n.getBounds(), e, s);
|
|
1412
|
+
return t.filter((o) => r.contains(k.getPosition(o)));
|
|
1413
|
+
}, Re = (n, e, t) => {
|
|
1414
|
+
const { northEast: s, southWest: r } = ct(n, e), o = ut({ northEast: s, southWest: r }, t);
|
|
1415
|
+
return ht(o, e);
|
|
1416
|
+
}, Ce = (n, e, t) => {
|
|
1417
|
+
const s = Re(n, e, t), r = s.getNorthEast(), o = s.getSouthWest();
|
|
1418
|
+
return [o.lng(), o.lat(), r.lng(), r.lat()];
|
|
1419
|
+
}, ct = (n, e) => ({
|
|
1420
|
+
northEast: e.fromLatLngToDivPixel(n.getNorthEast()),
|
|
1421
|
+
southWest: e.fromLatLngToDivPixel(n.getSouthWest())
|
|
1422
|
+
}), ut = ({ northEast: n, southWest: e }, t) => (n.x += t, n.y -= t, e.x -= t, e.y += t, { northEast: n, southWest: e }), ht = ({ northEast: n, southWest: e }, t) => {
|
|
1423
|
+
const s = t.fromDivPixelToLatLng(e), r = t.fromDivPixelToLatLng(n);
|
|
1337
1424
|
return new google.maps.LatLngBounds(s, r);
|
|
1338
1425
|
};
|
|
1339
1426
|
class je {
|
|
@@ -1353,12 +1440,12 @@ class je {
|
|
|
1353
1440
|
* ```
|
|
1354
1441
|
*/
|
|
1355
1442
|
noop({ markers: e }) {
|
|
1356
|
-
return
|
|
1443
|
+
return pt(e);
|
|
1357
1444
|
}
|
|
1358
1445
|
}
|
|
1359
|
-
class
|
|
1446
|
+
class dt extends je {
|
|
1360
1447
|
constructor(e) {
|
|
1361
|
-
var { viewportPadding: t = 60 } = e, s =
|
|
1448
|
+
var { viewportPadding: t = 60 } = e, s = ce(e, ["viewportPadding"]);
|
|
1362
1449
|
super(s), this.viewportPadding = 60, this.viewportPadding = t;
|
|
1363
1450
|
}
|
|
1364
1451
|
calculate({ markers: e, map: t, mapCanvasProjection: s }) {
|
|
@@ -1369,80 +1456,80 @@ class ut extends je {
|
|
|
1369
1456
|
changed: !1
|
|
1370
1457
|
} : {
|
|
1371
1458
|
clusters: this.cluster({
|
|
1372
|
-
markers:
|
|
1459
|
+
markers: lt(t, s, e, this.viewportPadding),
|
|
1373
1460
|
map: t,
|
|
1374
1461
|
mapCanvasProjection: s
|
|
1375
1462
|
})
|
|
1376
1463
|
};
|
|
1377
1464
|
}
|
|
1378
1465
|
}
|
|
1379
|
-
const
|
|
1466
|
+
const pt = (n) => n.map((t) => new H({
|
|
1380
1467
|
position: k.getPosition(t),
|
|
1381
1468
|
markers: [t]
|
|
1382
1469
|
}));
|
|
1383
|
-
class
|
|
1470
|
+
class ft extends je {
|
|
1384
1471
|
constructor(e) {
|
|
1385
|
-
var { maxZoom: t, radius: s = 60 } = e, r =
|
|
1472
|
+
var { maxZoom: t, radius: s = 60 } = e, r = ce(e, ["maxZoom", "radius"]);
|
|
1386
1473
|
super({ maxZoom: t }), this.state = { zoom: -1 }, this.superCluster = new Te(Object.assign({ maxZoom: this.maxZoom, radius: s }, r));
|
|
1387
1474
|
}
|
|
1388
1475
|
calculate(e) {
|
|
1389
1476
|
let t = !1;
|
|
1390
1477
|
const s = { zoom: e.map.getZoom() };
|
|
1391
|
-
if (!
|
|
1478
|
+
if (!T(e.markers, this.markers)) {
|
|
1392
1479
|
t = !0, this.markers = [...e.markers];
|
|
1393
|
-
const r = this.markers.map((
|
|
1394
|
-
const a = k.getPosition(
|
|
1480
|
+
const r = this.markers.map((o) => {
|
|
1481
|
+
const a = k.getPosition(o);
|
|
1395
1482
|
return {
|
|
1396
1483
|
type: "Feature",
|
|
1397
1484
|
geometry: {
|
|
1398
1485
|
type: "Point",
|
|
1399
1486
|
coordinates: [a.lng(), a.lat()]
|
|
1400
1487
|
},
|
|
1401
|
-
properties: { marker:
|
|
1488
|
+
properties: { marker: o }
|
|
1402
1489
|
};
|
|
1403
1490
|
});
|
|
1404
1491
|
this.superCluster.load(r);
|
|
1405
1492
|
}
|
|
1406
|
-
return t || (this.state.zoom <= this.maxZoom || s.zoom <= this.maxZoom) && (t = !
|
|
1493
|
+
return t || (this.state.zoom <= this.maxZoom || s.zoom <= this.maxZoom) && (t = !T(this.state, s)), this.state = s, t && (this.clusters = this.cluster(e)), { clusters: this.clusters, changed: t };
|
|
1407
1494
|
}
|
|
1408
1495
|
cluster({ map: e }) {
|
|
1409
1496
|
return this.superCluster.getClusters([-180, -90, 180, 90], Math.round(e.getZoom())).map((t) => this.transformCluster(t));
|
|
1410
1497
|
}
|
|
1411
1498
|
transformCluster({ geometry: { coordinates: [e, t] }, properties: s }) {
|
|
1412
1499
|
if (s.cluster)
|
|
1413
|
-
return new
|
|
1414
|
-
markers: this.superCluster.getLeaves(s.cluster_id, 1 / 0).map((
|
|
1500
|
+
return new H({
|
|
1501
|
+
markers: this.superCluster.getLeaves(s.cluster_id, 1 / 0).map((o) => o.properties.marker),
|
|
1415
1502
|
position: { lat: t, lng: e }
|
|
1416
1503
|
});
|
|
1417
1504
|
const r = s.marker;
|
|
1418
|
-
return new
|
|
1505
|
+
return new H({
|
|
1419
1506
|
markers: [r],
|
|
1420
1507
|
position: k.getPosition(r)
|
|
1421
1508
|
});
|
|
1422
1509
|
}
|
|
1423
1510
|
}
|
|
1424
|
-
class
|
|
1511
|
+
class mt extends dt {
|
|
1425
1512
|
constructor(e) {
|
|
1426
|
-
var { maxZoom: t, radius: s = 60, viewportPadding: r = 60 } = e,
|
|
1427
|
-
super({ maxZoom: t, viewportPadding: r }), this.superCluster = new Te(Object.assign({ maxZoom: this.maxZoom, radius: s },
|
|
1513
|
+
var { maxZoom: t, radius: s = 60, viewportPadding: r = 60 } = e, o = ce(e, ["maxZoom", "radius", "viewportPadding"]);
|
|
1514
|
+
super({ maxZoom: t, viewportPadding: r }), this.superCluster = new Te(Object.assign({ maxZoom: this.maxZoom, radius: s }, o)), this.state = { zoom: -1, view: [0, 0, 0, 0] };
|
|
1428
1515
|
}
|
|
1429
1516
|
calculate(e) {
|
|
1430
1517
|
const t = {
|
|
1431
1518
|
zoom: Math.round(e.map.getZoom()),
|
|
1432
|
-
view:
|
|
1519
|
+
view: Ce(e.map.getBounds(), e.mapCanvasProjection, this.viewportPadding)
|
|
1433
1520
|
};
|
|
1434
|
-
let s = !
|
|
1435
|
-
if (!
|
|
1521
|
+
let s = !T(this.state, t);
|
|
1522
|
+
if (!T(e.markers, this.markers)) {
|
|
1436
1523
|
s = !0, this.markers = [...e.markers];
|
|
1437
|
-
const r = this.markers.map((
|
|
1438
|
-
const a = k.getPosition(
|
|
1524
|
+
const r = this.markers.map((o) => {
|
|
1525
|
+
const a = k.getPosition(o);
|
|
1439
1526
|
return {
|
|
1440
1527
|
type: "Feature",
|
|
1441
1528
|
geometry: {
|
|
1442
1529
|
type: "Point",
|
|
1443
1530
|
coordinates: [a.lng(), a.lat()]
|
|
1444
1531
|
},
|
|
1445
|
-
properties: { marker:
|
|
1532
|
+
properties: { marker: o }
|
|
1446
1533
|
};
|
|
1447
1534
|
});
|
|
1448
1535
|
this.superCluster.load(r);
|
|
@@ -1452,27 +1539,27 @@ class pt extends ut {
|
|
|
1452
1539
|
cluster({ map: e, mapCanvasProjection: t }) {
|
|
1453
1540
|
const s = {
|
|
1454
1541
|
zoom: Math.round(e.getZoom()),
|
|
1455
|
-
view:
|
|
1542
|
+
view: Ce(e.getBounds(), t, this.viewportPadding)
|
|
1456
1543
|
};
|
|
1457
1544
|
return this.superCluster.getClusters(s.view, s.zoom).map((r) => this.transformCluster(r));
|
|
1458
1545
|
}
|
|
1459
1546
|
transformCluster({ geometry: { coordinates: [e, t] }, properties: s }) {
|
|
1460
1547
|
if (s.cluster)
|
|
1461
|
-
return new
|
|
1462
|
-
markers: this.superCluster.getLeaves(s.cluster_id, 1 / 0).map((
|
|
1548
|
+
return new H({
|
|
1549
|
+
markers: this.superCluster.getLeaves(s.cluster_id, 1 / 0).map((o) => o.properties.marker),
|
|
1463
1550
|
position: { lat: t, lng: e }
|
|
1464
1551
|
});
|
|
1465
1552
|
const r = s.marker;
|
|
1466
|
-
return new
|
|
1553
|
+
return new H({
|
|
1467
1554
|
markers: [r],
|
|
1468
1555
|
position: k.getPosition(r)
|
|
1469
1556
|
});
|
|
1470
1557
|
}
|
|
1471
1558
|
}
|
|
1472
|
-
class
|
|
1559
|
+
class gt {
|
|
1473
1560
|
constructor(e, t) {
|
|
1474
1561
|
this.markers = { sum: e.length };
|
|
1475
|
-
const s = t.map((
|
|
1562
|
+
const s = t.map((o) => o.count), r = s.reduce((o, a) => o + a, 0);
|
|
1476
1563
|
this.clusters = {
|
|
1477
1564
|
count: t.length,
|
|
1478
1565
|
markers: {
|
|
@@ -1484,7 +1571,7 @@ class ft {
|
|
|
1484
1571
|
};
|
|
1485
1572
|
}
|
|
1486
1573
|
}
|
|
1487
|
-
class
|
|
1574
|
+
class vt {
|
|
1488
1575
|
/**
|
|
1489
1576
|
* The default render function for the library used by {@link MarkerClusterer}.
|
|
1490
1577
|
*
|
|
@@ -1529,52 +1616,52 @@ class mt {
|
|
|
1529
1616
|
<circle cx="120" cy="120" opacity=".3" r="90" />
|
|
1530
1617
|
<circle cx="120" cy="120" opacity=".2" r="110" />
|
|
1531
1618
|
<text x="50%" y="50%" style="fill:#fff" text-anchor="middle" font-size="50" dominant-baseline="middle" font-family="roboto,arial,sans-serif">${e}</text>
|
|
1532
|
-
</svg>`,
|
|
1619
|
+
</svg>`, l = `Cluster of ${e} markers`, i = Number(google.maps.Marker.MAX_ZINDEX) + e;
|
|
1533
1620
|
if (k.isAdvancedMarkerAvailable(r)) {
|
|
1534
1621
|
const u = document.createElement("div");
|
|
1535
1622
|
u.innerHTML = a;
|
|
1536
|
-
const
|
|
1537
|
-
|
|
1538
|
-
const
|
|
1623
|
+
const c = u.firstElementChild;
|
|
1624
|
+
c.setAttribute("transform", "translate(0 25)");
|
|
1625
|
+
const d = {
|
|
1539
1626
|
map: r,
|
|
1540
1627
|
position: t,
|
|
1541
1628
|
zIndex: i,
|
|
1542
|
-
title:
|
|
1543
|
-
content:
|
|
1629
|
+
title: l,
|
|
1630
|
+
content: c
|
|
1544
1631
|
};
|
|
1545
|
-
return new google.maps.marker.AdvancedMarkerElement(
|
|
1632
|
+
return new google.maps.marker.AdvancedMarkerElement(d);
|
|
1546
1633
|
}
|
|
1547
|
-
const
|
|
1634
|
+
const h = {
|
|
1548
1635
|
position: t,
|
|
1549
1636
|
zIndex: i,
|
|
1550
|
-
title:
|
|
1637
|
+
title: l,
|
|
1551
1638
|
icon: {
|
|
1552
1639
|
url: `data:image/svg+xml;base64,${btoa(a)}`,
|
|
1553
1640
|
anchor: new google.maps.Point(25, 25)
|
|
1554
1641
|
}
|
|
1555
1642
|
};
|
|
1556
|
-
return new google.maps.Marker(
|
|
1643
|
+
return new google.maps.Marker(h);
|
|
1557
1644
|
}
|
|
1558
1645
|
}
|
|
1559
|
-
function
|
|
1646
|
+
function yt(n, e) {
|
|
1560
1647
|
for (let t in e.prototype)
|
|
1561
|
-
|
|
1648
|
+
n.prototype[t] = e.prototype[t];
|
|
1562
1649
|
}
|
|
1563
|
-
class
|
|
1650
|
+
class ue {
|
|
1564
1651
|
constructor() {
|
|
1565
|
-
|
|
1652
|
+
yt(ue, google.maps.OverlayView);
|
|
1566
1653
|
}
|
|
1567
1654
|
}
|
|
1568
|
-
var
|
|
1569
|
-
(function(
|
|
1570
|
-
|
|
1571
|
-
})(
|
|
1572
|
-
const
|
|
1655
|
+
var j;
|
|
1656
|
+
(function(n) {
|
|
1657
|
+
n.CLUSTERING_BEGIN = "clusteringbegin", n.CLUSTERING_END = "clusteringend", n.CLUSTER_CLICK = "click";
|
|
1658
|
+
})(j || (j = {}));
|
|
1659
|
+
const wt = (n, e, t) => {
|
|
1573
1660
|
t.fitBounds(e.bounds);
|
|
1574
1661
|
};
|
|
1575
|
-
class
|
|
1576
|
-
constructor({ map: e, markers: t = [], algorithmOptions: s = {}, algorithm: r = new
|
|
1577
|
-
super(), this.markers = [...t], this.clusters = [], this.algorithm = r, this.renderer =
|
|
1662
|
+
class _t extends ue {
|
|
1663
|
+
constructor({ map: e, markers: t = [], algorithmOptions: s = {}, algorithm: r = new ft(s), renderer: o = new vt(), onClusterClick: a = wt }) {
|
|
1664
|
+
super(), this.markers = [...t], this.clusters = [], this.algorithm = r, this.renderer = o, this.onClusterClick = a, e && this.setMap(e);
|
|
1578
1665
|
}
|
|
1579
1666
|
addMarker(e, t) {
|
|
1580
1667
|
this.markers.includes(e) || (this.markers.push(e), t || this.render());
|
|
@@ -1603,7 +1690,7 @@ class yt extends ce {
|
|
|
1603
1690
|
render() {
|
|
1604
1691
|
const e = this.getMap();
|
|
1605
1692
|
if (e instanceof google.maps.Map && e.getProjection()) {
|
|
1606
|
-
google.maps.event.trigger(this,
|
|
1693
|
+
google.maps.event.trigger(this, j.CLUSTERING_BEGIN, this);
|
|
1607
1694
|
const { clusters: t, changed: s } = this.algorithm.calculate({
|
|
1608
1695
|
markers: this.markers,
|
|
1609
1696
|
map: e,
|
|
@@ -1613,12 +1700,12 @@ class yt extends ce {
|
|
|
1613
1700
|
const r = /* @__PURE__ */ new Set();
|
|
1614
1701
|
for (const a of t)
|
|
1615
1702
|
a.markers.length == 1 && r.add(a.markers[0]);
|
|
1616
|
-
const
|
|
1703
|
+
const o = [];
|
|
1617
1704
|
for (const a of this.clusters)
|
|
1618
|
-
a.marker != null && (a.markers.length == 1 ? r.has(a.marker) || k.setMap(a.marker, null) :
|
|
1619
|
-
this.clusters = t, this.renderClusters(), requestAnimationFrame(() =>
|
|
1705
|
+
a.marker != null && (a.markers.length == 1 ? r.has(a.marker) || k.setMap(a.marker, null) : o.push(a.marker));
|
|
1706
|
+
this.clusters = t, this.renderClusters(), requestAnimationFrame(() => o.forEach((a) => k.setMap(a, null)));
|
|
1620
1707
|
}
|
|
1621
|
-
google.maps.event.trigger(this,
|
|
1708
|
+
google.maps.event.trigger(this, j.CLUSTERING_END, this);
|
|
1622
1709
|
}
|
|
1623
1710
|
}
|
|
1624
1711
|
onAdd() {
|
|
@@ -1631,19 +1718,19 @@ class yt extends ce {
|
|
|
1631
1718
|
this.markers.forEach((e) => k.setMap(e, null)), this.clusters.forEach((e) => e.delete()), this.clusters = [];
|
|
1632
1719
|
}
|
|
1633
1720
|
renderClusters() {
|
|
1634
|
-
const e = new
|
|
1721
|
+
const e = new gt(this.markers, this.clusters), t = this.getMap();
|
|
1635
1722
|
this.clusters.forEach((s) => {
|
|
1636
1723
|
s.markers.length === 1 ? s.marker = s.markers[0] : (s.marker = this.renderer.render(s, e, t), s.markers.forEach((r) => k.setMap(r, null)), this.onClusterClick && s.marker.addListener(
|
|
1637
1724
|
"click",
|
|
1638
1725
|
/* istanbul ignore next */
|
|
1639
1726
|
(r) => {
|
|
1640
|
-
google.maps.event.trigger(this,
|
|
1727
|
+
google.maps.event.trigger(this, j.CLUSTER_CLICK, s), this.onClusterClick(r, s, t);
|
|
1641
1728
|
}
|
|
1642
1729
|
)), k.setMap(s.marker, t);
|
|
1643
1730
|
});
|
|
1644
1731
|
}
|
|
1645
1732
|
}
|
|
1646
|
-
const
|
|
1733
|
+
const be = Object.values(j), Rt = b({
|
|
1647
1734
|
name: "MarkerCluster",
|
|
1648
1735
|
props: {
|
|
1649
1736
|
options: {
|
|
@@ -1651,37 +1738,37 @@ const Ce = Object.values(I), It = M({
|
|
|
1651
1738
|
default: () => ({})
|
|
1652
1739
|
}
|
|
1653
1740
|
},
|
|
1654
|
-
emits:
|
|
1655
|
-
setup(
|
|
1656
|
-
const r =
|
|
1657
|
-
return
|
|
1658
|
-
|
|
1741
|
+
emits: be,
|
|
1742
|
+
setup(n, { emit: e, expose: t, slots: s }) {
|
|
1743
|
+
const r = y(), o = C(Z, y()), a = C(D, y());
|
|
1744
|
+
return G(Le, r), O(
|
|
1745
|
+
o,
|
|
1659
1746
|
() => {
|
|
1660
|
-
|
|
1661
|
-
new
|
|
1662
|
-
map:
|
|
1747
|
+
o.value && (r.value = S(
|
|
1748
|
+
new _t({
|
|
1749
|
+
map: o.value,
|
|
1663
1750
|
// Better perf than the default `SuperClusterAlgorithm`. See:
|
|
1664
1751
|
// https://github.com/googlemaps/js-markerclusterer/pull/640
|
|
1665
|
-
algorithm: new
|
|
1666
|
-
...
|
|
1752
|
+
algorithm: new mt(n.options.algorithmOptions ?? {}),
|
|
1753
|
+
...n.options
|
|
1667
1754
|
})
|
|
1668
|
-
),
|
|
1755
|
+
), be.forEach((l) => {
|
|
1669
1756
|
var i;
|
|
1670
|
-
(i = r.value) == null || i.addListener(
|
|
1757
|
+
(i = r.value) == null || i.addListener(l, (h) => e(l, h));
|
|
1671
1758
|
}));
|
|
1672
1759
|
},
|
|
1673
1760
|
{
|
|
1674
1761
|
immediate: !0
|
|
1675
1762
|
}
|
|
1676
|
-
),
|
|
1677
|
-
var
|
|
1678
|
-
r.value && ((
|
|
1763
|
+
), B(() => {
|
|
1764
|
+
var l;
|
|
1765
|
+
r.value && ((l = a.value) == null || l.event.clearInstanceListeners(r.value), r.value.clearMarkers(), r.value.setMap(null));
|
|
1679
1766
|
}), t({ markerCluster: r }), () => {
|
|
1680
|
-
var
|
|
1681
|
-
return (
|
|
1767
|
+
var l;
|
|
1768
|
+
return (l = s.default) == null ? void 0 : l.call(s);
|
|
1682
1769
|
};
|
|
1683
1770
|
}
|
|
1684
|
-
}),
|
|
1771
|
+
}), kt = b({
|
|
1685
1772
|
inheritAttrs: !1,
|
|
1686
1773
|
props: {
|
|
1687
1774
|
options: {
|
|
@@ -1689,34 +1776,34 @@ const Ce = Object.values(I), It = M({
|
|
|
1689
1776
|
required: !0
|
|
1690
1777
|
}
|
|
1691
1778
|
},
|
|
1692
|
-
setup(
|
|
1693
|
-
const r =
|
|
1779
|
+
setup(n, { slots: e, emit: t, expose: s }) {
|
|
1780
|
+
const r = y(), o = J(() => {
|
|
1694
1781
|
var i;
|
|
1695
|
-
return (i = e.default) == null ? void 0 : i.call(e).some((
|
|
1696
|
-
}), a =
|
|
1697
|
-
...
|
|
1782
|
+
return (i = e.default) == null ? void 0 : i.call(e).some((h) => h.type !== Ee);
|
|
1783
|
+
}), a = J(() => ({
|
|
1784
|
+
...n.options,
|
|
1698
1785
|
element: r.value
|
|
1699
|
-
})),
|
|
1786
|
+
})), l = U(ee, [], a, t);
|
|
1700
1787
|
return s({
|
|
1701
|
-
customMarker:
|
|
1702
|
-
}), { customMarkerRef: r, customMarker:
|
|
1788
|
+
customMarker: l
|
|
1789
|
+
}), { customMarkerRef: r, customMarker: l, hasSlotContent: o };
|
|
1703
1790
|
}
|
|
1704
1791
|
});
|
|
1705
|
-
const
|
|
1792
|
+
const Ct = {
|
|
1706
1793
|
key: 0,
|
|
1707
1794
|
class: "custom-marker-wrapper"
|
|
1708
1795
|
};
|
|
1709
|
-
function
|
|
1710
|
-
return
|
|
1711
|
-
|
|
1796
|
+
function bt(n, e, t, s, r, o) {
|
|
1797
|
+
return n.hasSlotContent ? (Y(), X("div", Ct, [
|
|
1798
|
+
ae("div", Pe({
|
|
1712
1799
|
ref: "customMarkerRef",
|
|
1713
|
-
style: { cursor:
|
|
1714
|
-
},
|
|
1715
|
-
|
|
1800
|
+
style: { cursor: n.$attrs.onClick ? "pointer" : void 0 }
|
|
1801
|
+
}, n.$attrs), [
|
|
1802
|
+
Q(n.$slots, "default", {}, void 0, !0)
|
|
1716
1803
|
], 16)
|
|
1717
|
-
])) :
|
|
1804
|
+
])) : Oe("", !0);
|
|
1718
1805
|
}
|
|
1719
|
-
const
|
|
1806
|
+
const jt = /* @__PURE__ */ te(kt, [["render", bt], ["__scopeId", "data-v-2d2d343a"]]), qt = b({
|
|
1720
1807
|
name: "HeatmapLayer",
|
|
1721
1808
|
props: {
|
|
1722
1809
|
options: {
|
|
@@ -1724,20 +1811,20 @@ const $t = /* @__PURE__ */ ee(wt, [["render", _t], ["__scopeId", "data-v-c7599d5
|
|
|
1724
1811
|
default: () => ({})
|
|
1725
1812
|
}
|
|
1726
1813
|
},
|
|
1727
|
-
setup(
|
|
1728
|
-
const e =
|
|
1814
|
+
setup(n) {
|
|
1815
|
+
const e = y(), t = C(Z, y()), s = C(D, y());
|
|
1729
1816
|
return O(
|
|
1730
|
-
[t, () =>
|
|
1731
|
-
([r,
|
|
1732
|
-
var
|
|
1733
|
-
const i = !
|
|
1817
|
+
[t, () => n.options],
|
|
1818
|
+
([r, o], [a, l]) => {
|
|
1819
|
+
var h;
|
|
1820
|
+
const i = !T(o, l) || t.value !== a;
|
|
1734
1821
|
if (t.value && s.value && i) {
|
|
1735
|
-
const u = structuredClone(
|
|
1822
|
+
const u = structuredClone(o);
|
|
1736
1823
|
if (u.data && !(u.data instanceof s.value.MVCArray)) {
|
|
1737
|
-
const
|
|
1738
|
-
u.data = (
|
|
1824
|
+
const c = s.value.LatLng;
|
|
1825
|
+
u.data = (h = u.data) == null ? void 0 : h.map((d) => d instanceof c || "location" in d && (d.location instanceof c || d.location === null) ? d : "location" in d ? { ...d, location: new c(d.location) } : new c(d));
|
|
1739
1826
|
}
|
|
1740
|
-
e.value ? e.value.setOptions(u) : e.value =
|
|
1827
|
+
e.value ? e.value.setOptions(u) : e.value = S(
|
|
1741
1828
|
new s.value.visualization.HeatmapLayer({
|
|
1742
1829
|
...u,
|
|
1743
1830
|
map: t.value
|
|
@@ -1746,22 +1833,22 @@ const $t = /* @__PURE__ */ ee(wt, [["render", _t], ["__scopeId", "data-v-c7599d5
|
|
|
1746
1833
|
}
|
|
1747
1834
|
},
|
|
1748
1835
|
{ immediate: !0 }
|
|
1749
|
-
),
|
|
1836
|
+
), B(() => {
|
|
1750
1837
|
e.value && e.value.setMap(null);
|
|
1751
1838
|
}), { heatmapLayer: e };
|
|
1752
1839
|
},
|
|
1753
1840
|
render: () => null
|
|
1754
1841
|
});
|
|
1755
1842
|
export {
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1843
|
+
At as Circle,
|
|
1844
|
+
Tt as CustomControl,
|
|
1845
|
+
jt as CustomMarker,
|
|
1759
1846
|
Ot as GoogleMap,
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1847
|
+
qt as HeatmapLayer,
|
|
1848
|
+
$t as InfoWindow,
|
|
1849
|
+
xt as Marker,
|
|
1850
|
+
Rt as MarkerCluster,
|
|
1851
|
+
St as Polygon,
|
|
1852
|
+
Lt as Polyline,
|
|
1853
|
+
It as Rectangle
|
|
1767
1854
|
};
|