UNPKG

@tuoyuan/map-adapter-lib

Version:

地图适配器库

134 lines (133 loc) 5 kB
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 };