@@ -90,8 +90,8 @@ proto.update = function update(calcTrace) {
90
90
var hadCluster = ! ! this . clusterEnabled ;
91
91
var lThis = this ;
92
92
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 ) ;
95
95
var order = ORDER . cluster ;
96
96
for ( var i = 0 ; i < order . length ; i ++ ) {
97
97
var k = order [ i ] ;
@@ -100,40 +100,40 @@ proto.update = function update(calcTrace) {
100
100
}
101
101
}
102
102
103
- function removeCluster ( ) {
103
+ function removeCluster ( noSource ) {
104
104
var order = ORDER . cluster ;
105
105
for ( var i = order . length - 1 ; i >= 0 ; i -- ) {
106
106
var k = order [ i ] ;
107
107
map . removeLayer ( lThis . layerIds [ k ] ) ;
108
108
}
109
- map . removeSource ( lThis . sourceIds . circle ) ;
109
+ if ( ! noSource ) map . removeSource ( lThis . sourceIds . circle ) ;
110
110
}
111
111
112
- function addNonCluster ( ) {
112
+ function addNonCluster ( noSource ) {
113
113
var order = ORDER . nonCluster ;
114
114
for ( var i = 0 ; i < order . length ; i ++ ) {
115
115
var k = order [ i ] ;
116
116
var opts = optsAll [ k ] ;
117
- lThis . addSource ( k , opts ) ;
117
+ if ( ! noSource ) lThis . addSource ( k , opts ) ;
118
118
lThis . addLayer ( k , opts , below ) ;
119
119
}
120
120
}
121
121
122
- function removeNonCluster ( ) {
122
+ function removeNonCluster ( noSource ) {
123
123
var order = ORDER . nonCluster ;
124
124
for ( var i = order . length - 1 ; i >= 0 ; i -- ) {
125
125
var k = order [ i ] ;
126
126
map . removeLayer ( lThis . layerIds [ k ] ) ;
127
- map . removeSource ( lThis . sourceIds [ k ] ) ;
127
+ if ( ! noSource ) map . removeSource ( lThis . sourceIds [ k ] ) ;
128
128
}
129
129
}
130
130
131
- function remove ( ) {
132
- if ( hadCluster ) removeCluster ( ) ; else removeNonCluster ( ) ;
131
+ function remove ( noSource ) {
132
+ if ( hadCluster ) removeCluster ( noSource ) ; else removeNonCluster ( noSource ) ;
133
133
}
134
134
135
- function add ( ) {
136
- if ( hasCluster ) addCluster ( ) ; else addNonCluster ( ) ;
135
+ function add ( noSource ) {
136
+ if ( hasCluster ) addCluster ( noSource ) ; else addNonCluster ( noSource ) ;
137
137
}
138
138
139
139
function repaint ( ) {
@@ -157,10 +157,11 @@ proto.update = function update(calcTrace) {
157
157
var wasHidden = this . isHidden ;
158
158
var isHidden = trace . visible !== true ;
159
159
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 ) {
164
165
remove ( ) ;
165
166
add ( ) ;
166
167
} else if ( isHidden && ! wasHidden ) {
0 commit comments