cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
56 lines (55 loc) • 1.75 kB
JavaScript
function Mapbox3DLayer(id, zr) {
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 (!mapboxgl) {
throw new Error("Mapbox GL library must be included. See https://www.mapbox.com/mapbox-gl-js/api/");
}
this._mapbox = new mapboxgl.Map({
container: this.dom
});
this._initEvents();
}
Mapbox3DLayer.prototype.setUnpainted = function() {
};
Mapbox3DLayer.prototype.resize = function() {
this._mapbox.resize();
};
Mapbox3DLayer.prototype.getMapbox = function() {
return this._mapbox;
};
Mapbox3DLayer.prototype.clear = function() {
};
Mapbox3DLayer.prototype.refresh = function() {
this._mapbox.resize();
};
var EVENTS = ["mousedown", "mouseup", "click", "dblclick", "mousemove", "mousewheel", "wheel", "touchstart", "touchend", "touchmove", "touchcancel"];
Mapbox3DLayer.prototype._initEvents = function() {
var mapboxRoot = this._mapbox.getCanvasContainer();
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);
mapboxRoot.dispatchEvent(newE);
};
this.zr.dom.addEventListener(eName, this._handlers[eName]);
}, this);
this.zr.dom.addEventListener("contextmenu", this._handlers.contextmenu);
};
Mapbox3DLayer.prototype.dispose = function() {
EVENTS.forEach(function(eName) {
this.zr.dom.removeEventListener(eName, this._handlers[eName]);
}, this);
};
export { Mapbox3DLayer as default };