cartocss_helper 1.0.1 → 1.2.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.
- data/lib/cartocss_helper/data_file_handling.rb +4 -0
- data/lib/cartocss_helper/downloader.rb +33 -13
- data/lib/cartocss_helper/heuristic.rb +1 -1
- data/lib/cartocss_helper/image_generator.rb +1 -1
- data/lib/cartocss_helper/style_specific/default_osm_style.rb +0 -1
- data/lib/cartocss_helper/tag_lister.rb +6 -6
- data/lib/cartocss_helper/tilemill_handler.rb +6 -4
- data/lib/cartocss_helper/visualise_changes_diff_from_images.rb +1 -1
- data/lib/cartocss_helper/visualise_changes_image_generation.rb +20 -28
- data/lib/cartocss_helper.rb +40 -21
- metadata +6 -6
@@ -10,11 +10,13 @@ module CartoCSSHelper
|
|
10
10
|
end
|
11
11
|
return @@loaded_filename
|
12
12
|
end
|
13
|
+
|
13
14
|
def self.load_data_into_database(data_filename, debug=false)
|
14
15
|
if get_filename_of_recently_loaded_file == data_filename
|
15
16
|
puts "\tavoided reloading the same file! <#{data_filename}>"
|
16
17
|
return
|
17
18
|
end
|
19
|
+
start_time = Time.now
|
18
20
|
puts "\tloading data into database <#{data_filename}>"
|
19
21
|
@@loaded_filename = nil
|
20
22
|
silence = '> /dev/null 2>&1'
|
@@ -36,6 +38,8 @@ module CartoCSSHelper
|
|
36
38
|
end
|
37
39
|
end
|
38
40
|
@@loaded_filename = data_filename
|
41
|
+
time_in_seconds = Time.now - start_time
|
42
|
+
puts "\tloading lasted #{time_in_seconds.to_i}s"
|
39
43
|
end
|
40
44
|
end
|
41
45
|
|
@@ -11,14 +11,13 @@ module CartoCSSHelper
|
|
11
11
|
return get_overpass_query_results_file_location(query, "download data for #{latitude} #{longitude} (#{size})")
|
12
12
|
end
|
13
13
|
|
14
|
-
|
15
14
|
def self.download_osm_data_for_location(latitude, longitude, size, accept_cache=true)
|
16
15
|
filename = CartoCSSHelper::Configuration.get_path_to_folder_for_cache + "#{latitude} #{longitude} #{size}.osm"
|
17
16
|
if File.exists?(filename)
|
18
17
|
if accept_cache
|
19
18
|
return filename
|
20
19
|
end
|
21
|
-
|
20
|
+
delete_file(filename, 'query refusing to accept cache was used')
|
22
21
|
end
|
23
22
|
query = get_query_to_download_data_around_location(latitude, longitude, size)
|
24
23
|
text = get_overpass_query_results(query, "download data for #{latitude} #{longitude} (#{size})")
|
@@ -38,7 +37,7 @@ module CartoCSSHelper
|
|
38
37
|
query += "\n"
|
39
38
|
query += "(node(#{bb});<;);"
|
40
39
|
query += "\n"
|
41
|
-
query += 'out
|
40
|
+
query += 'out;'
|
42
41
|
query += "\n"
|
43
42
|
query += '/*'
|
44
43
|
query += "\nbbox size: #{size}"
|
@@ -134,7 +133,9 @@ module CartoCSSHelper
|
|
134
133
|
def self.get_overpass_query_results(query, description, debug=false)
|
135
134
|
cached = get_overpass_query_results_from_cache(query)
|
136
135
|
if cached == ''
|
137
|
-
|
136
|
+
if File.exists?(get_query_cache_refused_response_filename(query))
|
137
|
+
raise OverpassRefusedResponse
|
138
|
+
end
|
138
139
|
end
|
139
140
|
return cached unless cached == nil
|
140
141
|
|
@@ -148,6 +149,7 @@ module CartoCSSHelper
|
|
148
149
|
begin
|
149
150
|
cached = Downloader.run_overpass_query query, description
|
150
151
|
rescue OverpassRefusedResponse
|
152
|
+
mark_query_as_refused(query)
|
151
153
|
write_to_cache(query, '')
|
152
154
|
raise OverpassRefusedResponse
|
153
155
|
end
|
@@ -155,6 +157,16 @@ module CartoCSSHelper
|
|
155
157
|
return cached
|
156
158
|
end
|
157
159
|
|
160
|
+
def self.get_query_cache_refused_response_filename(query)
|
161
|
+
return get_query_cache_filename(query)+'_response_refused'
|
162
|
+
end
|
163
|
+
|
164
|
+
def self.mark_query_as_refused(query)
|
165
|
+
file = File.new(get_query_cache_refused_response_filename(query), 'w')
|
166
|
+
file.write ''
|
167
|
+
file.close
|
168
|
+
end
|
169
|
+
|
158
170
|
def self.write_to_cache(query, response)
|
159
171
|
file = File.new(get_query_cache_filename(query), 'w')
|
160
172
|
file.write response
|
@@ -199,7 +211,7 @@ module CartoCSSHelper
|
|
199
211
|
end
|
200
212
|
|
201
213
|
def self.not_enough_free_space
|
202
|
-
minimum_gb =
|
214
|
+
minimum_gb = 1
|
203
215
|
return get_available_space_for_cache_in_gb < minimum_gb
|
204
216
|
end
|
205
217
|
|
@@ -210,22 +222,30 @@ module CartoCSSHelper
|
|
210
222
|
|
211
223
|
def self.attempt_cleanup
|
212
224
|
if not_enough_free_space
|
213
|
-
delete_large_overpass_caches
|
225
|
+
delete_large_overpass_caches 500
|
226
|
+
end
|
227
|
+
if not_enough_free_space
|
228
|
+
delete_large_overpass_caches 100
|
229
|
+
end
|
230
|
+
if not_enough_free_space
|
231
|
+
delete_large_overpass_caches 50
|
214
232
|
end
|
215
233
|
end
|
216
234
|
|
217
|
-
def self.delete_file(
|
218
|
-
open(CartoCSSHelper::Configuration.
|
219
|
-
|
235
|
+
def self.delete_file(filename, reason)
|
236
|
+
open(CartoCSSHelper::Configuration.get_path_to_folder_for_output+'log.txt', 'a') { |file|
|
237
|
+
message = "deleting #{filename}, #{File.size(filename)/1024/1024}MB - #{reason}"
|
238
|
+
puts message
|
239
|
+
file.puts(message)
|
240
|
+
File.delete(filename)
|
220
241
|
}
|
221
|
-
File.delete(file)
|
222
242
|
end
|
223
243
|
|
224
|
-
def self.delete_large_overpass_caches
|
244
|
+
def self.delete_large_overpass_caches(threshold_in_MB)
|
225
245
|
#todo - find library that deals with caches like this, bug here may be unfunny
|
226
246
|
Dir.glob(CartoCSSHelper::Configuration.get_path_to_folder_for_overpass_cache+'*') {|file|
|
227
|
-
if File.size(file) > (1024 * 1024 *
|
228
|
-
delete_file(file)
|
247
|
+
if File.size(file) > (1024 * 1024 * threshold_in_MB)
|
248
|
+
delete_file(file, "removing everpass cache entries larger than #{threshold_in_MB} MB to make free space on the disk")
|
229
249
|
end
|
230
250
|
}
|
231
251
|
end
|
@@ -87,7 +87,7 @@ module CartoCSSHelper
|
|
87
87
|
def generate_image(lat, lon, debug)
|
88
88
|
export_filename = self.get_filename
|
89
89
|
bbox_size = self.get_bbox_size
|
90
|
-
TilemillHandler.run_tilemill_export_image(lat, lon, @zlevel, bbox_size, 200, export_filename, debug)
|
90
|
+
TilemillHandler.run_tilemill_export_image(lat, lon, @zlevel, [bbox_size, bbox_size], 200, export_filename, debug)
|
91
91
|
end
|
92
92
|
end
|
93
93
|
end
|
@@ -154,7 +154,6 @@ module CartoCSSHelper
|
|
154
154
|
TagRenderingStatus.new('highway', 'platform', :primary),
|
155
155
|
TagRenderingStatus.new('highway', 'primary', :primary),
|
156
156
|
TagRenderingStatus.new('highway', 'primary_link', :primary),
|
157
|
-
TagRenderingStatus.new('highway', 'proposed', :primary),
|
158
157
|
TagRenderingStatus.new('highway', 'raceway', :primary),
|
159
158
|
TagRenderingStatus.new('highway', 'residential', :primary),
|
160
159
|
TagRenderingStatus.new('highway', 'rest_area', :primary),
|
@@ -104,7 +104,7 @@ module CartoCSSHelper
|
|
104
104
|
[false, true].each { |on_water|
|
105
105
|
[Configuration.get_max_z].each { |zlevel|
|
106
106
|
['area', 'closed_way', 'way', 'node'].each{ |type|
|
107
|
-
if rendered_on_zlevel({key => value}, type, zlevel, on_water)
|
107
|
+
if CartoCSSHelper::Info.rendered_on_zlevel({key => value}, type, zlevel, on_water)
|
108
108
|
if !is_key_rendered_and_value_ignored_set(key, value, type, zlevel, on_water)
|
109
109
|
return false
|
110
110
|
end
|
@@ -123,9 +123,9 @@ module CartoCSSHelper
|
|
123
123
|
|
124
124
|
def is_rendered(key, value)
|
125
125
|
[false, true].each { |on_water|
|
126
|
-
[Configuration.get_max_z].each { |zlevel|
|
126
|
+
[Configuration.get_max_z].each { |zlevel| #TODO - note that some tags may be rendered up to X zoom level, but checking all zlevels would take too much time
|
127
127
|
['area', 'closed_way', 'way', 'node'].each{ |type|
|
128
|
-
if rendered_on_zlevel({key => value}, type, zlevel, on_water)
|
128
|
+
if CartoCSSHelper::Info.rendered_on_zlevel({key => value}, type, zlevel, on_water)
|
129
129
|
return true
|
130
130
|
end
|
131
131
|
}
|
@@ -142,8 +142,6 @@ module CartoCSSHelper
|
|
142
142
|
return true
|
143
143
|
end
|
144
144
|
|
145
|
-
protected
|
146
|
-
|
147
145
|
def how_rendered_as_composite(key, value, suggested_composite)
|
148
146
|
[false, true].each { |on_water|
|
149
147
|
[Configuration.get_max_z].each { |zlevel|
|
@@ -167,12 +165,14 @@ module CartoCSSHelper
|
|
167
165
|
return nil
|
168
166
|
end
|
169
167
|
|
170
|
-
def rendered_on_zlevel(tags, type, zlevel, on_water)
|
168
|
+
def self.rendered_on_zlevel(tags, type, zlevel, on_water)
|
171
169
|
empty = Scene.new({}, zlevel, on_water, type)
|
172
170
|
tested = Scene.new(tags, zlevel, on_water, type)
|
173
171
|
return tested.is_output_different(empty)
|
174
172
|
end
|
175
173
|
|
174
|
+
protected
|
175
|
+
|
176
176
|
def how_rendered_on_zlevel_as_composite(tags, type, zlevel, on_water, suggested_composite)
|
177
177
|
if suggested_composite != nil
|
178
178
|
if is_rendered_with_this_composite tags, type, suggested_composite, zlevel, on_water
|
@@ -11,11 +11,13 @@ module CartoCSSHelper
|
|
11
11
|
if debug
|
12
12
|
silence = ''
|
13
13
|
end
|
14
|
+
latitude_bb_size = bbox_size[0]
|
15
|
+
longitude_bb_size = bbox_size[0]
|
14
16
|
#--bbox=[xmin,ymin,xmax,ymax]
|
15
|
-
xmin = lon-
|
16
|
-
ymin = lat-
|
17
|
-
xmax = lon+
|
18
|
-
ymax = lat+
|
17
|
+
xmin = lon-longitude_bb_size/2
|
18
|
+
ymin = lat-latitude_bb_size/2
|
19
|
+
xmax = lon+longitude_bb_size/2
|
20
|
+
ymax = lat+latitude_bb_size/2
|
19
21
|
bbox = "#{xmin},#{ymin},#{xmax},#{ymax}"
|
20
22
|
params = "--format=png --width=#{image_size} --height=#{image_size} --static_zoom=#{zlevel} --bbox=\"#{bbox}\""
|
21
23
|
project_name = CartoCSSHelper::Configuration.get_tilemill_project_name
|
@@ -47,8 +47,8 @@ module CartoCSSHelper
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
-
def self.add_job(filename, latitude, longitude, zlevels, header, new_branch, old_branch, download_bbox_size, image_size)
|
51
|
-
print
|
50
|
+
def self.add_job(filename, latitude, longitude, zlevels, header, new_branch, old_branch, download_bbox_size, image_size, prefix)
|
51
|
+
print prefix
|
52
52
|
new_job = MapGenerationJob.new(filename, latitude, longitude, zlevels, header, new_branch, old_branch, download_bbox_size, image_size)
|
53
53
|
new_job.print
|
54
54
|
|
@@ -79,8 +79,8 @@ module CartoCSSHelper
|
|
79
79
|
@@jobs = []
|
80
80
|
end
|
81
81
|
|
82
|
-
def self.shuffle_jobs
|
83
|
-
@@jobs.shuffle!
|
82
|
+
def self.shuffle_jobs(seed)
|
83
|
+
@@jobs.shuffle!(random: Random.new(seed))
|
84
84
|
end
|
85
85
|
|
86
86
|
def self.visualise_changes_synthethic_test(tags, type, on_water, zlevel_range, new_branch, old_branch)
|
@@ -143,17 +143,19 @@ module CartoCSSHelper
|
|
143
143
|
|
144
144
|
def self.visualise_changes_on_real_data(tags, type, wanted_latitude, wanted_longitude, zlevels, new_branch, old_branch='master')
|
145
145
|
#special support for following tag values: :any_value
|
146
|
-
|
147
|
-
|
146
|
+
header_prefix = "#{ VisualDiff.dict_to_pretty_tag_list(tags) } #{type} [#{ wanted_latitude }, #{ wanted_longitude }] -> "
|
147
|
+
target_location = '[?, ?]'
|
148
|
+
header_sufix = " #{old_branch}->#{new_branch} #{zlevels}"
|
149
|
+
puts "visualise_changes_on_real_data <#{header_prefix}#{header_sufix}> #{old_branch} -> #{new_branch}"
|
148
150
|
begin
|
149
151
|
latitude, longitude = Downloader.locate_element_with_given_tags_and_type tags, type, wanted_latitude, wanted_longitude
|
152
|
+
target_location = "[#{latitude}, #{longitude}]"
|
150
153
|
rescue Downloader::OverpassRefusedResponse
|
151
154
|
puts 'No nearby instances of tags and tag is not extremely rare - no generation of nearby location and wordwide search was impossible. No diff image will be generated for this location.'
|
152
155
|
return false
|
153
156
|
end
|
154
|
-
header = "#{ VisualDiff.dict_to_pretty_tag_list(tags) } #{type} #{ wanted_latitude } #{ wanted_longitude } #{zlevels}"
|
155
157
|
download_bbox_size = 0.4
|
156
|
-
visualise_changes_for_location(latitude, longitude, zlevels,
|
158
|
+
visualise_changes_for_location(latitude, longitude, zlevels, header_prefix+target_location+header_sufix, new_branch, old_branch, download_bbox_size)
|
157
159
|
return true
|
158
160
|
end
|
159
161
|
|
@@ -167,7 +169,7 @@ module CartoCSSHelper
|
|
167
169
|
if @@job_pooling
|
168
170
|
prefix = 'pool <- '
|
169
171
|
end
|
170
|
-
add_job(filename, latitude, longitude, zlevels, header, new_branch, old_branch, download_bbox_size, image_size)
|
172
|
+
add_job(filename, latitude, longitude, zlevels, header, new_branch, old_branch, download_bbox_size, image_size, prefix)
|
171
173
|
if !@@job_pooling
|
172
174
|
run_jobs
|
173
175
|
end
|
@@ -187,27 +189,17 @@ module CartoCSSHelper
|
|
187
189
|
return reference_value*rescaler
|
188
190
|
end
|
189
191
|
|
190
|
-
def self.
|
192
|
+
def self.get_render_bbox_size(zlevel, wanted_image_size, latitude)
|
193
|
+
longitude_equator_rendered_length_in_pixels = 256 * 2**zlevel
|
194
|
+
longitude_size = 360*wanted_image_size.to_f/longitude_equator_rendered_length_in_pixels
|
195
|
+
latitude_size = longitude_size * Math.cos(latitude*Math::PI/180)
|
196
|
+
return [latitude_size, longitude_size]
|
197
|
+
end
|
198
|
+
|
199
|
+
def self.collect_images_for_real_data_test(latitude, longitude, zlevels, source, image_size=400)
|
191
200
|
collection = []
|
192
201
|
zlevels.each { |zlevel|
|
193
|
-
|
194
|
-
image_size = (VisualDiff.scale zlevel, image_size_for_16_zoom_level, 16)
|
195
|
-
mutiplier = 1000
|
196
|
-
image_size = (image_size*mutiplier).to_int
|
197
|
-
render_bbox_size = 0.015
|
198
|
-
ratio = 1.0*image_size/(wanted_image_size*mutiplier)
|
199
|
-
image_size /= ratio
|
200
|
-
render_bbox_size /= ratio
|
201
|
-
image_size /= mutiplier
|
202
|
-
image_size = image_size.to_i
|
203
|
-
if image_size!=wanted_image_size
|
204
|
-
puts VisualDiff.scale zlevel, image_size_for_16_zoom_level, 16
|
205
|
-
puts zlevel
|
206
|
-
puts image_size
|
207
|
-
puts wanted_image_size
|
208
|
-
puts ratio
|
209
|
-
raise "#{image_size} mismatches #{wanted_image_size}"
|
210
|
-
end
|
202
|
+
render_bbox_size = VisualDiff.get_render_bbox_size(zlevel, image_size, latitude)
|
211
203
|
cache_folder = CartoCSSHelper::Configuration.get_path_to_folder_for_branch_specific_cache
|
212
204
|
filename = "#{cache_folder+"#{latitude} #{longitude} #{zlevel}zlevel #{image_size}px #{source.get_timestamp} #{source.download_bbox_size}.png"}"
|
213
205
|
if !File.exists?(filename)
|
data/lib/cartocss_helper.rb
CHANGED
@@ -14,33 +14,41 @@ include CartoCSSHelper::Validator
|
|
14
14
|
include CartoCSSHelper::Git
|
15
15
|
|
16
16
|
module CartoCSSHelper
|
17
|
-
def
|
17
|
+
def self.test_tag_on_real_data(tags, new_branch, old_branch, zlevels, types=['node', 'closed_way', 'way'], min = 4, skip = 0)
|
18
18
|
types.each {|type|
|
19
|
-
test_tag_on_real_data_for_this_type(tags, new_branch, old_branch, zlevels, type)
|
19
|
+
test_tag_on_real_data_for_this_type(tags, new_branch, old_branch, zlevels, type, min, skip)
|
20
20
|
}
|
21
21
|
end
|
22
22
|
|
23
|
-
def self.test_tag_on_real_data_for_this_type(tags, new_branch, old_branch, zlevels, type)
|
24
|
-
|
23
|
+
def self.test_tag_on_real_data_for_this_type(tags, new_branch, old_branch, zlevels, type, min = 4, skip = 0)
|
24
|
+
if type.kind_of?(Array)
|
25
|
+
type = type[0]
|
26
|
+
end
|
25
27
|
generated = 0
|
26
28
|
|
27
29
|
n = 0
|
28
30
|
max_n = get_maxn_for_nth_location
|
31
|
+
max_n -= skip
|
32
|
+
skip_string = ''
|
33
|
+
if skip > 0
|
34
|
+
skip_string = " (#{skip} locations skipped)"
|
35
|
+
end
|
29
36
|
while generated < min
|
30
|
-
location = get_nth_location(n)
|
37
|
+
location = get_nth_location(n + skip)
|
31
38
|
generated +=1 if CartoCSSHelper::VisualDiff.visualise_changes_on_real_data(tags, type, location[0], location[1], zlevels, new_branch, old_branch)
|
32
39
|
n+=1
|
33
40
|
if n > max_n
|
34
41
|
return
|
35
42
|
end
|
43
|
+
puts "#{n}/#{max_n} locations checked #{skip_string}. #{generated}/#{min} testing location found"
|
36
44
|
end
|
37
45
|
end
|
38
46
|
|
39
|
-
def get_maxn_for_nth_location
|
47
|
+
def self.get_maxn_for_nth_location
|
40
48
|
return get_list_of_testing_locations.length-1
|
41
49
|
end
|
42
50
|
|
43
|
-
def get_nth_location(n)
|
51
|
+
def self.get_nth_location(n)
|
44
52
|
return get_list_of_testing_locations[n]
|
45
53
|
end
|
46
54
|
|
@@ -70,29 +78,40 @@ module CartoCSSHelper
|
|
70
78
|
}
|
71
79
|
end
|
72
80
|
|
73
|
-
def
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
+
def self.get_latitude_longitude_from_url(url)
|
82
|
+
if(url.scan(/[\/]((-|)\d+(\.\d+))/)).length >= 2
|
83
|
+
latitude = url.scan(/[\/]((-|)\d+(\.\d+))/)[0][0].to_f
|
84
|
+
longitude = url.scan(/[\/]((-|)\d+(\.\d+))/)[1][0].to_f
|
85
|
+
return latitude, longitude
|
86
|
+
end
|
87
|
+
latitude = url.scan(/[\/=]((-|)\d+(\.\d+))/)[0][0].to_f
|
88
|
+
longitude = url.scan(/[\/=]((-|)\d+(\.\d+))/)[1][0].to_f
|
89
|
+
return latitude, longitude
|
90
|
+
end
|
81
91
|
|
82
|
-
|
83
|
-
longitude = url.scan(/\/((-|)\d+(\.\d+))/)[1][0].to_f
|
92
|
+
def self.visualise_place_by_url(url, zlevels, new_branch, old_branch='master', header=nil, download_bbox_size=0.04, image_size = 350)
|
84
93
|
if header == nil
|
85
94
|
header = url
|
86
95
|
end
|
96
|
+
|
97
|
+
raise "#{url} is not a string, it is #{url.class}" unless url.class == String
|
98
|
+
raise "#{zlevels} is not a range, it is #{zlevels.class}" unless zlevels.class == Range
|
99
|
+
raise "#{new_branch} is not a string, it is #{new_branch.class}" unless new_branch.class == String
|
100
|
+
raise "#{old_branch} is not a string, it is #{old_branch.class}" unless old_branch.class == String
|
101
|
+
raise "#{header} is not a string, it is #{header.class}" unless header.class == String
|
102
|
+
raise "#{download_bbox_size} is not a number" unless download_bbox_size.kind_of? Numeric
|
103
|
+
raise "#{image_size} is not a integer" unless image_size.kind_of? Integer
|
104
|
+
|
105
|
+
latitude, longitude = get_latitude_longitude_from_url(url)
|
87
106
|
header += ' ' + old_branch + '->' + new_branch + ' ' + zlevels.to_s + ' '+ image_size.to_s + 'px'
|
88
107
|
CartoCSSHelper::VisualDiff.visualise_changes_for_location(latitude, longitude, zlevels, header, new_branch, old_branch, download_bbox_size, image_size)
|
89
108
|
end
|
90
109
|
|
91
|
-
def get_place_of_storage_of_resource_under_url(url)
|
110
|
+
def self.get_place_of_storage_of_resource_under_url(url)
|
92
111
|
return CartoCSSHelper::Configuration.get_path_to_folder_for_overpass_cache + '.manual.cache' + FileHelper::make_string_usable_as_filename(url)
|
93
112
|
end
|
94
113
|
|
95
|
-
def download_remote_file(url)
|
114
|
+
def self.download_remote_file(url)
|
96
115
|
filename = get_place_of_storage_of_resource_under_url(url)
|
97
116
|
if !File.exists?(filename)
|
98
117
|
begin
|
@@ -109,13 +128,13 @@ module CartoCSSHelper
|
|
109
128
|
end
|
110
129
|
end
|
111
130
|
|
112
|
-
def visualise_place_by_remote_file(url, latitude, longitude, zlevels, new_branch, old_branch='master', header=nil, bb=0.04, image_size = 350)
|
131
|
+
def self.visualise_place_by_remote_file(url, latitude, longitude, zlevels, new_branch, old_branch='master', header=nil, bb=0.04, image_size = 350)
|
113
132
|
download_remote_file(url)
|
114
133
|
filename = get_place_of_storage_of_resource_under_url(url)
|
115
134
|
visualise_place_by_file(filename, latitude, longitude, zlevels, new_branch, old_branch, header, bb, image_size)
|
116
135
|
end
|
117
136
|
|
118
|
-
def visualise_place_by_file(filename, latitude, longitude, zlevels, new_branch, old_branch='master', header=nil, bb=0.04, image_size = 350)
|
137
|
+
def self.visualise_place_by_file(filename, latitude, longitude, zlevels, new_branch, old_branch='master', header=nil, bb=0.04, image_size = 350)
|
119
138
|
raise "#{filename} does not exists" unless File.exists?(filename)
|
120
139
|
raise "#{latitude} is not a number" unless latitude.kind_of? Numeric
|
121
140
|
raise "#{longitude} is not a number" unless longitude.kind_of? Numeric
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cartocss_helper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-07-
|
12
|
+
date: 2015-07-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rest-client
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1.
|
21
|
+
version: 1.8.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 1.
|
29
|
+
version: 1.8.0
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: sys-filesystem
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -50,7 +50,7 @@ dependencies:
|
|
50
50
|
requirements:
|
51
51
|
- - ~>
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: 2.
|
53
|
+
version: 2.15.2
|
54
54
|
type: :runtime
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -58,7 +58,7 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 2.
|
61
|
+
version: 2.15.2
|
62
62
|
description: Tool to make development of CartoCSS styles more efficient. Automates
|
63
63
|
actions necessary to produce test images and validates style. Loading data using
|
64
64
|
osm2pgsql, rendering with TileMill, obtaining test data from overpass turbo.
|