UNPKG

cione-comp-lib

Version:

`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`

64 lines (63 loc) 2.04 kB
function Maptalks3DLayer(id, zr, defaultCenter, defaultZoom) { this.id = id; this.zr = zr; this.dom = document.createElement("div"); this.dom.style.cssText = "position:absolute;left:0;right:0;top:0;bottom:0;"; if (!maptalks) { throw new Error("Maptalks library must be included. See https://maptalks.org"); } this._maptalks = new maptalks.Map(this.dom, { center: defaultCenter, zoom: defaultZoom, doubleClickZoom: false, fog: false }); this._initEvents(); } Maptalks3DLayer.prototype.setUnpainted = function() { }; Maptalks3DLayer.prototype.resize = function() { this._maptalks.checkSize(); }; Maptalks3DLayer.prototype.getMaptalks = function() { return this._maptalks; }; Maptalks3DLayer.prototype.clear = function() { }; Maptalks3DLayer.prototype.refresh = function() { this._maptalks.checkSize(); }; var EVENTS = ["mousedown", "mouseup", "click", "dblclick", "mousemove", "mousewheel", "DOMMouseScroll", "touchstart", "touchend", "touchmove", "touchcancel"]; Maptalks3DLayer.prototype._initEvents = function() { var maptalksRoot = this.dom; this._handlers = this._handlers || { contextmenu: function(e) { e.preventDefault(); return false; } }; EVENTS.forEach(function(eName) { this._handlers[eName] = function(e) { var obj = {}; for (var name in e) { obj[name] = e[name]; } obj.bubbles = false; var newE = new e.constructor(e.type, obj); if (eName === "mousewheel" || eName === "DOMMouseScroll") { maptalksRoot.dispatchEvent(newE); } else { maptalksRoot.firstElementChild.dispatchEvent(newE); } }; this.zr.dom.addEventListener(eName, this._handlers[eName]); }, this); this.zr.dom.addEventListener("contextmenu", this._handlers.contextmenu); }; Maptalks3DLayer.prototype.dispose = function() { EVENTS.forEach(function(eName) { this.zr.dom.removeEventListener(eName, this._handlers[eName]); }, this); this._maptalks.remove(); }; export { Maptalks3DLayer as default };