@tuoyuan/map-adapter-lib
Version:
地图适配器库
134 lines (133 loc) • 5 kB
JavaScript
var l = Object.defineProperty;
var f = (n, o, s) => o in n ? l(n, o, { enumerable: !0, configurable: !0, writable: !0, value: s }) : n[o] = s;
var p = (n, o, s) => f(n, typeof o != "symbol" ? o + "" : o, s);
import { throwError as m } from "./utils/throw-error.js";
import { throwWarn as A } from "./utils/throw-warn.js";
import { deepAssign as h } from "./utils/deep-assign.js";
const d = {
image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAA/CAYAAACM5Lr9AAAFkklEQVR42s3VaWxUVRjG8ddiEKPRxAQTCVSWLnZaWmjpTgulpYUBExP9Agou4IKAogUKAgItlNJCgUIXINFPfsFoDCjibkQRI0QIICAQWUpZugKtpcv0+DxyYqaTe2/vTLf58Etu7znnPf+0k44opQw5i5qsjIFs2APHoBZatFq+02vZeq94yyKs0dOjsAzOTCtuVtNKWtX0UpeaXqHU07tgt4ZnvuMa93Avz/CsniE2WIQV3iEaCDnQ8F/MTgZ4h2d4ljNgmZ4pFszDpmIRIuFP57YWDMcFu7uHMziLMyEKxJBl2MbbM6DZub2NQ3sUZ3K2vkMMGIdNKbi1ADqcZe1q2i7VKzibd8BCEE8GUQ3PQ4ez3KWcGNCbeAfv0neKm85hWRvqo+Hu1LJ2HuwTvAt3tkAciKbDIDO/7iE4l7X9rpqCA30pa3uLwt3nYRAIuIfV5mcWN6msnapf8G405IGQMGry+prB0DiloqPfwng3G3SLDltXnTt5S6PK3NnRr9jAFhDJyLsZAJcz8SGcjOr+xAa0XGGTpOfeSMrYUKcyKlx+gS1oSkbY9VXpm2+rjHKXX2ALm2TS2qq96duaVHp5u19gC5skbc3V05N23FWT8NIfsIVNkra6siGttE2llbX7h9JWhaZ6mfj+lfaJZW3Kn6DJJRNWXWqbgN+Y39jRqtDUKKkrL15PxfdjammrfyhpVmiqlNQVfx9KwX/cFJT6A7awSVLeu1CeUlinxu9o8QsphbUKTWUyfvn5Wcm511QSXvoDtrBJkpedewzaE/E58wdsYZMopSQ55+z+pKK6fo9KKqpXaDkAIgxLWnomK3H1JZVQ0tyv2ICW6XAvLHHJ6QD4K6GgRsVjQ3/g3WzQLffCKGHJqfHgisOXaNy2f/oU7+TdukGIUW5xJ0vic6+oWGzsS7yTd4NoncPiF594GC7FFlSrcVub+gTv4p36btE6h1Fc9nFn7IpzKmZrY5/gXbwTxI0O8xD77rGPYtZeVtE42Jt4B+8C8WAcNu6dPwZDzVh8PYzdcqdXcDbvgMdBPDHEOG7R0Xkxqy6oKAzpDZzNO0AMmIfFvH1kABwZk1epIotv9yjOxOyj+g4xYB4W/dbvlAAdozGsJ3Gmni0mzMPGLvyN6IMo/NojNt/qEZyFmR+CWLAIW3CYaDDUR+D/TTgGdwdncJaeKRbMw8bM/9XdosjlZ5VjU0O3cAZngXTBPCzqzV/cPQAXHeuqVBgu8IVj/TXFGXqWdME8LHLez55mRSw9qUI31fuEZzFjNogNFmFvHPQUACfC8IUbUlTvlbDcSsWzeobYYB42+vWfjDwbnn3c6zCewdnnQGwyD4t47UcjAXA2JO+qCi6ss4V7eUafFZuswn4wM8ex+LgKwqV2cC/OzAXxgnlY+KvfmxkIVaPyr6tRhbWWuId79RnxgnmYY+53VlaHLj2lRm6stRSSc0ph7xoQL1mEzfnWyhPQNrKgGgE1hrjGPTAExEvmYWGvfNOVPUErz6vhiDDCNez5GMQHVmFfd2Vq6MLD6smCGkNc4x4QH5iHPfXyV125H64NX1eFkOpO+I5reo/4wDws9KUDdhSPxFdNIGLc8R3XQHxkFfalHYnB8w6qYRuqO+E7roH4yDws5MX9dtwHlYF5lQi6qYjPfKfXxEcWYbO/sKtsBP50QxFFI/D/De8qQLrBPCwYizY9M2r+of/D+Mx3ID6zDJv1uaVwGfAIBDqGJsbhZ9eQ/BuK+OwYlhzPNe7hXh9Yhe0zwqBB4IAYouCZn1wIXH5GEZ/d1sjBMzzrBfOwoBf2GWFYBMS4C03JWRA087OaoBmf3uCz5zrP8Kx9lmF7jXiE2RbBs95ghB0MIo8/pS0OeJAzvOBLmKY//BAGURBN+jmMa3qPkLdh/wKOL8SpLbnYFgAAAABJRU5ErkJggg=="
}, g = {
style: {
marker: {
icon: {
image: d.image,
imageSize: {
width: 20,
height: 20
},
offset: {
x: 0,
y: 0
},
placement: "top"
},
label: {
backgroundColor: "#fff",
color: "#000",
fontSize: 12
}
},
polyline: {
line: {
style: "solid",
color: "blue",
width: 2,
opacity: 1
},
label: {
backgroundColor: "#fff",
color: "#000",
fontSize: 12
}
},
polygon: {
line: {
style: "solid",
color: "blue",
width: 2,
opacity: 1
},
fill: {
color: "green",
opacity: 0.5
},
label: {
backgroundColor: "#fff",
color: "#000",
fontSize: 12
}
}
},
label: {
minShowZoom: 12
},
heatmap: {
radius: 50,
gradient: {
1: "rgb(255, 0, 0)",
"0.5": "rgb(255, 255, 0)",
0: "rgb(0, 255, 0)"
}
}
}, i = class i {
constructor(o, s) {
p(this, "mapType");
p(this, "options");
p(this, "mapInstance");
this.mapType = o, this.options = h({}, g, s);
const t = i.mapClasses.get(o);
if (!t)
throw new Error(`【${o}】地图未挂载。`);
this.mapInstance = new t(), this.mapInstance.setCtx(this), this.mapInstance.addListener((e, a) => {
this.options.dev && (console.groupCollapsed("[Map.event]", e), console.log("payload: ", a), console.groupEnd());
});
}
throwNoMethod(o) {
var t;
const s = `${this.mapType}地图不存在"${o}"方法。`;
(t = this.options) != null && t.dev ? m(s) : A(s);
}
has(o) {
return o in this.mapInstance;
}
exec(o, ...s) {
if (o in this.mapInstance)
return this.mapInstance[o].apply(this.mapInstance, s);
throw this.throwNoMethod(o);
}
on(o, s) {
this.mapInstance.on(o, s);
}
once(o, s) {
this.mapInstance.once(o, s);
}
off(o, s) {
this.mapInstance.off(o, s);
}
static useMapClass(o, s) {
i.mapClasses.has(o) || i.mapClasses.set(o, s);
}
};
p(i, "mapClasses", /* @__PURE__ */ new Map());
let c = i;
function b(n, o) {
c.useMapClass(n, o);
}
function K(n, o) {
const s = new c(n, o);
return new Proxy(s, {
get(e, a) {
if (a in e)
return e[a];
if (a in e.mapInstance) {
const r = e.mapInstance[a];
return typeof r == "function" ? r.bind(e.mapInstance) : r;
}
}
});
}
export {
c as ProxyMap,
K as createMap,
b as useMapClass
};