import hyMapBox from './components/index';
const instances = {};
const DOM_ATTRIBUTE_KEY = '_hy_instance_';
let idBase = new Date() - 0;
/**
* 全局变量
* @type {Object}
* @namespace hyMap
*/
const config = {
/**
* 版本号
* @memberof hyMap
* @type {String}
*/
/* version: '0.3',*/
/**
* 依赖第三方库 openlayers,turf
* @memberof hyMap
* @type {Object}
*/
/* dependencies: {
'mapbox-gl': '0.44.1'
},*/
/**
* 初始化
* @type {Boolean}
* @memberof hyMap
* @default false
* @param DomNode dom对象
*/
init: function (DOMNode) {
if (DOMNode === null) {
throw new Error('请提供合适的dom节点元素');
}
const nowID = 'map_' + idBase++;
let map = new hyMapBox(DOMNode);
instances[nowID] = map;
if (DOMNode.setAttribute) {
DOMNode.setAttribute(DOM_ATTRIBUTE_KEY, nowID);
}
return map;
},
/**
* 获取当前实例
* @memberof hyMap
* @param {DOM} dom 窗体dom
* @return {object|null} object实例
* @method
*/
getInstanceByDom: dom => {
const key = dom.getAttribute(DOM_ATTRIBUTE_KEY);
if (!key) {
console.error('该DOM节点上面没有地图实例');
return null;
} else {
return instances[key];
}
},
/**
* 删除
* @memberOf hyMap
* @param {String} id
* @method
*/
deleteInstance: id => {
delete instances[id];
}
};
export default config;