1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- 'use strict'; (function (m, p) { "object" === typeof exports && "undefined" !== typeof module ? module.exports = p() : "function" === typeof define && define.amd ? define(p) : (m = m || self, m.AMapLoader = p()) })(this, function () {
- function m(a) { var b = []; a.AMapUI && b.push(p(a.AMapUI)); a.Loca && b.push(r(a.Loca)); return Promise.all(b) } function p(a) {
- return new Promise(function (h, c) {
- var f = []; if (a.plugins) for (var e = 0; e < a.plugins.length; e += 1)-1 == d.AMapUI.plugins.indexOf(a.plugins[e]) && f.push(a.plugins[e]); if (g.AMapUI === b.failed) c("\u524d\u6b21\u8bf7\u6c42 AMapUI \u5931\u8d25");
- else if (g.AMapUI === b.notload) {
- g.AMapUI = b.loading; d.AMapUI.version = a.version || d.AMapUI.version; e = d.AMapUI.version; var l = document.body || document.head, k = document.createElement("script"); k.type = "text/javascript"; k.src = "https://webapi.amap.com/ui/" + e + "/main.js"; k.onerror = function (a) { g.AMapUI = b.failed; c("\u8bf7\u6c42 AMapUI \u5931\u8d25") }; k.onload = function () {
- g.AMapUI = b.loaded; if (f.length) window.AMapUI.loadUI(f, function () {
- for (var a = 0, b = f.length; a < b; a++) {
- var c = f[a].split("/").slice(-1)[0]; window.AMapUI[c] =
- arguments[a]
- } for (h(); n.AMapUI.length;)n.AMapUI.splice(0, 1)[0]()
- }); else for (h(); n.AMapUI.length;)n.AMapUI.splice(0, 1)[0]()
- }; l.appendChild(k)
- } else g.AMapUI === b.loaded ? a.version && a.version !== d.AMapUI.version ? c("\u4e0d\u5141\u8bb8\u591a\u4e2a\u7248\u672c AMapUI \u6df7\u7528") : f.length ? window.AMapUI.loadUI(f, function () { for (var a = 0, b = f.length; a < b; a++) { var c = f[a].split("/").slice(-1)[0]; window.AMapUI[c] = arguments[a] } h() }) : h() : a.version && a.version !== d.AMapUI.version ? c("\u4e0d\u5141\u8bb8\u591a\u4e2a\u7248\u672c AMapUI \u6df7\u7528") :
- n.AMapUI.push(function (a) { a ? c(a) : f.length ? window.AMapUI.loadUI(f, function () { for (var a = 0, b = f.length; a < b; a++) { var c = f[a].split("/").slice(-1)[0]; window.AMapUI[c] = arguments[a] } h() }) : h() })
- })
- } function r(a) {
- return new Promise(function (h, c) {
- if (g.Loca === b.failed) c("\u524d\u6b21\u8bf7\u6c42 Loca \u5931\u8d25"); else if (g.Loca === b.notload) {
- g.Loca = b.loading; d.Loca.version = a.version || d.Loca.version; var f = d.Loca.version, e = d.AMap.version.startsWith("2"), l = f.startsWith("2"); if (e && !l || !e && l) c("JSAPI \u4e0e Loca \u7248\u672c\u4e0d\u5bf9\u5e94\uff01\uff01");
- else { e = d.key; l = document.body || document.head; var k = document.createElement("script"); k.type = "text/javascript"; k.src = "https://webapi.amap.com/loca?v=" + f + "&key=" + e; k.onerror = function (a) { g.Loca = b.failed; c("\u8bf7\u6c42 AMapUI \u5931\u8d25") }; k.onload = function () { g.Loca = b.loaded; for (h(); n.Loca.length;)n.Loca.splice(0, 1)[0]() }; l.appendChild(k) }
- } else g.Loca === b.loaded ? a.version && a.version !== d.Loca.version ? c("\u4e0d\u5141\u8bb8\u591a\u4e2a\u7248\u672c Loca \u6df7\u7528") : h() : a.version && a.version !== d.Loca.version ?
- c("\u4e0d\u5141\u8bb8\u591a\u4e2a\u7248\u672c Loca \u6df7\u7528") : n.Loca.push(function (a) { a ? c(a) : c() })
- })
- } if (!window) throw Error("AMap JSAPI can only be used in Browser."); var b; (function (a) { a.notload = "notload"; a.loading = "loading"; a.loaded = "loaded"; a.failed = "failed" })(b || (b = {})); var d = { key: "", AMap: { version: "1.4.15", plugins: [] }, AMapUI: { version: "1.1", plugins: [] }, Loca: { version: "1.3.2" } }, g = { AMap: b.notload, AMapUI: b.notload, Loca: b.notload }, n = { AMap: [], AMapUI: [], Loca: [] }, q = [], t = function (a) {
- "function" == typeof a &&
- (g.AMap === b.loaded ? a(window.AMap) : q.push(a))
- }; return {
- load: function (a) {
- return new Promise(function (h, c) {
- if (g.AMap == b.failed) c(""); else if (g.AMap == b.notload) {
- var f = a.key, e = a.version, l = a.plugins; f ? (window.AMap && "lbs.amap.com" !== location.host && c("\u7981\u6b62\u591a\u79cdAPI\u52a0\u8f7d\u65b9\u5f0f\u6df7\u7528"), d.key = f, d.AMap.version = e || d.AMap.version, d.AMap.plugins = l || d.AMap.plugins, g.AMap = b.loading, e = document.body || document.head, window.___onAPILoaded = function (d) {
- delete window.___onAPILoaded; if (d) g.AMap =
- b.failed, c(d); else for (g.AMap = b.loaded, m(a).then(function () { h(window.AMap) })["catch"](c); q.length;)q.splice(0, 1)[0]()
- }, l = document.createElement("script"), l.type = "text/javascript", l.src = "https://webapi.amap.com/maps?callback=___onAPILoaded&v=" + d.AMap.version + "&key=" + f + "&plugin=" + d.AMap.plugins.join(","), l.onerror = function (a) { g.AMap = b.failed; c(a) }, e.appendChild(l)) : c("\u8bf7\u586b\u5199key")
- } else if (g.AMap == b.loaded) if (a.key && a.key !== d.key) c("\u591a\u4e2a\u4e0d\u4e00\u81f4\u7684 key"); else if (a.version &&
- a.version !== d.AMap.version) c("\u4e0d\u5141\u8bb8\u591a\u4e2a\u7248\u672c JSAPI \u6df7\u7528"); else { f = []; if (a.plugins) for (e = 0; e < a.plugins.length; e += 1)-1 == d.AMap.plugins.indexOf(a.plugins[e]) && f.push(a.plugins[e]); if (f.length) window.AMap.plugin(f, function () { m(a).then(function () { h(window.AMap) })["catch"](c) }); else m(a).then(function () { h(window.AMap) })["catch"](c) } else if (a.key && a.key !== d.key) c("\u591a\u4e2a\u4e0d\u4e00\u81f4\u7684 key"); else if (a.version && a.version !== d.AMap.version) c("\u4e0d\u5141\u8bb8\u591a\u4e2a\u7248\u672c JSAPI \u6df7\u7528");
- else { var k = []; if (a.plugins) for (e = 0; e < a.plugins.length; e += 1)-1 == d.AMap.plugins.indexOf(a.plugins[e]) && k.push(a.plugins[e]); t(function () { if (k.length) window.AMap.plugin(k, function () { m(a).then(function () { h(window.AMap) })["catch"](c) }); else m(a).then(function () { h(window.AMap) })["catch"](c) }) }
- })
- }, reset: function () {
- delete window.AMap; delete window.AMapUI; delete window.Loca; d = { key: "", AMap: { version: "1.4.15", plugins: [] }, AMapUI: { version: "1.1", plugins: [] }, Loca: { version: "1.3.2" } }; g = {
- AMap: b.notload, AMapUI: b.notload,
- Loca: b.notload
- }; n = { AMap: [], AMapUI: [], Loca: [] }
- }
- }
- })
|