@@ -85,63 +85,70 @@ proto.update = function update(calcTrace) {
85
85
var map = subplot . map ;
86
86
var optsAll = convert ( subplot . gd , calcTrace ) ;
87
87
var below = subplot . belowLookup [ 'trace-' + this . uid ] ;
88
- var i , k , opts ;
89
88
var hasCluster = ! ! ( trace . cluster && trace . cluster . enabled ) ;
90
89
var hadCluster = ! ! this . clusterEnabled ;
91
90
var lThis = this ;
92
91
93
92
function addCluster ( ) {
94
93
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 ] ;
98
98
lThis . addLayer ( k , opts , below ) ;
99
99
}
100
100
}
101
101
102
102
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 ] ;
105
106
map . removeLayer ( lThis . layerIds [ k ] ) ;
106
107
}
107
108
map . removeSource ( lThis . sourceIds . circle ) ;
108
109
}
109
110
110
111
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 ] ;
114
116
lThis . addSource ( k , opts , trace . cluster ) ;
115
117
lThis . addLayer ( k , opts , below ) ;
116
118
}
117
119
}
118
120
119
121
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 ] ;
122
125
map . removeLayer ( lThis . layerIds [ k ] ) ;
123
126
map . removeSource ( lThis . sourceIds [ k ] ) ;
124
127
}
125
128
}
126
129
127
- if ( hadCluster !== hasCluster || below !== this . below ) {
128
- if ( hadCluster ) removeCluster ( ) ; else removeNonCluster ( ) ;
129
- if ( hasCluster ) addCluster ( ) ; else addNonCluster ( ) ;
130
- } else {
130
+ function reset ( ) {
131
131
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 ] ;
135
135
136
- subplot . setOptions ( this . layerIds [ k ] , 'setLayoutProperty' , opts . layout ) ;
136
+ subplot . setOptions ( lThis . layerIds [ k ] , 'setLayoutProperty' , opts . layout ) ;
137
137
138
138
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 ) ;
141
141
}
142
142
}
143
143
}
144
144
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
+
145
152
this . clusterEnabled = hasCluster ;
146
153
this . below = below ;
147
154
0 commit comments