Skip to content

Commit 6987bc6

Browse files
committed
improve functions
1 parent 282caad commit 6987bc6

File tree

1 file changed

+28
-21
lines changed

1 file changed

+28
-21
lines changed

src/traces/scattermapbox/plot.js

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -85,63 +85,70 @@ proto.update = function update(calcTrace) {
8585
var map = subplot.map;
8686
var optsAll = convert(subplot.gd, calcTrace);
8787
var below = subplot.belowLookup['trace-' + this.uid];
88-
var i, k, opts;
8988
var hasCluster = !!(trace.cluster && trace.cluster.enabled);
9089
var hadCluster = !!this.clusterEnabled;
9190
var lThis = this;
9291

9392
function addCluster() {
9493
lThis.addSource('circle', optsAll.circle, trace.cluster);
95-
for(i = 0; i < ORDER.cluster.length; i++) {
96-
k = ORDER.cluster[i];
97-
opts = optsAll[k];
94+
var order = ORDER.cluster;
95+
for(var i = 0; i < order.length; i++) {
96+
var k = order[i];
97+
var opts = optsAll[k];
9898
lThis.addLayer(k, opts, below);
9999
}
100100
}
101101

102102
function removeCluster() {
103-
for(i = ORDER.cluster.length - 1; i >= 0; i--) {
104-
k = ORDER.cluster[i];
103+
var order = ORDER.cluster;
104+
for(var i = order.length - 1; i >= 0; i--) {
105+
var k = order[i];
105106
map.removeLayer(lThis.layerIds[k]);
106107
}
107108
map.removeSource(lThis.sourceIds.circle);
108109
}
109110

110111
function addNonCluster() {
111-
for(i = 0; i < ORDER.nonCluster.length; i++) {
112-
k = ORDER.nonCluster[i];
113-
opts = optsAll[k];
112+
var order = ORDER.nonCluster;
113+
for(var i = 0; i < order.length; i++) {
114+
var k = order[i];
115+
var opts = optsAll[k];
114116
lThis.addSource(k, opts, trace.cluster);
115117
lThis.addLayer(k, opts, below);
116118
}
117119
}
118120

119121
function removeNonCluster() {
120-
for(i = ORDER.nonCluster.length - 1; i >= 0; i--) {
121-
k = ORDER.nonCluster[i];
122+
var order = ORDER.nonCluster;
123+
for(var i = order.length - 1; i >= 0; i--) {
124+
var k = order[i];
122125
map.removeLayer(lThis.layerIds[k]);
123126
map.removeSource(lThis.sourceIds[k]);
124127
}
125128
}
126129

127-
if(hadCluster !== hasCluster || below !== this.below) {
128-
if(hadCluster) removeCluster(); else removeNonCluster();
129-
if(hasCluster) addCluster(); else addNonCluster();
130-
} else {
130+
function reset() {
131131
var order = hasCluster ? ORDER.cluster : ORDER.nonCluster;
132-
for(i = 0; i < order.length; i++) {
133-
k = order[i];
134-
opts = optsAll[k];
132+
for(var i = 0; i < order.length; i++) {
133+
var k = order[i];
134+
var opts = optsAll[k];
135135

136-
subplot.setOptions(this.layerIds[k], 'setLayoutProperty', opts.layout);
136+
subplot.setOptions(lThis.layerIds[k], 'setLayoutProperty', opts.layout);
137137

138138
if(opts.layout.visibility === 'visible') {
139-
this.setSourceData(k, opts);
140-
subplot.setOptions(this.layerIds[k], 'setPaintProperty', opts.paint);
139+
lThis.setSourceData(k, opts);
140+
subplot.setOptions(lThis.layerIds[k], 'setPaintProperty', opts.paint);
141141
}
142142
}
143143
}
144144

145+
if(hadCluster !== hasCluster || below !== this.below) {
146+
if(hadCluster) removeCluster(); else removeNonCluster();
147+
if(hasCluster) addCluster(); else addNonCluster();
148+
} else {
149+
reset();
150+
}
151+
145152
this.clusterEnabled = hasCluster;
146153
this.below = below;
147154

0 commit comments

Comments
 (0)