metacarta-geoparser 1.0.0 → 1.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/History.txt +12 -0
- data/{LICENSE → LICENSE.txt} +0 -0
- data/Manifest.txt +3 -2
- data/{README → README.txt} +0 -0
- data/Rakefile +16 -58
- data/lib/metacarta_geoparser.rb +8 -7
- data/test/test_metacarta_geoparser.rb +121 -14
- metadata +21 -11
data/History.txt
ADDED
data/{LICENSE → LICENSE.txt}
RENAMED
File without changes
|
data/Manifest.txt
CHANGED
data/{README → README.txt}
RENAMED
File without changes
|
data/Rakefile
CHANGED
@@ -1,69 +1,27 @@
|
|
1
|
-
require '
|
2
|
-
require 'rake'
|
3
|
-
require 'rake/testtask'
|
4
|
-
require 'rake/rdoctask'
|
5
|
-
require 'rake/gempackagetask'
|
1
|
+
require 'hoe'
|
6
2
|
|
7
|
-
|
3
|
+
require './lib/metacarta_geoparser'
|
8
4
|
|
9
|
-
|
10
|
-
s.name = 'metacarta-geoparser'
|
11
|
-
s.version = '1.0.0'
|
12
|
-
s.summary = 'MetaCarta GeoParser API Library'
|
13
|
-
s.description = 'Map addresses to latitude and longitude with MetaCarta\'s
|
14
|
-
GeoParser API.'
|
15
|
-
s.author = 'Eric Hodel'
|
16
|
-
s.email = 'eric@robotcoop.com'
|
5
|
+
DEV_DOC_PATH = "Libraries/metacarta-geoparser"
|
17
6
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
task :default => [ :test ]
|
7
|
+
hoe = Hoe.new 'metacarta-geoparser', MetaCartaGeoParser::VERSION do |p|
|
8
|
+
p.summary = 'MetaCarta GeoParser API Library'
|
9
|
+
p.description = 'Map addresses to latitude and longitude with MetaCarta\'s GeoParser API.'
|
10
|
+
p.author = 'Eric Hodel'
|
11
|
+
p.email = 'drbrain@segment7.net'
|
12
|
+
p.url = "http://dev.robotcoop.com/#{DEV_DOC_PATH}"
|
13
|
+
p.changes = File.read('History.txt').scan(/\A(=.*?)^=/m).first.first
|
14
|
+
p.rubyforge_name = 'rctools'
|
27
15
|
|
28
|
-
|
29
|
-
t.libs << '../rc-rest/lib'
|
30
|
-
t.pattern = 'test/test_*.rb'
|
31
|
-
t.verbose = true
|
16
|
+
p.extra_deps << ['rc-rest', '>= 2.0.0']
|
32
17
|
end
|
33
18
|
|
34
|
-
|
35
|
-
task :update_manifest do
|
36
|
-
sh "find . -type f | sed -e 's%./%%' | egrep -v 'svn|swp|~' | egrep -v '^(doc|pkg)/' | sort > Manifest.txt"
|
37
|
-
end
|
38
|
-
|
39
|
-
desc 'Generate RDoc'
|
40
|
-
Rake::RDocTask.new :rdoc do |rd|
|
41
|
-
rd.rdoc_dir = 'doc'
|
42
|
-
rd.rdoc_files.add 'lib', 'README', 'LICENSE'
|
43
|
-
rd.main = 'README'
|
44
|
-
rd.options << '-d' if `which dot` =~ /\/dot/
|
45
|
-
rd.options << '-t MetaCarta GeoParser'
|
46
|
-
end
|
19
|
+
SPEC = hoe.spec
|
47
20
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
rd.rdoc_files.add 'lib', 'README', 'LICENSE'
|
52
|
-
rd.main = 'README'
|
53
|
-
rd.options << '-d' if `which dot` =~ /\/dot/
|
54
|
-
rd.options << '-t MetaCarta GeoParser'
|
21
|
+
begin
|
22
|
+
require '../tasks'
|
23
|
+
rescue LoadError
|
55
24
|
end
|
56
25
|
|
57
|
-
desc 'Build Gem'
|
58
|
-
Rake::GemPackageTask.new spec do |pkg|
|
59
|
-
pkg.need_tar = true
|
60
|
-
end
|
61
|
-
|
62
|
-
desc 'Clean up'
|
63
|
-
task :clean => [ :clobber_rdoc, :clobber_package ]
|
64
|
-
|
65
|
-
desc 'Clean up'
|
66
|
-
task :clobber => [ :clean ]
|
67
|
-
|
68
26
|
# vim: syntax=Ruby
|
69
27
|
|
data/lib/metacarta_geoparser.rb
CHANGED
@@ -7,6 +7,8 @@ require 'rc_rest'
|
|
7
7
|
|
8
8
|
class MetaCartaGeoParser < RCRest
|
9
9
|
|
10
|
+
VERSION = '1.0.2'
|
11
|
+
|
10
12
|
class Error < RCRest::Error; end
|
11
13
|
|
12
14
|
##
|
@@ -25,7 +27,7 @@ class MetaCartaGeoParser < RCRest
|
|
25
27
|
# Locates +place+ and returns a Location object.
|
26
28
|
|
27
29
|
def locate(place)
|
28
|
-
locations, = get :q => place
|
30
|
+
locations, = get nil, :q => place
|
29
31
|
return locations.first
|
30
32
|
end
|
31
33
|
|
@@ -36,17 +38,17 @@ class MetaCartaGeoParser < RCRest
|
|
36
38
|
# surround them.
|
37
39
|
|
38
40
|
def locations(place)
|
39
|
-
get :loc => place
|
41
|
+
get nil, :loc => place
|
40
42
|
end
|
41
43
|
|
42
44
|
def check_error(xml) # :nodoc:
|
43
45
|
raise AddressError, 'bad location' unless xml.elements['Locations/Location']
|
44
46
|
end
|
45
47
|
|
46
|
-
def make_url(params) # :nodoc:
|
48
|
+
def make_url(method, params) # :nodoc:
|
47
49
|
params[:output] = 'locations'
|
48
50
|
|
49
|
-
super params
|
51
|
+
super method, params
|
50
52
|
end
|
51
53
|
|
52
54
|
def parse_response(xml) # :nodoc:
|
@@ -65,8 +67,8 @@ class MetaCartaGeoParser < RCRest
|
|
65
67
|
location.hierarchy = l.attributes['Hierarchy']
|
66
68
|
|
67
69
|
coords = l.elements['Centroid/gml:Point/gml:coordinates'].text.split ','
|
68
|
-
location.latitude = coords.
|
69
|
-
location.longitude = coords.
|
70
|
+
location.latitude = coords.last.to_f
|
71
|
+
location.longitude = coords.first.to_f
|
70
72
|
|
71
73
|
confidence = l.elements['Confidence']
|
72
74
|
location.confidence = confidence.text.to_f if confidence
|
@@ -87,7 +89,6 @@ class MetaCartaGeoParser < RCRest
|
|
87
89
|
return viewbox.text.split(' ').map do |coords|
|
88
90
|
coords.split(',').map { |c| c.to_f }
|
89
91
|
end
|
90
|
-
|
91
92
|
end
|
92
93
|
|
93
94
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'test/unit'
|
2
|
+
require 'rubygems'
|
2
3
|
require 'rc_rest/uri_stub'
|
3
4
|
require 'metacarta_geoparser'
|
4
5
|
|
@@ -20,13 +21,13 @@ class TestMetaCartaGeoParser < Test::Unit::TestCase
|
|
20
21
|
<Locations
|
21
22
|
xmlns:gml="http://www.opengis.net/gml"
|
22
23
|
CreatedBy="MetaCarta GeoParser v3.5.0-labs-alpha"
|
23
|
-
CreatedOn="
|
24
|
-
ConvertedFromBinaryFormat="
|
25
|
-
InputByteLength="
|
24
|
+
CreatedOn="Wed Oct 18 18:01:33 2006"
|
25
|
+
ConvertedFromBinaryFormat="0"
|
26
|
+
InputByteLength="1">
|
26
27
|
<ViewBox>
|
27
28
|
|
28
29
|
<gml:Box srsName="epsg:4326">
|
29
|
-
<gml:coordinates>
|
30
|
+
<gml:coordinates>29.298889,29.966667 72.766667,37.166667</gml:coordinates>
|
30
31
|
</gml:Box>
|
31
32
|
</ViewBox>
|
32
33
|
<Location
|
@@ -37,24 +38,130 @@ class TestMetaCartaGeoParser < Test::Unit::TestCase
|
|
37
38
|
Hierarchy="Iraq/Baghdad/Baghdad">
|
38
39
|
<ViewBox>
|
39
40
|
<gml:Box srsName="epsg:4326">
|
40
|
-
<gml:coordinates>
|
41
|
+
<gml:coordinates>43.593889,32.538611 45.193889,34.138611</gml:coordinates>
|
41
42
|
</gml:Box>
|
42
|
-
</ViewBox>
|
43
|
-
|
44
|
-
|
43
|
+
</ViewBox> <Centroid><gml:Point><gml:coordinates>44.393889,33.338611</gml:coordinates></gml:Point></Centroid>
|
44
|
+
</Location>
|
45
|
+
<Location
|
46
|
+
|
47
|
+
Name="Bagdade"
|
48
|
+
Type="PPL"
|
49
|
+
Population="-1"
|
50
|
+
Hierarchy="Iran/Khorasan/Bagdade">
|
51
|
+
<ViewBox>
|
52
|
+
<gml:Box srsName="epsg:4326">
|
53
|
+
<gml:coordinates>57.715833,33.168056 58.915833,34.368056</gml:coordinates>
|
54
|
+
</gml:Box>
|
55
|
+
</ViewBox> <Centroid><gml:Point><gml:coordinates>58.315832999999998,33.768056</gml:coordinates></gml:Point></Centroid>
|
56
|
+
</Location>
|
57
|
+
<Location
|
58
|
+
|
59
|
+
Name="Baghdad"
|
60
|
+
Type="ADM2"
|
61
|
+
Population="3841268"
|
62
|
+
Hierarchy="Iraq/Baghdad/Baghdad">
|
63
|
+
<ViewBox>
|
64
|
+
<gml:Box srsName="epsg:4326">
|
65
|
+
<gml:coordinates>43.567775,32.553325 45.267339,34.084988</gml:coordinates>
|
66
|
+
</gml:Box>
|
67
|
+
</ViewBox> <Centroid><gml:Point><gml:coordinates>44.417557000000002,33.319156999999997</gml:coordinates></gml:Point></Centroid>
|
68
|
+
</Location>
|
69
|
+
<Location
|
70
|
+
|
71
|
+
Name="Baghdad"
|
72
|
+
Type=""
|
73
|
+
Population="3841268"
|
74
|
+
Hierarchy="Iraq/Baghdad">
|
75
|
+
<ViewBox>
|
76
|
+
<gml:Box srsName="epsg:4326">
|
77
|
+
<gml:coordinates>43.897263,32.751564 44.926292,33.900391</gml:coordinates>
|
78
|
+
</gml:Box>
|
79
|
+
</ViewBox> <Centroid><gml:Point><gml:coordinates>44.411777999999998,33.325977000000002</gml:coordinates></gml:Point></Centroid>
|
80
|
+
</Location>
|
81
|
+
<Location
|
82
|
+
|
83
|
+
Name="Baghdad"
|
84
|
+
Type="AREA"
|
85
|
+
Population="-1"
|
86
|
+
Hierarchy="Syria/Idlib/Baghdad">
|
87
|
+
<ViewBox>
|
88
|
+
<gml:Box srsName="epsg:4326">
|
89
|
+
<gml:coordinates>35.600000,34.766667 38.000000,37.166667</gml:coordinates>
|
90
|
+
</gml:Box>
|
91
|
+
</ViewBox> <Centroid><gml:Point><gml:coordinates>36.799999999999997,35.966667</gml:coordinates></gml:Point></Centroid>
|
92
|
+
</Location>
|
93
|
+
<Location
|
94
|
+
|
95
|
+
Name="Baghdad"
|
96
|
+
Type="PPL"
|
97
|
+
Population="-1"
|
98
|
+
Hierarchy="Egypt/Al Iskandar�yah/Baghdad">
|
99
|
+
<ViewBox>
|
100
|
+
<gml:Box srsName="epsg:4326">
|
101
|
+
<gml:coordinates>29.298889,30.378611 30.298889,31.378611</gml:coordinates>
|
102
|
+
</gml:Box>
|
103
|
+
</ViewBox> <Centroid><gml:Point><gml:coordinates>29.798888999999999,30.878610999999999</gml:coordinates></gml:Point></Centroid>
|
104
|
+
</Location>
|
105
|
+
<Location
|
106
|
+
|
107
|
+
Name="Baghdad"
|
108
|
+
Type="STM"
|
109
|
+
Population="-1"
|
110
|
+
Hierarchy="Pakistan/Balochistan/Baghdad">
|
111
|
+
<ViewBox>
|
112
|
+
<gml:Box srsName="epsg:4326">
|
113
|
+
<gml:coordinates>66.394444,30.426389 67.394444,31.426389</gml:coordinates>
|
114
|
+
</gml:Box>
|
115
|
+
</ViewBox> <Centroid><gml:Point><gml:coordinates>66.894443999999993,30.926389</gml:coordinates></gml:Point></Centroid>
|
116
|
+
</Location>
|
117
|
+
<Location
|
118
|
+
|
119
|
+
Name="Baghdad"
|
120
|
+
Type="SPNG"
|
121
|
+
Population="-1"
|
122
|
+
Hierarchy="Pakistan/Balochistan/Baghdad">
|
123
|
+
<ViewBox>
|
124
|
+
<gml:Box srsName="epsg:4326">
|
125
|
+
<gml:coordinates>66.845833,30.208333 67.845833,31.208333</gml:coordinates>
|
126
|
+
</gml:Box>
|
127
|
+
</ViewBox> <Centroid><gml:Point><gml:coordinates>67.345832999999999,30.708333</gml:coordinates></gml:Point></Centroid>
|
128
|
+
</Location>
|
129
|
+
<Location
|
130
|
+
|
131
|
+
Name="Baghdad"
|
132
|
+
Type="PPL"
|
133
|
+
Population="-1"
|
134
|
+
Hierarchy="Pakistan/Punjab/Baghdad">
|
135
|
+
<ViewBox>
|
136
|
+
<gml:Box srsName="epsg:4326">
|
137
|
+
<gml:coordinates>71.566667,29.966667 72.766667,31.166667</gml:coordinates>
|
138
|
+
</gml:Box>
|
139
|
+
</ViewBox> <Centroid><gml:Point><gml:coordinates>72.166667000000004,30.566666999999999</gml:coordinates></gml:Point></Centroid>
|
140
|
+
</Location>
|
141
|
+
<Location
|
142
|
+
|
143
|
+
Name="Baghdad"
|
144
|
+
Type="PPL"
|
145
|
+
Population="-1"
|
146
|
+
Hierarchy="Afghanistan/Vardak/Baghdad">
|
147
|
+
<ViewBox>
|
148
|
+
<gml:Box srsName="epsg:4326">
|
149
|
+
<gml:coordinates>67.383333,33.716667 68.383333,34.716667</gml:coordinates>
|
150
|
+
</gml:Box>
|
151
|
+
</ViewBox> <Centroid><gml:Point><gml:coordinates>67.883332999999993,34.216667</gml:coordinates></gml:Point></Centroid>
|
45
152
|
</Location>
|
46
153
|
</Locations>
|
47
154
|
EOF
|
48
155
|
|
49
156
|
expected = MetaCartaGeoParser::Location.new 'Baghdad', 'PPLC', 5672516,
|
50
157
|
'Iraq/Baghdad/Baghdad',
|
51
|
-
|
52
|
-
[[
|
53
|
-
[
|
158
|
+
33.338611, 44.393889, nil,
|
159
|
+
[[43.593889, 32.538611],
|
160
|
+
[45.193889, 34.138611]]
|
54
161
|
|
55
162
|
location = @mg.locate('baghdad')
|
56
163
|
assert_equal expected, location
|
57
|
-
assert_equal [
|
164
|
+
assert_equal [33.338611, 44.393889], location.coordinates
|
58
165
|
|
59
166
|
assert_equal true, URI::HTTP.responses.empty?
|
60
167
|
assert_equal 1, URI::HTTP.uris.length
|
@@ -143,12 +250,12 @@ class TestMetaCartaGeoParser < Test::Unit::TestCase
|
|
143
250
|
expected = [
|
144
251
|
MetaCartaGeoParser::Location.new('Seattle', 'PPL', 563374,
|
145
252
|
'United States/Washington/King/Seattle',
|
146
|
-
-122.33083,
|
253
|
+
47.60639, -122.33083, nil,
|
147
254
|
[[43.806390, -126.130830],
|
148
255
|
[51.406390, -118.530830]]),
|
149
256
|
MetaCartaGeoParser::Location.new('Seattle', 'PRT', nil,
|
150
257
|
'United States/Seattle',
|
151
|
-
-122.333333,
|
258
|
+
47.6, -122.333333, nil,
|
152
259
|
[[43.8, -126.133333],
|
153
260
|
[51.4, -118.533333]]),
|
154
261
|
]
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.
|
2
|
+
rubygems_version: 0.9.0.6
|
3
3
|
specification_version: 1
|
4
4
|
name: metacarta-geoparser
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.0.
|
7
|
-
date: 2006-
|
6
|
+
version: 1.0.2
|
7
|
+
date: 2006-11-27 00:00:00 -08:00
|
8
8
|
summary: MetaCarta GeoParser API Library
|
9
9
|
require_paths:
|
10
10
|
- lib
|
11
|
-
email:
|
12
|
-
homepage:
|
13
|
-
rubyforge_project:
|
11
|
+
email: drbrain@segment7.net
|
12
|
+
homepage: http://dev.robotcoop.com/Libraries/metacarta-geoparser
|
13
|
+
rubyforge_project: rctools
|
14
14
|
description: Map addresses to latitude and longitude with MetaCarta's GeoParser API.
|
15
15
|
autorequire:
|
16
16
|
default_executable:
|
@@ -29,14 +29,15 @@ post_install_message:
|
|
29
29
|
authors:
|
30
30
|
- Eric Hodel
|
31
31
|
files:
|
32
|
-
-
|
32
|
+
- History.txt
|
33
|
+
- LICENSE.txt
|
33
34
|
- Manifest.txt
|
34
|
-
- README
|
35
|
+
- README.txt
|
35
36
|
- Rakefile
|
36
37
|
- lib/metacarta_geoparser.rb
|
37
38
|
- test/test_metacarta_geoparser.rb
|
38
|
-
test_files:
|
39
|
-
|
39
|
+
test_files:
|
40
|
+
- test/test_metacarta_geoparser.rb
|
40
41
|
rdoc_options: []
|
41
42
|
|
42
43
|
extra_rdoc_files: []
|
@@ -48,6 +49,15 @@ extensions: []
|
|
48
49
|
requirements: []
|
49
50
|
|
50
51
|
dependencies:
|
52
|
+
- !ruby/object:Gem::Dependency
|
53
|
+
name: hoe
|
54
|
+
version_requirement:
|
55
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: 1.1.4
|
60
|
+
version:
|
51
61
|
- !ruby/object:Gem::Dependency
|
52
62
|
name: rc-rest
|
53
63
|
version_requirement:
|
@@ -55,5 +65,5 @@ dependencies:
|
|
55
65
|
requirements:
|
56
66
|
- - ">="
|
57
67
|
- !ruby/object:Gem::Version
|
58
|
-
version:
|
68
|
+
version: 2.0.0
|
59
69
|
version:
|