schleyfox-ruby_kml 0.1.3 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- data/README.textile +1 -1
- data/Rakefile +8 -80
- data/lib/kml/container.rb +7 -1
- data/lib/kml/document.rb +1 -1
- data/lib/kml/geometry.rb +2 -2
- data/lib/kml/model.rb +37 -1
- data/lib/kml/multi_geometry.rb +5 -3
- data/lib/kml/placemark.rb +2 -1
- metadata +28 -30
data/README.textile
CHANGED
@@ -3,7 +3,7 @@ Sweet if you want to place markers, overlays, and other awesome things over a go
|
|
3
3
|
|
4
4
|
h2. Install
|
5
5
|
|
6
|
-
<pre><code>gem install
|
6
|
+
<pre><code>gem install schleyfox-ruby_kml --source http://gems.github.com</code></pre>
|
7
7
|
|
8
8
|
h2. Examples
|
9
9
|
|
data/Rakefile
CHANGED
@@ -1,27 +1,18 @@
|
|
1
1
|
require 'rake'
|
2
2
|
require 'rake/testtask'
|
3
3
|
require 'rake/rdoctask'
|
4
|
-
require '
|
5
|
-
require 'rake/gempackagetask'
|
6
|
-
require 'rake/contrib/rubyforgepublisher'
|
4
|
+
require 'erb'
|
7
5
|
|
8
6
|
require File.join(File.dirname(__FILE__), 'lib/kml', 'version')
|
9
7
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
RUBY_FORGE_PROJECT = "kmlr"
|
19
|
-
RUBY_FORGE_USER = "aeden"
|
20
|
-
|
21
|
-
desc 'Default: run unit tests.'
|
22
|
-
task :default => :test
|
8
|
+
desc "Generate GemSpec file"
|
9
|
+
task :gem_spec do
|
10
|
+
t = ERB.new(File.read("ruby_kml.gemspec.erb"))
|
11
|
+
File.open("ruby_kml.gemspec", "w") do |f|
|
12
|
+
f.write(t.result(binding))
|
13
|
+
end
|
14
|
+
end
|
23
15
|
|
24
|
-
desc 'Test the library.'
|
25
16
|
Rake::TestTask.new(:test) do |t|
|
26
17
|
t.libs << 'lib'
|
27
18
|
t.pattern = 'test/**/*_test.rb'
|
@@ -45,44 +36,6 @@ Rake::RDocTask.new(:rdoc) do |rdoc|
|
|
45
36
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
46
37
|
end
|
47
38
|
|
48
|
-
PKG_FILES = FileList[
|
49
|
-
'CHANGELOG',
|
50
|
-
'README',
|
51
|
-
'TODO',
|
52
|
-
'Rakefile',
|
53
|
-
'bin/**/*',
|
54
|
-
'doc/**/*',
|
55
|
-
'lib/**/*',
|
56
|
-
] - [ 'test' ]
|
57
|
-
|
58
|
-
spec = Gem::Specification.new do |s|
|
59
|
-
s.name = 'kmlr'
|
60
|
-
s.version = PKG_VERSION
|
61
|
-
s.summary = "Library to product KML files."
|
62
|
-
s.description = <<-EOF
|
63
|
-
KMLr is a Ruby library which can be used to construct Keyhole Markup Language files.
|
64
|
-
EOF
|
65
|
-
|
66
|
-
s.add_dependency('rake', '>= 0.7.1')
|
67
|
-
|
68
|
-
s.rdoc_options << '--exclude' << '.'
|
69
|
-
s.has_rdoc = false
|
70
|
-
|
71
|
-
s.files = PKG_FILES.to_a.delete_if {|f| f.include?('.svn')}
|
72
|
-
s.require_path = 'lib'
|
73
|
-
|
74
|
-
s.author = "Anthony Eden"
|
75
|
-
s.email = "anthonyeden@gmail.com"
|
76
|
-
s.homepage = "http://kmlr.rubyforge.org/"
|
77
|
-
s.rubyforge_project = "kmlr"
|
78
|
-
end
|
79
|
-
|
80
|
-
Rake::GemPackageTask.new(spec) do |pkg|
|
81
|
-
pkg.gem_spec = spec
|
82
|
-
pkg.need_tar = true
|
83
|
-
pkg.need_zip = true
|
84
|
-
end
|
85
|
-
|
86
39
|
desc "Generate code statistics"
|
87
40
|
task :lines do
|
88
41
|
lines, codelines, total_lines, total_codelines = 0, 0, 0, 0
|
@@ -107,28 +60,3 @@ task :lines do
|
|
107
60
|
|
108
61
|
puts "Total: Lines #{total_lines}, LOC #{total_codelines}"
|
109
62
|
end
|
110
|
-
|
111
|
-
desc "Publish the release files to RubyForge."
|
112
|
-
task :release => [ :package ] do
|
113
|
-
`rubyforge login`
|
114
|
-
|
115
|
-
for ext in %w( gem tgz zip )
|
116
|
-
release_command = "rubyforge add_release kmlr #{PKG_NAME} 'REL #{PKG_VERSION}' pkg/#{PKG_NAME}-#{PKG_VERSION}.#{ext}"
|
117
|
-
puts release_command
|
118
|
-
system(release_command)
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
|
-
desc "Publish the API documentation"
|
123
|
-
task :pdoc => [:rdoc] do
|
124
|
-
Rake::SshDirPublisher.new("aeden@rubyforge.org", "/var/www/gforge-projects/kmlr/rdoc", "rdoc").upload
|
125
|
-
end
|
126
|
-
|
127
|
-
desc "Reinstall the gem from a local package copy"
|
128
|
-
task :reinstall => [:package] do
|
129
|
-
windows = RUBY_PLATFORM =~ /mswin/
|
130
|
-
sudo = windows ? '' : 'sudo'
|
131
|
-
gem = windows ? 'gem.bat' : 'gem'
|
132
|
-
`#{sudo} #{gem} uninstall -x -i #{PKG_NAME}`
|
133
|
-
`#{sudo} #{gem} install pkg/#{PKG_NAME}-#{PKG_VERSION}`
|
134
|
-
end
|
data/lib/kml/container.rb
CHANGED
@@ -4,13 +4,19 @@ module KML
|
|
4
4
|
|
5
5
|
# Access the features in the container
|
6
6
|
attr_accessor :features
|
7
|
+
attr_accessor :plain_children
|
7
8
|
|
8
9
|
# Get the features in the container
|
9
10
|
def features
|
10
11
|
@features ||= []
|
11
12
|
end
|
13
|
+
|
14
|
+
def plain_children
|
15
|
+
@plain_children ||= []
|
16
|
+
end
|
17
|
+
|
12
18
|
end
|
13
19
|
end
|
14
20
|
|
15
21
|
require 'kml/folder'
|
16
|
-
require 'kml/document'
|
22
|
+
require 'kml/document'
|
data/lib/kml/document.rb
CHANGED
data/lib/kml/geometry.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module KML
|
2
|
-
class Geometry < KML::
|
2
|
+
class Geometry < KML::Container
|
3
3
|
# Specifies whether to connect the point to the ground. Extrusion requires that the point's +altitude_mode+ be
|
4
4
|
# either "relativeToGround" or "absolute" and that within the +coordinates+, the altitude component be greater
|
5
5
|
# than 0 (that is, in the air). Default is false.
|
@@ -83,4 +83,4 @@ require 'kml/line_string'
|
|
83
83
|
require 'kml/linear_ring'
|
84
84
|
require 'kml/polygon'
|
85
85
|
require 'kml/model'
|
86
|
-
require 'kml/multi_geometry'
|
86
|
+
require 'kml/multi_geometry'
|
data/lib/kml/model.rb
CHANGED
@@ -1,4 +1,40 @@
|
|
1
1
|
module KML
|
2
2
|
class Model < Geometry
|
3
|
+
|
4
|
+
def initialize(params={})
|
5
|
+
@lng, @lat, @alt = *params[:location]
|
6
|
+
@heading, @tilt, @roll = *params[:orientation] || [0, 0, 0]
|
7
|
+
@x, @y, @z = *params[:scale] || [1, 1, 1]
|
8
|
+
@link = params[:link]
|
9
|
+
@id = params[:id] if params[:id]
|
10
|
+
end
|
11
|
+
|
12
|
+
def id
|
13
|
+
@id || "model_#{@link.href}_#{@x}_#{@y}"
|
14
|
+
end
|
15
|
+
|
16
|
+
def render(xm = Builder::XmlMarkup.new(:indent => 2))
|
17
|
+
xm.Model :id => id do
|
18
|
+
xm.altitudeMode(altitude_mode) if altitude_mode_set?
|
19
|
+
xm.Location do
|
20
|
+
xm.longitude @lng
|
21
|
+
xm.latitude @lat
|
22
|
+
xm.altitude @alt
|
23
|
+
end
|
24
|
+
xm.Orientation do
|
25
|
+
xm.heading @heading
|
26
|
+
xm.tilt @tilt
|
27
|
+
xm.roll @roll
|
28
|
+
end
|
29
|
+
xm.Scale do
|
30
|
+
xm.x @x
|
31
|
+
xm.y @y
|
32
|
+
xm.z @z
|
33
|
+
end
|
34
|
+
@link.render(xm)
|
35
|
+
# ResourceMap needs to be implemented still
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
3
39
|
end
|
4
|
-
end
|
40
|
+
end
|
data/lib/kml/multi_geometry.rb
CHANGED
data/lib/kml/placemark.rb
CHANGED
@@ -23,13 +23,14 @@
|
|
23
23
|
# </Placemark>
|
24
24
|
|
25
25
|
module KML
|
26
|
-
class Placemark < Container
|
26
|
+
class Placemark < KML::Container
|
27
27
|
attr_accessor :geometry
|
28
28
|
|
29
29
|
def render(xm=Builder::XmlMarkup.new(:indent => 2))
|
30
30
|
xm.Placemark {
|
31
31
|
super
|
32
32
|
features.each { |f| f.render(xm) }
|
33
|
+
plain_children.each { |c| xm << c }
|
33
34
|
geometry.render(xm) unless geometry.nil?
|
34
35
|
}
|
35
36
|
end
|
metadata
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: schleyfox-ruby_kml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- aeden, schleyfox, xaviershay
|
7
|
+
- aeden, schleyfox, xaviershay, andykram
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
@@ -26,41 +26,41 @@ files:
|
|
26
26
|
- LICENSE
|
27
27
|
- Rakefile
|
28
28
|
- README.textile
|
29
|
+
- lib/kml/look_at.rb
|
30
|
+
- lib/kml/ground_overlay.rb
|
31
|
+
- lib/kml/model.rb
|
32
|
+
- lib/kml/link.rb
|
29
33
|
- lib/kml/style.rb
|
34
|
+
- lib/kml/style_map.rb
|
30
35
|
- lib/kml/hot_spot.rb
|
31
|
-
- lib/kml/
|
32
|
-
- lib/kml/
|
33
|
-
- lib/kml/point.rb
|
34
|
-
- lib/kml/polygon.rb
|
35
|
-
- lib/kml/placemark.rb
|
36
|
-
- lib/kml/model.rb
|
37
|
-
- lib/kml/poly_style.rb
|
38
|
-
- lib/kml/line_string.rb
|
39
|
-
- lib/kml/screen_overlay.rb
|
36
|
+
- lib/kml/version.rb
|
37
|
+
- lib/kml/feature.rb
|
40
38
|
- lib/kml/geometry.rb
|
41
|
-
- lib/kml/snippet.rb
|
42
|
-
- lib/kml/color_style.rb
|
43
|
-
- lib/kml/folder.rb
|
44
39
|
- lib/kml/lat_lon_box.rb
|
45
|
-
- lib/kml/linear_ring.rb
|
46
|
-
- lib/kml/style_map.rb
|
47
|
-
- lib/kml/object.rb
|
48
|
-
- lib/kml/document.rb
|
49
|
-
- lib/kml/icon.rb
|
50
40
|
- lib/kml/icon_style.rb
|
41
|
+
- lib/kml/line_string.rb
|
42
|
+
- lib/kml/poly_style.rb
|
43
|
+
- lib/kml/folder.rb
|
44
|
+
- lib/kml/object.rb
|
45
|
+
- lib/kml/color_style.rb
|
51
46
|
- lib/kml/container.rb
|
52
|
-
- lib/kml/multi_geometry.rb
|
53
|
-
- lib/kml/look_at.rb
|
54
47
|
- lib/kml/overlay.rb
|
48
|
+
- lib/kml/multi_geometry.rb
|
49
|
+
- lib/kml/snippet.rb
|
50
|
+
- lib/kml/polygon.rb
|
51
|
+
- lib/kml/document.rb
|
52
|
+
- lib/kml/screen_overlay.rb
|
53
|
+
- lib/kml/line_style.rb
|
54
|
+
- lib/kml/linear_ring.rb
|
55
|
+
- lib/kml/point.rb
|
56
|
+
- lib/kml/placemark.rb
|
55
57
|
- lib/kml/style_selector.rb
|
56
|
-
- lib/kml/
|
57
|
-
- lib/kml/version.rb
|
58
|
-
- lib/kml/ground_overlay.rb
|
59
|
-
- lib/kml_file.rb
|
58
|
+
- lib/kml/icon.rb
|
60
59
|
- lib/kml.rb
|
61
|
-
-
|
60
|
+
- lib/kml_file.rb
|
62
61
|
- test/kml_file_test.rb
|
63
62
|
- test/test_helper.rb
|
63
|
+
- test/kml/point_test.rb
|
64
64
|
- examples/melbourne-stations.kml
|
65
65
|
has_rdoc: false
|
66
66
|
homepage: http://github.com/schleyfox/ruby_kml
|
@@ -88,7 +88,5 @@ rubygems_version: 1.2.0
|
|
88
88
|
signing_key:
|
89
89
|
specification_version: 2
|
90
90
|
summary: Generate KML files with ruby
|
91
|
-
test_files:
|
92
|
-
|
93
|
-
- test/kml_file_test.rb
|
94
|
-
- test/test_helper.rb
|
91
|
+
test_files: []
|
92
|
+
|