@@ -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