geo_coder 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +12 -0
- data/Gemfile.lock +32 -0
- data/History.txt +6 -0
- data/Makefile +13 -0
- data/Manifest.txt +18 -0
- data/README.rdoc +197 -0
- data/Rakefile +53 -0
- data/TODO.txt +8 -0
- data/VERSION +1 -0
- data/bin/build_indexes +8 -0
- data/bin/rebuild_cluster +22 -0
- data/bin/rebuild_metaphones +23 -0
- data/bin/tiger_import +59 -0
- data/demos/demo/app/ext/geocodewrap.rb +84 -0
- data/demos/demo/app/views/index.builder +13 -0
- data/demos/demo/app/views/index.erb +71 -0
- data/demos/demo/config.ru +12 -0
- data/demos/demo/config/bootstraps.rb +130 -0
- data/demos/demo/config/geoenvironment.rb +25 -0
- data/demos/demo/geocoder_helper.rb +12 -0
- data/demos/demo/geocom_geocode.rb +10 -0
- data/demos/demo/main.rb +3 -0
- data/demos/demo/rakefile.rb +17 -0
- data/demos/demo/tmp/restart.txt +0 -0
- data/demos/simpledemo/views/index.builder +13 -0
- data/demos/simpledemo/views/index.erb +69 -0
- data/demos/simpledemo/ws.rb +83 -0
- data/doc/Makefile +7 -0
- data/doc/html4css1.css +279 -0
- data/doc/lookup.rst +193 -0
- data/doc/parsing.rst +125 -0
- data/doc/voidspace.css +147 -0
- data/geo_coder.gemspec +172 -0
- data/lib/geocoder/us.rb +21 -0
- data/lib/geocoder/us/address.rb +290 -0
- data/lib/geocoder/us/constants.rb +670 -0
- data/lib/geocoder/us/database.rb +745 -0
- data/lib/geocoder/us/import.rb +181 -0
- data/lib/geocoder/us/import/tiger.rb +13 -0
- data/lib/geocoder/us/numbers.rb +58 -0
- data/navteq/README +4 -0
- data/navteq/convert.sql +37 -0
- data/navteq/navteq_import +39 -0
- data/navteq/prepare.sql +92 -0
- data/sql/cluster.sql +16 -0
- data/sql/convert.sql +80 -0
- data/sql/create.sql +37 -0
- data/sql/index.sql +12 -0
- data/sql/place.csv +104944 -0
- data/sql/place.sql +104948 -0
- data/sql/setup.sql +78 -0
- data/src/Makefile +13 -0
- data/src/README +14 -0
- data/src/liblwgeom/Makefile +75 -0
- data/src/liblwgeom/box2d.c +54 -0
- data/src/liblwgeom/lex.yy.c +4799 -0
- data/src/liblwgeom/liblwgeom.h +1405 -0
- data/src/liblwgeom/lwalgorithm.c +946 -0
- data/src/liblwgeom/lwalgorithm.h +52 -0
- data/src/liblwgeom/lwcircstring.c +759 -0
- data/src/liblwgeom/lwcollection.c +541 -0
- data/src/liblwgeom/lwcompound.c +118 -0
- data/src/liblwgeom/lwcurvepoly.c +86 -0
- data/src/liblwgeom/lwgeom.c +886 -0
- data/src/liblwgeom/lwgeom_api.c +2201 -0
- data/src/liblwgeom/lwgparse.c +1219 -0
- data/src/liblwgeom/lwgunparse.c +1054 -0
- data/src/liblwgeom/lwline.c +525 -0
- data/src/liblwgeom/lwmcurve.c +125 -0
- data/src/liblwgeom/lwmline.c +137 -0
- data/src/liblwgeom/lwmpoint.c +138 -0
- data/src/liblwgeom/lwmpoly.c +141 -0
- data/src/liblwgeom/lwmsurface.c +129 -0
- data/src/liblwgeom/lwpoint.c +439 -0
- data/src/liblwgeom/lwpoly.c +579 -0
- data/src/liblwgeom/lwsegmentize.c +1047 -0
- data/src/liblwgeom/lwutil.c +369 -0
- data/src/liblwgeom/measures.c +861 -0
- data/src/liblwgeom/postgis_config.h +93 -0
- data/src/liblwgeom/ptarray.c +847 -0
- data/src/liblwgeom/vsprintf.c +179 -0
- data/src/liblwgeom/wktparse.h +126 -0
- data/src/liblwgeom/wktparse.lex +74 -0
- data/src/liblwgeom/wktparse.tab.c +2353 -0
- data/src/liblwgeom/wktparse.tab.h +145 -0
- data/src/liblwgeom/wktparse.y +385 -0
- data/src/libsqlite3_geocoder/Makefile +22 -0
- data/src/libsqlite3_geocoder/Makefile.nix +15 -0
- data/src/libsqlite3_geocoder/Makefile.redhat +15 -0
- data/src/libsqlite3_geocoder/extension.c +121 -0
- data/src/libsqlite3_geocoder/extension.h +13 -0
- data/src/libsqlite3_geocoder/levenshtein.c +42 -0
- data/src/libsqlite3_geocoder/metaphon.c +278 -0
- data/src/libsqlite3_geocoder/util.c +37 -0
- data/src/libsqlite3_geocoder/wkb_compress.c +54 -0
- data/src/metaphone/Makefile +7 -0
- data/src/metaphone/README +49 -0
- data/src/metaphone/extension.c +37 -0
- data/src/metaphone/metaphon.c +251 -0
- data/src/shp2sqlite/Makefile +37 -0
- data/src/shp2sqlite/Makefile.nix +36 -0
- data/src/shp2sqlite/Makefile.redhat +35 -0
- data/src/shp2sqlite/dbfopen.c +1595 -0
- data/src/shp2sqlite/getopt.c +695 -0
- data/src/shp2sqlite/getopt.h +127 -0
- data/src/shp2sqlite/shapefil.h +500 -0
- data/src/shp2sqlite/shp2sqlite.c +1974 -0
- data/src/shp2sqlite/shpopen.c +1894 -0
- data/tests/address.rb +236 -0
- data/tests/benchmark.rb +20 -0
- data/tests/constants.rb +57 -0
- data/tests/data/address-sample.csv +52 -0
- data/tests/data/db-test.csv +57 -0
- data/tests/data/locations.csv +4 -0
- data/tests/database.rb +137 -0
- data/tests/generate.rb +34 -0
- data/tests/numbers.rb +46 -0
- data/tests/run.rb +11 -0
- metadata +237 -0
data/tests/generate.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
require 'geocoder/us/database'
|
5
|
+
require 'fastercsv'
|
6
|
+
|
7
|
+
db = Geocoder::US::Database.new("/mnt/tiger2008/geocoder.db",
|
8
|
+
"/home/sderle/geocoder/lib/libsqlite3_geocoder.so")
|
9
|
+
|
10
|
+
if ARGV.length == 1
|
11
|
+
result = db.geocode(ARGV[0], 0, 50)
|
12
|
+
p result
|
13
|
+
else
|
14
|
+
FasterCSV.open(ARGV[1], "w", {:headers => true, :write_headers => true}) do |output|
|
15
|
+
FasterCSV.foreach(ARGV[0], {:headers => true}) do |row|
|
16
|
+
result = db.geocode(row[0])
|
17
|
+
count = result.map{|a|[a[:lat], a[:lon]]}.to_set.length
|
18
|
+
if !result.empty?
|
19
|
+
row.headers[1..13].each_with_index {|f,i|
|
20
|
+
if result[0][f.to_sym] != row[i+1]
|
21
|
+
print "#{row[0]} !#{f} -> #{result[0][f]} != #{row[i+1]}\n"
|
22
|
+
end
|
23
|
+
}
|
24
|
+
result[0][:count] = count
|
25
|
+
result[0][:address] = row[0]
|
26
|
+
result[0][:comment] = row[-1]
|
27
|
+
columns = row.headers.map{|col|col.to_sym}
|
28
|
+
output << result[0].values_at(*columns)
|
29
|
+
else
|
30
|
+
print "!!! #{row[0]}\n"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/tests/numbers.rb
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
$LOAD_PATH.unshift '../lib'
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
require 'geocoder/us/numbers'
|
5
|
+
|
6
|
+
include Geocoder::US
|
7
|
+
|
8
|
+
class TestAddress < Test::Unit::TestCase
|
9
|
+
def test_number_to_cardinal
|
10
|
+
assert_equal 'one', Cardinals[1]
|
11
|
+
assert_equal 'ten', Cardinals[10]
|
12
|
+
assert_equal 'twelve', Cardinals[12]
|
13
|
+
assert_equal 'eighty-seven', Cardinals[87]
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_cardinal_to_number
|
17
|
+
assert_equal 1, Cardinals['one']
|
18
|
+
assert_equal 1, Cardinals['One']
|
19
|
+
assert_equal 10, Cardinals['ten']
|
20
|
+
assert_equal 12, Cardinals['twelve']
|
21
|
+
assert_equal 87, Cardinals['eighty-seven']
|
22
|
+
assert_equal 87, Cardinals['eighty seven']
|
23
|
+
assert_equal 87, Cardinals['eightyseven']
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_number_to_ordinal
|
27
|
+
assert_equal 'first', Ordinals[1]
|
28
|
+
assert_equal 'second', Ordinals[2]
|
29
|
+
assert_equal 'tenth', Ordinals[10]
|
30
|
+
assert_equal 'twelfth', Ordinals[12]
|
31
|
+
assert_equal 'twentieth', Ordinals[20]
|
32
|
+
assert_equal 'twenty-second', Ordinals[22]
|
33
|
+
assert_equal 'eighty-seventh', Ordinals[87]
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_ordinal_to_number
|
37
|
+
assert_equal 1, Ordinals['first']
|
38
|
+
assert_equal 1, Ordinals['First']
|
39
|
+
assert_equal 10, Ordinals['tenth']
|
40
|
+
assert_equal 12, Ordinals['twelfth']
|
41
|
+
assert_equal 73, Ordinals['seventy-third']
|
42
|
+
assert_equal 74, Ordinals['seventy fourth']
|
43
|
+
assert_equal 75, Ordinals['seventyfifth']
|
44
|
+
assert_equal nil, Ordinals['seventy-eleventh']
|
45
|
+
end
|
46
|
+
end
|
data/tests/run.rb
ADDED
metadata
ADDED
@@ -0,0 +1,237 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: geo_coder
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Travis Dempsey
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2011-09-21 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: sqlite3-ruby
|
16
|
+
requirement: &2167322460 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - =
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.2.5
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *2167322460
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: text
|
27
|
+
requirement: &2167321840 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *2167321840
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: bundler
|
38
|
+
requirement: &2167321360 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 1.0.0
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *2167321360
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: jeweler
|
49
|
+
requirement: &2167288980 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.6.4
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *2167288980
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: rcov
|
60
|
+
requirement: &2167288340 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *2167288340
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: &2167287720 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *2167287720
|
80
|
+
description: Geocode a text address.
|
81
|
+
email: dempsey.travis@gmail.com
|
82
|
+
executables:
|
83
|
+
- build_indexes
|
84
|
+
- rebuild_cluster
|
85
|
+
- rebuild_metaphones
|
86
|
+
- tiger_import
|
87
|
+
extensions: []
|
88
|
+
extra_rdoc_files:
|
89
|
+
- README.rdoc
|
90
|
+
files:
|
91
|
+
- Gemfile
|
92
|
+
- Gemfile.lock
|
93
|
+
- History.txt
|
94
|
+
- Makefile
|
95
|
+
- Manifest.txt
|
96
|
+
- README.rdoc
|
97
|
+
- Rakefile
|
98
|
+
- TODO.txt
|
99
|
+
- VERSION
|
100
|
+
- bin/build_indexes
|
101
|
+
- bin/rebuild_cluster
|
102
|
+
- bin/rebuild_metaphones
|
103
|
+
- bin/tiger_import
|
104
|
+
- demos/demo/app/ext/geocodewrap.rb
|
105
|
+
- demos/demo/app/views/index.builder
|
106
|
+
- demos/demo/app/views/index.erb
|
107
|
+
- demos/demo/config.ru
|
108
|
+
- demos/demo/config/bootstraps.rb
|
109
|
+
- demos/demo/config/geoenvironment.rb
|
110
|
+
- demos/demo/geocoder_helper.rb
|
111
|
+
- demos/demo/geocom_geocode.rb
|
112
|
+
- demos/demo/main.rb
|
113
|
+
- demos/demo/rakefile.rb
|
114
|
+
- demos/demo/tmp/restart.txt
|
115
|
+
- demos/simpledemo/views/index.builder
|
116
|
+
- demos/simpledemo/views/index.erb
|
117
|
+
- demos/simpledemo/ws.rb
|
118
|
+
- doc/Makefile
|
119
|
+
- doc/html4css1.css
|
120
|
+
- doc/lookup.rst
|
121
|
+
- doc/parsing.rst
|
122
|
+
- doc/voidspace.css
|
123
|
+
- geo_coder.gemspec
|
124
|
+
- lib/geocoder/us.rb
|
125
|
+
- lib/geocoder/us/address.rb
|
126
|
+
- lib/geocoder/us/constants.rb
|
127
|
+
- lib/geocoder/us/database.rb
|
128
|
+
- lib/geocoder/us/import.rb
|
129
|
+
- lib/geocoder/us/import/tiger.rb
|
130
|
+
- lib/geocoder/us/numbers.rb
|
131
|
+
- navteq/README
|
132
|
+
- navteq/convert.sql
|
133
|
+
- navteq/navteq_import
|
134
|
+
- navteq/prepare.sql
|
135
|
+
- sql/cluster.sql
|
136
|
+
- sql/convert.sql
|
137
|
+
- sql/create.sql
|
138
|
+
- sql/index.sql
|
139
|
+
- sql/place.csv
|
140
|
+
- sql/place.sql
|
141
|
+
- sql/setup.sql
|
142
|
+
- src/Makefile
|
143
|
+
- src/README
|
144
|
+
- src/liblwgeom/Makefile
|
145
|
+
- src/liblwgeom/box2d.c
|
146
|
+
- src/liblwgeom/lex.yy.c
|
147
|
+
- src/liblwgeom/liblwgeom.h
|
148
|
+
- src/liblwgeom/lwalgorithm.c
|
149
|
+
- src/liblwgeom/lwalgorithm.h
|
150
|
+
- src/liblwgeom/lwcircstring.c
|
151
|
+
- src/liblwgeom/lwcollection.c
|
152
|
+
- src/liblwgeom/lwcompound.c
|
153
|
+
- src/liblwgeom/lwcurvepoly.c
|
154
|
+
- src/liblwgeom/lwgeom.c
|
155
|
+
- src/liblwgeom/lwgeom_api.c
|
156
|
+
- src/liblwgeom/lwgparse.c
|
157
|
+
- src/liblwgeom/lwgunparse.c
|
158
|
+
- src/liblwgeom/lwline.c
|
159
|
+
- src/liblwgeom/lwmcurve.c
|
160
|
+
- src/liblwgeom/lwmline.c
|
161
|
+
- src/liblwgeom/lwmpoint.c
|
162
|
+
- src/liblwgeom/lwmpoly.c
|
163
|
+
- src/liblwgeom/lwmsurface.c
|
164
|
+
- src/liblwgeom/lwpoint.c
|
165
|
+
- src/liblwgeom/lwpoly.c
|
166
|
+
- src/liblwgeom/lwsegmentize.c
|
167
|
+
- src/liblwgeom/lwutil.c
|
168
|
+
- src/liblwgeom/measures.c
|
169
|
+
- src/liblwgeom/postgis_config.h
|
170
|
+
- src/liblwgeom/ptarray.c
|
171
|
+
- src/liblwgeom/vsprintf.c
|
172
|
+
- src/liblwgeom/wktparse.h
|
173
|
+
- src/liblwgeom/wktparse.lex
|
174
|
+
- src/liblwgeom/wktparse.tab.c
|
175
|
+
- src/liblwgeom/wktparse.tab.h
|
176
|
+
- src/liblwgeom/wktparse.y
|
177
|
+
- src/libsqlite3_geocoder/Makefile
|
178
|
+
- src/libsqlite3_geocoder/Makefile.nix
|
179
|
+
- src/libsqlite3_geocoder/Makefile.redhat
|
180
|
+
- src/libsqlite3_geocoder/extension.c
|
181
|
+
- src/libsqlite3_geocoder/extension.h
|
182
|
+
- src/libsqlite3_geocoder/levenshtein.c
|
183
|
+
- src/libsqlite3_geocoder/metaphon.c
|
184
|
+
- src/libsqlite3_geocoder/util.c
|
185
|
+
- src/libsqlite3_geocoder/wkb_compress.c
|
186
|
+
- src/metaphone/Makefile
|
187
|
+
- src/metaphone/README
|
188
|
+
- src/metaphone/extension.c
|
189
|
+
- src/metaphone/metaphon.c
|
190
|
+
- src/shp2sqlite/Makefile
|
191
|
+
- src/shp2sqlite/Makefile.nix
|
192
|
+
- src/shp2sqlite/Makefile.redhat
|
193
|
+
- src/shp2sqlite/dbfopen.c
|
194
|
+
- src/shp2sqlite/getopt.c
|
195
|
+
- src/shp2sqlite/getopt.h
|
196
|
+
- src/shp2sqlite/shapefil.h
|
197
|
+
- src/shp2sqlite/shp2sqlite.c
|
198
|
+
- src/shp2sqlite/shpopen.c
|
199
|
+
- tests/address.rb
|
200
|
+
- tests/benchmark.rb
|
201
|
+
- tests/constants.rb
|
202
|
+
- tests/data/address-sample.csv
|
203
|
+
- tests/data/db-test.csv
|
204
|
+
- tests/data/locations.csv
|
205
|
+
- tests/database.rb
|
206
|
+
- tests/generate.rb
|
207
|
+
- tests/numbers.rb
|
208
|
+
- tests/run.rb
|
209
|
+
homepage: http://github.com/kornypoet/geo_coder
|
210
|
+
licenses:
|
211
|
+
- MIT
|
212
|
+
post_install_message:
|
213
|
+
rdoc_options: []
|
214
|
+
require_paths:
|
215
|
+
- lib
|
216
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
217
|
+
none: false
|
218
|
+
requirements:
|
219
|
+
- - ! '>='
|
220
|
+
- !ruby/object:Gem::Version
|
221
|
+
version: '0'
|
222
|
+
segments:
|
223
|
+
- 0
|
224
|
+
hash: -2521903607750621196
|
225
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
226
|
+
none: false
|
227
|
+
requirements:
|
228
|
+
- - ! '>='
|
229
|
+
- !ruby/object:Gem::Version
|
230
|
+
version: '0'
|
231
|
+
requirements: []
|
232
|
+
rubyforge_project:
|
233
|
+
rubygems_version: 1.8.10
|
234
|
+
signing_key:
|
235
|
+
specification_version: 3
|
236
|
+
summary: Geocoder based upon the Geocommons Geocoder.
|
237
|
+
test_files: []
|