Skip to content

Commit 80536ae

Browse files
[fix]新增l7layer的reRender时机
1 parent 2412beb commit 80536ae

File tree

2 files changed

+54
-49
lines changed

2 files changed

+54
-49
lines changed

src/common/overlay/l7/L7LayerBase.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ export class L7LayerBase extends CustomOverlayLayer {
9595
source.on('update', () => {
9696
this.reRender();
9797
});
98+
this.l7layer.on('add', () => this.reRender());
9899
}
99100

100101
getLayer() {
@@ -215,15 +216,15 @@ export class L7LayerBase extends CustomOverlayLayer {
215216
type: 'Point'
216217
},
217218
properties: {
218-
...feature
219+
...feature
219220
}
220-
}
221+
};
221222
});
222223
sourceInfo.getData = () => {
223224
return {
224225
type: 'FeatureCollection',
225226
features: formatData
226-
}
227+
};
227228
};
228229
break;
229230
}
@@ -302,7 +303,9 @@ export class L7LayerBase extends CustomOverlayLayer {
302303
}
303304
const { layerSource, pickingService } = this.l7layer;
304305
let datas = pickingService.handleRawFeature(layerSource.data.dataArray, this.l7layer);
305-
const { parser: { type } } = layerSource;
306+
const {
307+
parser: { type }
308+
} = layerSource;
306309
if (type === 'mvt') {
307310
const { tileset: { cacheTiles = [] } = {} } = layerSource;
308311
const { sourceLayer, featureId = 'id' } = this.l7layer.rawConfig;

test/mapboxgl/overlay/L7LayerSpec.js

Lines changed: 47 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,53 @@ describe('mapboxgl_L7Layer', () => {
9494
done();
9595
});
9696
});
97+
it('HeatmapLayer grid updateSource', (done) => {
98+
var layer = new L7Layer({ type: 'HeatmapLayer' });
99+
var l7Layer = layer.getL7Layer();
100+
l7Layer
101+
.source(data, {
102+
parser: {
103+
type: 'json',
104+
x: 'longitude',
105+
y: 'latitude'
106+
},
107+
transforms: [
108+
{
109+
type: 'grid',
110+
size: 2000000,
111+
field: 'v',
112+
method: 'sum'
113+
}
114+
]
115+
})
116+
.shape('circle')
117+
.active(true)
118+
.animate(true)
119+
.size(56)
120+
.color('#4cfd47');
121+
spyOn(layer, 'reRender');
122+
map.addLayer(layer);
123+
l7Layer.setData(data, {
124+
parser: {
125+
type: 'json',
126+
x: 'j',
127+
y: 'w'
128+
},
129+
transforms: [
130+
{
131+
type: 'grid',
132+
size: 200000,
133+
field: 'v',
134+
method: 'sum'
135+
}
136+
]
137+
});
138+
expect(l7Layer).not.toBeNull();
139+
setTimeout(() => {
140+
expect(layer.reRender).toHaveBeenCalledTimes(2);
141+
done();
142+
}, 200);
143+
});
97144

98145
it('getL7Scene1', (done) => {
99146
var layer = new L7Layer({ type: 'PointLayer' });
@@ -325,51 +372,6 @@ describe('mapboxgl_L7Layer', () => {
325372

326373
done();
327374
});
328-
it('HeatmapLayer grid updateSource', (done) => {
329-
var layer = new L7Layer({ type: 'HeatmapLayer' });
330-
var l7Layer = layer.getL7Layer();
331-
l7Layer
332-
.source(data, {
333-
parser: {
334-
type: 'json',
335-
x: 'longitude',
336-
y: 'latitude'
337-
},
338-
transforms: [
339-
{
340-
type: 'grid',
341-
size: 2000000,
342-
field: 'v',
343-
method: 'sum'
344-
}
345-
]
346-
})
347-
.shape('circle')
348-
.active(true)
349-
.animate(true)
350-
.size(56)
351-
.color('#4cfd47');
352-
map.addLayer(layer);
353-
spyOn(layer, 'reRender');
354-
l7Layer.setData(data, {
355-
parser: {
356-
type: 'json',
357-
x: 'j',
358-
y: 'w'
359-
},
360-
transforms: [
361-
{
362-
type: 'grid',
363-
size: 200000,
364-
field: 'v',
365-
method: 'sum'
366-
}
367-
]
368-
});
369-
expect(l7Layer).not.toBeNull();
370-
expect(layer.reRender).toHaveBeenCalled();
371-
done();
372-
});
373375

374376
it('mvt layer', (done) => {
375377
var layer = new L7Layer({ type: 'PointLayer' });

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy