Skip to content

Commit cfc0316

Browse files
committed
尝试优化mbgl three图层性能
1 parent 630fdc1 commit cfc0316

5 files changed

Lines changed: 29 additions & 65 deletions

File tree

dist/iclient9-mapboxgl.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/iclient9-mapboxgl.js

Lines changed: 14 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -55542,9 +55542,8 @@ var ThreeLayer = exports.ThreeLayer = function (_mapboxgl$Evented) {
5554255542
me._map = map;
5554355543
me.renderer.setMap(map);
5554455544
me.renderer.render();
55545-
this._moving = false;
5554655545
//three mbgl 联动(仅联动相机,不执行重绘操作)
55547-
me._map.on('move', this._update.bind(me));
55546+
me._map.on('render', this._update.bind(me));
5554855547
me._map.on('resize', this._resize.bind(me));
5554955548

5555055549
return this;
@@ -55643,19 +55642,15 @@ var ThreeLayer = exports.ThreeLayer = function (_mapboxgl$Evented) {
5564355642
}, {
5564455643
key: "_update",
5564555644
value: function _update() {
55646-
if (!this._moving) {
55647-
this._moving = !!1;
55648-
this.renderScene();
55649-
this._moving = !!0;
55650-
/**
55651-
* move事件,地图移动时触发
55652-
* @event mapboxgl.supermap.ThreeLayer#move
55653-
* @type {Object}
55654-
* @property {string} type - move
55655-
* @property {Object} target - layer
55656-
*/
55657-
this.fire('move');
55658-
}
55645+
/**
55646+
* render事件,地图渲染时(地图状态改变时)触发
55647+
* @event mapboxgl.supermap.ThreeLayer#render
55648+
* @type {Object}
55649+
* @property {string} type - render
55650+
* @property {Object} target - layer
55651+
*/
55652+
this.renderScene();
55653+
this.fire('render');
5565955654
return this;
5566055655
}
5566155656
}]);
@@ -81540,9 +81535,6 @@ var ThreeLayerRenderer = exports.ThreeLayerRenderer = function () {
8154081535
this._layer = layer;
8154181536
this.renderer = renderer || "gl";
8154281537
this.options = options;
81543-
81544-
var layerOpt = this._layer.options;
81545-
this.forceRefresh = layerOpt != null ? layerOpt.forceRefresh : false;
8154681538
}
8154781539

8154881540
_createClass(ThreeLayerRenderer, [{
@@ -81601,18 +81593,10 @@ var ThreeLayerRenderer = exports.ThreeLayerRenderer = function () {
8160181593
}, {
8160281594
key: "renderFrame",
8160381595
value: function renderFrame(fn) {
81604-
var _render;
81605-
if (this.forceRefresh) {
81606-
_render = function render() {
81607-
fn && typeof fn === "function" && fn();
81608-
return frame(_render);
81609-
};
81610-
} else {
81611-
_render = function _render() {
81612-
fn && typeof fn === "function" && fn();
81613-
};
81614-
}
81615-
return frame(_render);
81596+
var render = function render() {
81597+
fn && typeof fn === "function" && fn();
81598+
};
81599+
return frame(render);
8161681600
}
8161781601
}, {
8161881602
key: "resize",

dist/iclient9-mapboxgl.min.js

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/mapboxgl/overlay/ThreeLayer.js

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -325,9 +325,8 @@ export class ThreeLayer extends mapboxgl.Evented {
325325
me._map = map;
326326
me.renderer.setMap(map);
327327
me.renderer.render();
328-
this._moving = false;
329328
//three mbgl 联动(仅联动相机,不执行重绘操作)
330-
me._map.on('move', this._update.bind(me));
329+
me._map.on('render', this._update.bind(me));
331330
me._map.on('resize', this._resize.bind(me));
332331

333332
return this;
@@ -408,22 +407,17 @@ export class ThreeLayer extends mapboxgl.Evented {
408407
}
409408

410409
_update() {
411-
if (!this._moving) {
412-
this._moving = !!1;
413-
this.renderScene();
414-
this._moving = !!0;
415-
/**
416-
* move事件,地图移动时触发
417-
* @event mapboxgl.supermap.ThreeLayer#move
418-
* @type {Object}
419-
* @property {string} type - move
420-
* @property {Object} target - layer
421-
*/
422-
this.fire('move');
423-
}
410+
/**
411+
* render事件,地图渲染时(地图状态改变时)触发
412+
* @event mapboxgl.supermap.ThreeLayer#render
413+
* @type {Object}
414+
* @property {string} type - render
415+
* @property {Object} target - layer
416+
*/
417+
this.renderScene();
418+
this.fire('render');
424419
return this;
425420
}
426-
427421
}
428422

429423

src/mapboxgl/overlay/threejs/ThreeLayerRenderer.js

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,6 @@ export class ThreeLayerRenderer {
5151
this._layer = layer;
5252
this.renderer = renderer || "gl";
5353
this.options = options;
54-
55-
var layerOpt = this._layer.options;
56-
this.forceRefresh = layerOpt != null
57-
? layerOpt.forceRefresh
58-
: false;
5954
}
6055

6156
setMap(map) {
@@ -104,17 +99,9 @@ export class ThreeLayerRenderer {
10499
}
105100

106101
renderFrame(fn) {
107-
var render;
108-
if (this.forceRefresh) {
109-
render = function () {
110-
fn && typeof fn === "function" && fn();
111-
return frame(render);
112-
}
113-
} else {
114-
render = function () {
115-
fn && typeof fn === "function" && fn();
116-
}
117-
}
102+
var render = function () {
103+
fn && typeof fn === "function" && fn();
104+
};
118105
return frame(render);
119106
}
120107

0 commit comments

Comments
 (0)