UNPKG

vue-tianditu2

Version:
1 lines 3.44 kB
{"version":3,"file":"apiLoader.mjs","sources":["../../../packages/use/apiLoader.ts"],"sourcesContent":["export const DEFAULT_CONFIG = {\n v: \"4.0\",\n tk: \"\",\n plugins: []\n};\n\nexport const PLUGINS_URL = {\n D3: [\n \"https://cdn.bootcss.com/d3/3.5.17/d3.min.js\",\n \"http://lbs.tianditu.gov.cn/api/js4.0/opensource/openlibrary/D3SvgOverlay.min.js\"\n ],\n CarTrack: [\n \"https://cdn.bootcss.com/d3/3.5.17/d3.min.js\",\n \"http://lbs.tianditu.gov.cn/api/js4.0/opensource/openlibrary/D3SvgOverlay.min.js\",\n \"http://lbs.tianditu.gov.cn/api/js4.0/opensource/openlibrary/CarTrack.min.js\"\n ],\n HeatmapOverlay: [\"http://lbs.tianditu.gov.cn/api/js4.0/opensource/openlibrary/HeatmapOverlay.min.js\"],\n BufferTool: [\n \"https://cdn.bootcss.com/Turf.js/3.0.14/turf.js\",\n \"http://lbs.tianditu.gov.cn/api/js4.0/opensource/openlibrary/BufferTool.min.js\"\n ],\n ImageOverLayer: [\"http://lbs.tianditu.gov.cn/api/js4.0/opensource/openlibrary/ImageOverlay.min.js\"]\n};\n\nexport interface LoadConfig {\n v?: string;\n tk?: string;\n plugins?: (keyof typeof PLUGINS_URL)[];\n}\n\nlet isLoading = false;\nexport async function useApiLoader(config: LoadConfig = {}) {\n if (isLoading) {\n return new Promise(resolve => {\n setTimeout(() => resolve(useApiLoader(config)));\n });\n } else if (globalThis.T) {\n return;\n } else {\n isLoading = true;\n const { v, tk, plugins } = { ...DEFAULT_CONFIG, ...config };\n await loadScript(`https://api.tianditu.gov.cn/api?v=${v}&tk=${tk}`);\n await Promise.all(\n plugins\n .map((name: keyof typeof PLUGINS_URL) => PLUGINS_URL[name])\n .flat()\n .map(url => loadScript(url))\n );\n isLoading = false;\n }\n}\n\nfunction loadScript(url: string) {\n return new Promise<void>(resolve => {\n const script = globalThis.document?.createElement(\"script\");\n if (!script) resolve();\n script.src = url;\n script.type = \"text/javascript\";\n script.async = true;\n script.defer = true;\n script.onload = () => resolve();\n script.onerror = () => resolve();\n globalThis.document?.body.appendChild(script);\n });\n}\n"],"names":["DEFAULT_CONFIG","PLUGINS_URL","isLoading","useApiLoader","config","resolve","v","tk","plugins","loadScript","name","url","_a","_b","script"],"mappings":"AAAO,MAAMA,IAAiB;AAAA,EAC5B,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,SAAS,CAAA;AACX,GAEaC,IAAc;AAAA,EACzB,IAAI;AAAA,IACF;AAAA,IACA;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,gBAAgB,CAAC,mFAAmF;AAAA,EACpG,YAAY;AAAA,IACV;AAAA,IACA;AAAA,EACF;AAAA,EACA,gBAAgB,CAAC,iFAAiF;AACpG;AAQA,IAAIC,IAAY;AACM,eAAAC,EAAaC,IAAqB,IAAI;AAC1D,MAAIF;AACK,WAAA,IAAI,QAAQ,CAAWG,MAAA;AAC5B,iBAAW,MAAMA,EAAQF,EAAaC,CAAM,CAAC,CAAC;AAAA,IAAA,CAC/C;AACH,MAAW,WAAW;AACpB;AACK;AACO,IAAAF,IAAA;AACN,UAAA,EAAE,GAAAI,GAAG,IAAAC,GAAI,SAAAC,MAAY,EAAE,GAAGR,GAAgB,GAAGI,EAAO;AAC1D,UAAMK,EAAW,qCAAqCH,CAAC,OAAOC,CAAE,EAAE,GAClE,MAAM,QAAQ;AAAA,MACZC,EACG,IAAI,CAACE,MAAmCT,EAAYS,CAAI,CAAC,EACzD,KAAA,EACA,IAAI,CAAOC,MAAAF,EAAWE,CAAG,CAAC;AAAA,IAC/B,GACYT,IAAA;AAAA,EAAA;AAEhB;AAEA,SAASO,EAAWE,GAAa;AACxB,SAAA,IAAI,QAAc,CAAWN,MAAA;AArD/B,QAAAO,GAAAC;AAsDH,UAAMC,KAASF,IAAA,WAAW,aAAX,gBAAAA,EAAqB,cAAc;AAC9C,IAACE,KAAgBT,EAAA,GACrBS,EAAO,MAAMH,GACbG,EAAO,OAAO,mBACdA,EAAO,QAAQ,IACfA,EAAO,QAAQ,IACRA,EAAA,SAAS,MAAMT,EAAQ,GACvBS,EAAA,UAAU,MAAMT,EAAQ,IACpBQ,IAAA,WAAA,aAAA,QAAAA,EAAU,KAAK,YAAYC;AAAA,EAAM,CAC7C;AACH;"}