osm_tile_grabber 1.0.0 → 1.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bd3ae72fc77a01e685e0b96d9e6ca458ab013209
4
- data.tar.gz: 9b42bf56b6bf72a9222dbf7b39b9eb6ebecf1569
3
+ metadata.gz: ffd38a298145c0a5a6aec110c0345bb9c17cc16d
4
+ data.tar.gz: b290bf39421cd4a89c4c643d4216dc0509b5f18a
5
5
  SHA512:
6
- metadata.gz: d611b13ab9bab88270daecbdd6fc3681f1d02b9581e376f67c30b6df8995964cb7c817789c6dd486a72ffe1527a234d5f4397162e688986873ff8d5ba1d28edd
7
- data.tar.gz: e16086a5393ed52d5310399a5a1c576b71a389a9422d639dccc5f65aea92ed6f9810d6107020cf97a1ae341a3b3502b121e92704f7a56f43db83371999169b9a
6
+ metadata.gz: 9d86297d3c696c0029a5140fed973624660b15a70268a522399dc4f4ff5486d50bdbee704cd2285f3dcc9f584c6fa28269fc88d82658dae5e1f5d6980695960e
7
+ data.tar.gz: 233ca3a60a29509de0f5b628d1cc658b0060cfcdec03960a2c81ee5312c7e257013580114a2e3ec30c870ea87515081976ea122a0dea2a1dfa495002e2b2ed30
data/.gitignore CHANGED
@@ -9,3 +9,4 @@
9
9
  /tmp/
10
10
 
11
11
  *.swp
12
+ *.gem
@@ -1,9 +1,10 @@
1
1
  require 'open-uri'
2
2
  require 'tempfile'
3
3
  require 'rmagick'
4
- include Magick
5
4
 
6
5
  class OSMTileGrabber
6
+ include Magick
7
+
7
8
  def initialize(lat1, lon1, lat2, lon2, zoom)
8
9
  @lat1 = lat1
9
10
  @lon1 = lon1
@@ -31,7 +32,7 @@ class OSMTileGrabber
31
32
  return tile_matrix
32
33
  end
33
34
 
34
- def image_dimentions
35
+ def image_dimensions
35
36
  top_left_tile = get_tile_number(@lat1, @lon1)
36
37
  bottom_right_tile = get_tile_number(@lat2, @lon2)
37
38
 
@@ -40,13 +41,13 @@ class OSMTileGrabber
40
41
  return {x: x + 1, y: y + 1}
41
42
  end
42
43
 
43
- def get_tile_number(lat_deg, lng_deg)
44
- lat_rad = lat_deg/180 * Math::PI
44
+ def get_tile_number(lat_as_deg, lon_as_deg)
45
+ lat_as_rad = lat_as_deg/180 * Math::PI
45
46
  n = 2.0 ** @zoom
46
- x = ((lng_deg + 180.0) / 360.0 * n).to_i
47
- y = ((1.0 - Math::log(Math::tan(lat_rad) + (1 / Math::cos(lat_rad))) / Math::PI) / 2.0 * n).to_i
47
+ x = ((lon_as_deg + 180.0) / 360.0 * n).to_i
48
+ y = ((1.0 - Math::log(Math::tan(lat_as_rad) + (1 / Math::cos(lat_as_rad))) / Math::PI) / 2.0 * n).to_i
48
49
 
49
- {:x => x, :y =>y}
50
+ return {:x => x, :y =>y}
50
51
  end
51
52
 
52
53
  def link_from_tile_number(x,y)
@@ -59,23 +60,23 @@ class OSMTileGrabber
59
60
  tile_numbers_needed.each do |row|
60
61
  row.each do |tn|
61
62
  tile_file = Tempfile.new(["tile-#{@zoom}-#{tn[:x]}-#{tn[:y]}", ".png"])
62
- link_from_tile_number(tn[:x], tn[:y])
63
63
  open(link_from_tile_number(tn[:x], tn[:y]), "rb") do |read_file|
64
64
  tile_file.write(read_file.read)
65
65
  end
66
- tile_files << tile_file.path
66
+ tile_files << tile_file
67
67
  end
68
68
  end
69
69
  return tile_files
70
70
  end
71
71
 
72
- def montage(file_paths, output_path)
73
- image_list = ImageList.new *file_paths
74
- tile_string = "#{image_dimentions[:x]}x#{image_dimentions[:y]}"
72
+ def montage(tiles, output_path)
73
+ image_list = ImageList.new *tiles.map{|t| t.path}
74
+ tile_string = "#{image_dimensions[:x]}x#{image_dimensions[:y]}"
75
75
  tiled_montage = image_list.montage do
76
76
  self.geometry = "+0+0"
77
77
  self.tile = tile_string
78
78
  end
79
79
  tiled_montage.write(output_path)
80
+ return output_path
80
81
  end
81
82
  end
@@ -1,3 +1,3 @@
1
1
  module OsmTileGrabber
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: osm_tile_grabber
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luke Picciau