mapkit 0.0.1 → 0.0.2
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/mapkit.rb +1 -1
- data/lib/tilekit.rb +19 -3
- metadata +2 -2
data/lib/mapkit.rb
CHANGED
data/lib/tilekit.rb
CHANGED
@@ -1,17 +1,27 @@
|
|
1
1
|
require File.dirname(__FILE__) + "/mapkit"
|
2
2
|
require "gd2"
|
3
3
|
|
4
|
+
# this module helps drawing icons on tile images
|
4
5
|
module TileKit
|
6
|
+
# this class represents an icon that can be drawn on an Image
|
5
7
|
class Icon
|
6
8
|
attr_reader :image, :size
|
7
9
|
|
10
|
+
# initializes the icon with a path, image size [width, height], the peak#
|
11
|
+
# position (where the pointer should be placed) [x, y] and a bounding box
|
12
|
+
# that represents a clickable area
|
13
|
+
# path:: the path of the image (test.png)
|
14
|
+
# size:: the size of the immage as array [width, height]
|
15
|
+
# peak_position:: the peak position as array [x, y]
|
16
|
+
# clickable_area:: the clickable area of the icon as array [top, left, bottom, right]
|
8
17
|
def initialize(path, size, peak_position, clickable_area)
|
9
|
-
@image = GD2::Image.import(
|
18
|
+
@image = GD2::Image.import(path)
|
10
19
|
@size_x, @size_y = size
|
11
20
|
@peak_x, @peak_y = peak_position
|
12
21
|
@shift_x, @shift_y, @width, @height = clickable_area
|
13
22
|
end
|
14
23
|
|
24
|
+
# draws the icon on the canvas at passed position (x, y)
|
15
25
|
def draw(canvas, x, y)
|
16
26
|
# position icon at peak point
|
17
27
|
x, y = x - @peak_x, y - @peak_y
|
@@ -20,6 +30,8 @@ module TileKit
|
|
20
30
|
canvas.copy_from(@image, x, y, 0, 0, @size_x, @size_y)
|
21
31
|
end
|
22
32
|
|
33
|
+
# returns a boundingbox (with lat/lng) that contains the bounds of the
|
34
|
+
# image for the passed position
|
23
35
|
def bounding_box(lat, lng, zoom)
|
24
36
|
top, left = MapKit.shift_latlng(lat, lng, @shift_x - @peak_x, @shift_y - @peak_y, zoom)
|
25
37
|
bottom, right = MapKit.shift_latlng(top, left, @width, @height, zoom)
|
@@ -27,9 +39,12 @@ module TileKit
|
|
27
39
|
end
|
28
40
|
end
|
29
41
|
|
42
|
+
# this image class represents a tile in the google maps
|
30
43
|
class Image
|
31
44
|
attr_reader :canvas, :bounding_box
|
32
45
|
|
46
|
+
# initialize the image with a (lat/lng) bounding box of the tile it
|
47
|
+
# represents
|
33
48
|
def initialize(bounding_box)
|
34
49
|
@bounding_box = bounding_box
|
35
50
|
|
@@ -44,12 +59,13 @@ module TileKit
|
|
44
59
|
end
|
45
60
|
end
|
46
61
|
|
47
|
-
#
|
62
|
+
# draws passed icon at passed position
|
48
63
|
def draw_icon(point, icon)
|
49
64
|
x, y = point.pixel(@bounding_box)
|
50
65
|
icon.draw(@canvas, x, y)
|
51
66
|
end
|
52
|
-
|
67
|
+
|
68
|
+
# returns the png binary string of the image
|
53
69
|
def png
|
54
70
|
@canvas.png
|
55
71
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mapkit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vincent Landgraf
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-02-
|
12
|
+
date: 2010-02-11 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|