mapnik_legendary 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -9,25 +9,16 @@
9
9
 
10
10
  ## Installation
11
11
 
12
- In the future (i.e. when I make a packaged release) you'll be able to use rubygems. Until then:
12
+ You can install the gem from rubygems:
13
13
 
14
- `git clone https://github.com/gravitystorm/mapnik-legendary`
14
+ `gem install mapnik_legendary`
15
15
 
16
- If you want to install the gem locally, run
16
+ Alternatively, you can add the gem to your project's Gemfile
17
17
 
18
- ```
19
- gem build mapnik_legendary.gemspec
20
- gem install mapnik_legendary-0.x.x.gem
21
- ```
18
+ `gem mapnik_legendary`
22
19
 
23
20
  ## Running
24
21
 
25
- To run locally, without installing a gem, run:
26
-
27
- `ruby -Ilib bin/mapnik_legendary`
28
-
29
- If you've installed the gem, `mapnik_legendary` will be in your path.
30
-
31
22
  For full options, run
32
23
 
33
24
  `mapnik_legendary -h`
@@ -33,7 +33,7 @@ module MapnikLegendary
33
33
  map.layers.each do |l|
34
34
  layer_styles.push(name: l.name,
35
35
  style: l.styles.map { |s| s } # get them out of the collection
36
- )
36
+ )
37
37
  end
38
38
 
39
39
  docs = Docwriter.new
@@ -79,7 +79,19 @@ module MapnikLegendary
79
79
  i += 1
80
80
  filename = File.join(Dir.pwd, 'output', "#{id}-#{zoom}-#{i}.png")
81
81
  end
82
- map.render_to_file(filename, 'png256:t=2')
82
+ begin
83
+ map.render_to_file(filename, 'png256:t=2')
84
+ rescue RuntimeError => e
85
+ r = /^CSV Plugin: no attribute '(?<key>[^']*)'/
86
+ match_data = r.match(e.message)
87
+ if match_data
88
+ log.error "'#{match_data[:key]}' is a key needed for the '#{feature.name}' feature."
89
+ log.error "Try adding '#{match_data[:key]}' to the extra_tags list."
90
+ next
91
+ else
92
+ raise e
93
+ end
94
+ end
83
95
  docs.add File.basename(filename), feature.description
84
96
  end
85
97
 
@@ -37,7 +37,7 @@ module MapnikLegendary
37
37
  font_size 12
38
38
  text title, style: :bold, size: 24, align: :center
39
39
  move_down(40)
40
- data = Array.new
40
+ data = []
41
41
  image_scale = 0.5
42
42
  entries.each do |entry|
43
43
  data << { image: File.join(File.dirname(filename), entry[0]),
@@ -1,6 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module MapnikLegendary
4
+ # A wkt-based geometry that can be used for the legend feature.
4
5
  class Geometry
5
6
  def initialize(type, zoom, map)
6
7
  proj = Mapnik::Projection.new(map.srs)
@@ -19,10 +20,10 @@ module MapnikLegendary
19
20
  when 'point75' then "POINT(#{@max_x * 0.5} #{@max_y * 0.75})"
20
21
  when 'polygon' then "POLYGON((0 0, #{@max_x} 0, #{@max_x} #{@max_y}, 0 #{@max_y}, 0 0))"
21
22
  when 'linestring-with-gap' then "MULTILINESTRING((0 0, #{@max_x * 0.45} #{@max_y * 0.45}),(#{@max_x * 0.55} #{@max_y * 0.55},#{@max_x} #{@max_y}))"
22
- when 'polygon-with-hole' then "POLYGON((#{0.7 * @max_x} #{0.2 * @max_y}, #{0.9 * @max_x} #{0.9 * @max_y}" +
23
- ", #{0.3 * @max_x} #{0.8 * @max_y}, #{0.2 * @max_x} #{0.4 * @max_y}" +
24
- ", #{0.7 * @max_y} #{0.2 * @max_y}),( #{0.4 * @max_x} #{0.6 * @max_y}" +
25
- ", #{0.7 * @max_x} #{0.7 * @max_y}, #{0.6 * @max_x} #{0.4 * @max_y}" +
23
+ when 'polygon-with-hole' then "POLYGON((#{0.7 * @max_x} #{0.2 * @max_y}, #{0.9 * @max_x} #{0.9 * @max_y}" \
24
+ ", #{0.3 * @max_x} #{0.8 * @max_y}, #{0.2 * @max_x} #{0.4 * @max_y}" \
25
+ ", #{0.7 * @max_y} #{0.2 * @max_y}),( #{0.4 * @max_x} #{0.6 * @max_y}" \
26
+ ", #{0.7 * @max_x} #{0.7 * @max_y}, #{0.6 * @max_x} #{0.4 * @max_y}" \
26
27
  ", #{0.4 * @max_x} #{0.6 * @max_y}))"
27
28
  else "LINESTRING(0 0, #{@max_x} #{@max_y})"
28
29
  end
@@ -1,11 +1,14 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module MapnikLegendary
4
+ # convenience methods for handling tags
4
5
  class Tags
6
+ # Merges a list of extra keys into an existing hash of tags.
7
+ # The extra keys are each given a null value.
5
8
  def self.merge_nulls(tags, extras)
6
9
  tags = {} if tags.nil?
7
10
  extras = [] if extras.nil?
8
- Hash[extras.map { |t| [t, 'null'] }].merge(tags)
11
+ Hash[extras.map { |t| [t, nil] }].merge(tags)
9
12
  end
10
13
  end
11
14
  end
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module MapnikLegendary
4
- VERSION = '0.3.0'
4
+ VERSION = '0.4.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mapnik_legendary
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
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-08-13 00:00:00.000000000 Z
12
+ date: 2015-08-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mapnik