@@ -90,8 +90,8 @@ proto.update = function update(calcTrace) {
9090 var hadCluster = ! ! this . clusterEnabled ;
9191 var lThis = this ;
9292
93- function addCluster ( ) {
94- lThis . addSource ( 'circle' , optsAll . circle , trace . cluster ) ;
93+ function addCluster ( noSource ) {
94+ if ( ! noSource ) lThis . addSource ( 'circle' , optsAll . circle , trace . cluster ) ;
9595 var order = ORDER . cluster ;
9696 for ( var i = 0 ; i < order . length ; i ++ ) {
9797 var k = order [ i ] ;
@@ -100,40 +100,40 @@ proto.update = function update(calcTrace) {
100100 }
101101 }
102102
103- function removeCluster ( ) {
103+ function removeCluster ( noSource ) {
104104 var order = ORDER . cluster ;
105105 for ( var i = order . length - 1 ; i >= 0 ; i -- ) {
106106 var k = order [ i ] ;
107107 map . removeLayer ( lThis . layerIds [ k ] ) ;
108108 }
109- map . removeSource ( lThis . sourceIds . circle ) ;
109+ if ( ! noSource ) map . removeSource ( lThis . sourceIds . circle ) ;
110110 }
111111
112- function addNonCluster ( ) {
112+ function addNonCluster ( noSource ) {
113113 var order = ORDER . nonCluster ;
114114 for ( var i = 0 ; i < order . length ; i ++ ) {
115115 var k = order [ i ] ;
116116 var opts = optsAll [ k ] ;
117- lThis . addSource ( k , opts ) ;
117+ if ( ! noSource ) lThis . addSource ( k , opts ) ;
118118 lThis . addLayer ( k , opts , below ) ;
119119 }
120120 }
121121
122- function removeNonCluster ( ) {
122+ function removeNonCluster ( noSource ) {
123123 var order = ORDER . nonCluster ;
124124 for ( var i = order . length - 1 ; i >= 0 ; i -- ) {
125125 var k = order [ i ] ;
126126 map . removeLayer ( lThis . layerIds [ k ] ) ;
127- map . removeSource ( lThis . sourceIds [ k ] ) ;
127+ if ( ! noSource ) map . removeSource ( lThis . sourceIds [ k ] ) ;
128128 }
129129 }
130130
131- function remove ( ) {
132- if ( hadCluster ) removeCluster ( ) ; else removeNonCluster ( ) ;
131+ function remove ( noSource ) {
132+ if ( hadCluster ) removeCluster ( noSource ) ; else removeNonCluster ( noSource ) ;
133133 }
134134
135- function add ( ) {
136- if ( hasCluster ) addCluster ( ) ; else addNonCluster ( ) ;
135+ function add ( noSource ) {
136+ if ( hasCluster ) addCluster ( noSource ) ; else addNonCluster ( noSource ) ;
137137 }
138138
139139 function repaint ( ) {
@@ -157,10 +157,11 @@ proto.update = function update(calcTrace) {
157157 var wasHidden = this . isHidden ;
158158 var isHidden = trace . visible !== true ;
159159
160- if (
161- this . below !== below ||
162- hadCluster !== hasCluster
163- ) {
160+ if ( this . below !== below ) {
161+ remove ( true ) ;
162+ add ( true ) ;
163+ repaint ( ) ;
164+ } else if ( hadCluster !== hasCluster ) {
164165 remove ( ) ;
165166 add ( ) ;
166167 } else if ( isHidden && ! wasHidden ) {
0 commit comments