kmz_compressor 2.1.3 → 2.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -17,7 +17,7 @@ window.MapLayerManager = function(map){
17
17
  var retryDelay = retryDelay || 2000;
18
18
 
19
19
  kmlURL = sanitizeURI(kmlURL);
20
- options = jQuery.extend(true, {zIndex:zIndexCount++}, options); // Deep copy the options in case they are changed between now and when the map is ready to load
20
+ options = jQuery.extend(true, {zIndex:getDrawOrder(layerName)}, options); // Deep copy the options in case they are changed between now and when the map is ready to load
21
21
 
22
22
  return $.ajax(kmlURL, {type:'head', statusCode:{
23
23
  202: function(){ setTimeout(function(){ cacheAndLoadKMLLayer(kmlURL, layerName, options, retryDelay * 2) }, retryDelay) },
@@ -36,7 +36,7 @@ window.MapLayerManager = function(map){
36
36
  function loadKMLLayer(kmlURL, layerName, options) {
37
37
  // Replace spaces with pluses so we don't have problems with some things turning them into %20s and some not
38
38
  kmlURL = sanitizeURI(kmlURL);
39
- options = jQuery.extend(true, {zIndex:zIndexCount++, map:map}, options);
39
+ options = jQuery.extend(true, {zIndex:getDrawOrder(layerName), map:map}, options);
40
40
 
41
41
  var kmlLayer = new google.maps.KmlLayer(kmlURL, options);
42
42
  var layer = addLayer(layerName, kmlLayer)
@@ -145,6 +145,17 @@ window.MapLayerManager = function(map){
145
145
  }
146
146
  }
147
147
 
148
+ // Returns the draw order for the layer if it exists,
149
+ // Else generates and returns a new draw order
150
+ function getDrawOrder(layerName){
151
+ var layer = getLayer(layerName)
152
+ if (layer){
153
+ return layer.kml.getZIndex()
154
+ } else {
155
+ return zIndexCount++
156
+ }
157
+ }
158
+
148
159
  function setKMLOptions(layerName, options){
149
160
  var layer = getLayer(layerName)
150
161
  if (layer){
@@ -218,6 +229,8 @@ window.MapLayerManager = function(map){
218
229
  // Keep layers synced with their state
219
230
  function sweep(){
220
231
  var foundLayers = [];
232
+ var staleLayers = []
233
+
221
234
  eachLayer(function(layer, index){
222
235
  var kmlStatus = layer.kml ? layer.kml.getStatus() : null;
223
236
 
@@ -235,15 +248,25 @@ window.MapLayerManager = function(map){
235
248
  }
236
249
 
237
250
  // Remove old layers
238
- // Sweep through layers from the newest to oldest, if a layer name is seen more than once, delete all but the newest
251
+ // Sweep through layers from the newest to oldest, if a layer name is seen more than once, mark all but the newest for deletion
239
252
  // Don't delete an instance if we haven't yet seen a version of it with status 'OK'
240
253
  if ($.inArray(layer.name, foundLayers) > -1){
241
- layer.kml.setMap(null);
242
- layers.splice(index, 1);
254
+ staleLayers.push(layer)
243
255
  } else if (layer.loaded) {
244
256
  foundLayers.push(layer.name)
245
257
  }
246
258
  })
259
+
260
+ // Delete stale layers
261
+ $.each(staleLayers, function(_, staleLayer){
262
+ eachLayer(function(layer, index){
263
+ if (layer == staleLayer){
264
+ layer.kml.setMap(null);
265
+ layers.splice(index, 1)
266
+ return false
267
+ }
268
+ })
269
+ })
247
270
  }
248
271
 
249
272
  // Replace spaces with pluses so we don't have problems with some things turning them into %20s and some not
@@ -339,6 +362,7 @@ window.MapLayerManager = function(map){
339
362
  this.hideLayer = hideLayer,
340
363
  this.showLayer = showLayer,
341
364
  this.setDrawOrder = setDrawOrder,
365
+ this.getDrawOrder = getDrawOrder,
342
366
  this.eachLayer = eachLayer,
343
367
  this.setKMLOptions = setKMLOptions
344
368
  }
@@ -1,3 +1,3 @@
1
1
  module KMZCompressor
2
- VERSION = "2.1.3"
2
+ VERSION = "2.1.4"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kmz_compressor
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.3
4
+ version: 2.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: