antui-admin
Version:
admin ui for antd
71 lines (58 loc) • 2.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _promise = require('babel-runtime/core-js/promise');
var _promise2 = _interopRequireDefault(_promise);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function () {
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
key = _ref.key,
_ref$timeout = _ref.timeout,
timeout = _ref$timeout === undefined ? 10000 : _ref$timeout,
_ref$v = _ref.v,
v = _ref$v === undefined ? 1.3 : _ref$v,
plugin = _ref.plugin,
service = _ref.service;
var callbackName = '__mapsApiOnLoadCallback';
return new _promise2.default(function (resolve, reject) {
if (typeof window === 'undefined') {
return reject(new Error('Can only load the AMap API in the browser'));
}
if (document.querySelector("#amap_api_point")) {
if (window.AMap) return resolve(window.AMap);else document.querySelector("#amap_api_point").remove();
}
var scriptElement = document.createElement('script');
var params = ['callback=' + callbackName];
if (key) params.push('key=' + key);
if (v) params.push('v=' + v);
if (plugin) {
params.push('&plugin=AMap.Scale,AMap.OverView,AMap.ToolBar'); // 这块可以细分到具体加载哪个工具
}
scriptElement.src = 'http://webapi.amap.com/maps?' + params.join('&');
scriptElement.id = 'amap_api_point';
var timeoutId = null;
if (timeout) {
timeoutId = setTimeout(function () {
window[callbackName] = function () {};
reject(new Error('不能加载高德地图API'));
}, timeout);
}
window[callbackName] = function () {
if (timeoutId !== null) {
clearTimeout(timeoutId);
}
if (service) {
if (Array.isArray(service)) {
window.AMap.service(service);
} else {
window.AMap.service([service]);
}
}
resolve(window.AMap);
delete window[callbackName];
};
document.body.appendChild(scriptElement);
});
};
module.exports = exports['default'];