kmz_compressor 2.1.4 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 87e3ddcda31c6d84a2d9ff00db0228352cf3895e04a8649c09f656029c11a049
|
4
|
+
data.tar.gz: 14237e8098be57d691fd5dacaa136e7ad103db432e1fc6ef2cde03ffae5d2c63
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 89df6178e339c13482fd1121c3366448f2f1b4f1c95415246356b8c7d862c2bc17a855ae276d157ad0027ddc0ffa001c257deb1d3527c15dbf7b1ac9be03b3e7
|
7
|
+
data.tar.gz: ee2e4f709f7ae7f775a9900cf0407aa07ecaa4a66a53ad706c38c705bb83a448e3de05fcaaae194e6da7cdfe7e10f80a3f5441fc493fb0eb769a22d06be45a4b
|
@@ -16,7 +16,8 @@ window.MapLayerManager = function(map){
|
|
16
16
|
var requestTimestamp = new Date;
|
17
17
|
var retryDelay = retryDelay || 2000;
|
18
18
|
|
19
|
-
kmlURL =
|
19
|
+
kmlURL = prepareUrl(kmlURL);
|
20
|
+
|
20
21
|
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
22
|
|
22
23
|
return $.ajax(kmlURL, {type:'head', statusCode:{
|
@@ -24,7 +25,7 @@ window.MapLayerManager = function(map){
|
|
24
25
|
200: function(){
|
25
26
|
if (!requestTimestamps[layerName] || requestTimestamps[layerName] < requestTimestamp){
|
26
27
|
requestTimestamps[layerName] = requestTimestamp;
|
27
|
-
|
28
|
+
loadKMLLayerWithoutExtraParams(cachedKMZURL(kmlURL), layerName, options)
|
28
29
|
}
|
29
30
|
}
|
30
31
|
}}).error(function(){
|
@@ -34,8 +35,11 @@ window.MapLayerManager = function(map){
|
|
34
35
|
}
|
35
36
|
|
36
37
|
function loadKMLLayer(kmlURL, layerName, options) {
|
37
|
-
|
38
|
-
|
38
|
+
kmlURL = prepareUrl(kmlURL);
|
39
|
+
loadKMLLayerWithoutExtraParams(kmlURL, layerName, options)
|
40
|
+
}
|
41
|
+
|
42
|
+
function loadKMLLayerWithoutExtraParams(kmlURL, layerName, options) {
|
39
43
|
options = jQuery.extend(true, {zIndex:getDrawOrder(layerName), map:map}, options);
|
40
44
|
|
41
45
|
var kmlLayer = new google.maps.KmlLayer(kmlURL, options);
|
@@ -182,7 +186,7 @@ window.MapLayerManager = function(map){
|
|
182
186
|
|
183
187
|
for (var i = 0; i < layerNames.length; i++){
|
184
188
|
var layer = getLayer(layerNames[i])
|
185
|
-
if (layer.error){
|
189
|
+
if (!layer || layer.error){
|
186
190
|
continue
|
187
191
|
}
|
188
192
|
|
@@ -269,33 +273,56 @@ window.MapLayerManager = function(map){
|
|
269
273
|
})
|
270
274
|
}
|
271
275
|
|
272
|
-
|
273
|
-
|
274
|
-
|
276
|
+
function prepareUrl(kmlURL) {
|
277
|
+
kmlURL = sanitizeURI(kmlURL);
|
278
|
+
kmlURL = addExtraParams(kmlURL, window.MapLayerManager.extraParams);
|
279
|
+
return kmlURL;
|
280
|
+
}
|
281
|
+
|
282
|
+
function sanitizeURI(uri) {
|
275
283
|
var url = urlToObject(uri)
|
276
|
-
var pathname = ('/' + decodeURI(url.pathname)).replace(/^\/+/, '/').trim()
|
277
|
-
var search = decodeURIComponent(url.search.replace(/\+/g, '%20')).trim().replace(/^\?/, '') // Ensure all "plus spaces" are hex encoded spaces
|
284
|
+
var pathname = ('/' + decodeURI(url.pathname)).replace(/^\/+/, '/').trim() // Ensure there is a leading slash (IE doesn't provide one, Chrome does, FF does)
|
278
285
|
|
279
|
-
|
286
|
+
var search = url.search.replace(/%26/g, '%2526').replace(/%3D/g, '%253D') // Double encode & and = or else we will be unable to tell them apart from unencoded ones
|
287
|
+
search = search.replace(/\+/g, '%20') // Ensure all "plus spaces" are hex encoded spaces
|
288
|
+
search = decodeURIComponent(search).trim().replace(/^\?/, '') // Remove any leading ?
|
280
289
|
|
281
|
-
|
282
|
-
|
283
|
-
}
|
290
|
+
output = pathname
|
291
|
+
if (search !== '') { output += '?' }
|
284
292
|
|
285
293
|
// Encode the individual uri components
|
286
294
|
output += $.map(search.split('&'), function(component){
|
287
295
|
return $.map(component.split('='), function(kv){
|
296
|
+
// Unencode double encoded & and = from earlier
|
297
|
+
kv = kv.replace(/%26/g, '&').replace(/%3D/g, '=')
|
298
|
+
|
299
|
+
kv = encodeURIComponent(kv)
|
300
|
+
|
288
301
|
// HACK: Firefox 'helps' us out by encoding apostrophes as %27 in AJAX requests, However its encodeURIcomponent method
|
289
302
|
// does not. This difference causes a mismatch between the url we use to calculate the cache path in the browser
|
290
303
|
// and on the server. This hack undoes the damage. See https://bugzilla.mozilla.org/show_bug.cgi?id=407172
|
291
|
-
|
304
|
+
kv = kv.replace(/'/g, '%27')
|
305
|
+
|
306
|
+
return kv
|
292
307
|
}).join('=')
|
293
308
|
}).join('&')
|
309
|
+
|
294
310
|
url.href = output
|
295
311
|
|
296
312
|
return url.href
|
297
313
|
}
|
298
314
|
|
315
|
+
function addExtraParams(url, extraParams) {
|
316
|
+
url = urlToObject(url)
|
317
|
+
var paramString = $.param(extraParams || {})
|
318
|
+
|
319
|
+
if (paramString) {
|
320
|
+
url.search = url.search ? url.search + '&' + paramString : paramString
|
321
|
+
}
|
322
|
+
|
323
|
+
return url.href
|
324
|
+
}
|
325
|
+
|
299
326
|
function closeInfowindowsExcept(layerName){
|
300
327
|
eachLayer(function(layer){
|
301
328
|
if (layer.name != layerName){
|
@@ -340,6 +367,7 @@ window.MapLayerManager = function(map){
|
|
340
367
|
$(manager).trigger(data).trigger(nameData)
|
341
368
|
}
|
342
369
|
|
370
|
+
|
343
371
|
// INIT
|
344
372
|
|
345
373
|
// Because google events sometimes get missed, we ensure we're up to date every now and again
|
@@ -6,7 +6,7 @@ require 'kmz_compressor/middleware'
|
|
6
6
|
module KMZCompressor
|
7
7
|
class Railtie < Rails::Railtie
|
8
8
|
initializer "kmz_compressor.init" do |app|
|
9
|
-
app.config.middleware.use
|
9
|
+
app.config.middleware.use KMZCompressor::Middleware
|
10
10
|
|
11
11
|
Mime::Type.register "application/vnd.google-earth.kml+xml", :kml
|
12
12
|
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kmz_compressor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1
|
5
|
-
prerelease:
|
4
|
+
version: 2.3.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Ryan Wallace
|
@@ -10,46 +9,36 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date:
|
12
|
+
date: 2021-03-15 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: rails
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
18
|
- - ">="
|
21
19
|
- !ruby/object:Gem::Version
|
22
20
|
version: '3.1'
|
23
|
-
- - "<"
|
24
|
-
- !ruby/object:Gem::Version
|
25
|
-
version: 4.2.0
|
26
21
|
type: :runtime
|
27
22
|
prerelease: false
|
28
23
|
version_requirements: !ruby/object:Gem::Requirement
|
29
|
-
none: false
|
30
24
|
requirements:
|
31
25
|
- - ">="
|
32
26
|
- !ruby/object:Gem::Version
|
33
27
|
version: '3.1'
|
34
|
-
- - "<"
|
35
|
-
- !ruby/object:Gem::Version
|
36
|
-
version: 4.2.0
|
37
28
|
- !ruby/object:Gem::Dependency
|
38
29
|
name: rubyzip
|
39
30
|
requirement: !ruby/object:Gem::Requirement
|
40
|
-
none: false
|
41
31
|
requirements:
|
42
|
-
- - "
|
32
|
+
- - ">="
|
43
33
|
- !ruby/object:Gem::Version
|
44
|
-
version: 1.
|
34
|
+
version: 1.0.0
|
45
35
|
type: :runtime
|
46
36
|
prerelease: false
|
47
37
|
version_requirements: !ruby/object:Gem::Requirement
|
48
|
-
none: false
|
49
38
|
requirements:
|
50
|
-
- - "
|
39
|
+
- - ">="
|
51
40
|
- !ruby/object:Gem::Version
|
52
|
-
version: 1.
|
41
|
+
version: 1.0.0
|
53
42
|
description: Rack Middleware which retrieves KML from Rails and produces KMZ for the
|
54
43
|
client.
|
55
44
|
email:
|
@@ -58,41 +47,38 @@ executables: []
|
|
58
47
|
extensions: []
|
59
48
|
extra_rdoc_files: []
|
60
49
|
files:
|
50
|
+
- MIT-LICENSE
|
51
|
+
- README.rdoc
|
52
|
+
- app/assets/javascripts/kmz_compressor.js
|
61
53
|
- app/assets/javascripts/kmz_compressor/map_layer_manager.js
|
62
54
|
- app/assets/javascripts/kmz_compressor/polyfills.js
|
63
55
|
- app/assets/javascripts/kmz_compressor/sha2.js
|
64
|
-
-
|
65
|
-
- app/helpers/kmz_compressor/kml_helper.rb
|
56
|
+
- lib/kmz_compressor.rb
|
66
57
|
- lib/kmz_compressor/controller_extensions.rb
|
67
58
|
- lib/kmz_compressor/engine.rb
|
68
59
|
- lib/kmz_compressor/middleware.rb
|
69
60
|
- lib/kmz_compressor/railtie.rb
|
70
61
|
- lib/kmz_compressor/version.rb
|
71
|
-
- lib/kmz_compressor.rb
|
72
|
-
- MIT-LICENSE
|
73
|
-
- README.rdoc
|
74
62
|
homepage: http://github.com/culturecode/kmz_compressor
|
75
63
|
licenses: []
|
64
|
+
metadata: {}
|
76
65
|
post_install_message:
|
77
66
|
rdoc_options: []
|
78
67
|
require_paths:
|
79
68
|
- lib
|
80
69
|
required_ruby_version: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
70
|
requirements:
|
83
71
|
- - ">="
|
84
72
|
- !ruby/object:Gem::Version
|
85
73
|
version: '0'
|
86
74
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
87
|
-
none: false
|
88
75
|
requirements:
|
89
76
|
- - ">="
|
90
77
|
- !ruby/object:Gem::Version
|
91
78
|
version: '0'
|
92
79
|
requirements: []
|
93
|
-
|
94
|
-
rubygems_version: 1.8.25
|
80
|
+
rubygems_version: 3.0.3
|
95
81
|
signing_key:
|
96
|
-
specification_version:
|
82
|
+
specification_version: 4
|
97
83
|
summary: Rack Middleware which retrieves KML from Rails and produces KMZ for the client.
|
98
84
|
test_files: []
|