geocoder 1.2.6 → 1.6.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (276) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +189 -1
  3. data/LICENSE +1 -1
  4. data/README.md +387 -755
  5. data/examples/autoexpire_cache_redis.rb +5 -3
  6. data/examples/reverse_geocode_job.rb +40 -0
  7. data/lib/generators/geocoder/config/templates/initializer.rb +17 -16
  8. data/lib/generators/geocoder/maxmind/geolite_city_generator.rb +2 -0
  9. data/lib/generators/geocoder/maxmind/geolite_country_generator.rb +2 -0
  10. data/lib/generators/geocoder/maxmind/templates/migration/geolite_city.rb +1 -1
  11. data/lib/generators/geocoder/maxmind/templates/migration/geolite_country.rb +1 -1
  12. data/lib/generators/geocoder/migration_version.rb +15 -0
  13. data/lib/geocoder/cache.rb +6 -2
  14. data/lib/geocoder/calculations.rb +30 -38
  15. data/lib/geocoder/cli.rb +2 -2
  16. data/lib/geocoder/configuration.rb +18 -5
  17. data/lib/geocoder/esri_token.rb +38 -0
  18. data/lib/geocoder/exceptions.rb +19 -0
  19. data/lib/geocoder/ip_address.rb +16 -11
  20. data/lib/geocoder/kernel_logger.rb +25 -0
  21. data/lib/geocoder/logger.rb +47 -0
  22. data/lib/geocoder/lookup.rb +31 -12
  23. data/lib/geocoder/lookups/amap.rb +63 -0
  24. data/lib/geocoder/lookups/baidu.rb +17 -9
  25. data/lib/geocoder/lookups/baidu_ip.rb +7 -31
  26. data/lib/geocoder/lookups/ban_data_gouv_fr.rb +143 -0
  27. data/lib/geocoder/lookups/base.rb +73 -25
  28. data/lib/geocoder/lookups/bing.rb +38 -15
  29. data/lib/geocoder/lookups/db_ip_com.rb +52 -0
  30. data/lib/geocoder/lookups/dstk.rb +4 -2
  31. data/lib/geocoder/lookups/esri.rb +55 -8
  32. data/lib/geocoder/lookups/freegeoip.rb +18 -5
  33. data/lib/geocoder/lookups/geocoder_ca.rb +5 -6
  34. data/lib/geocoder/lookups/geocodio.rb +8 -8
  35. data/lib/geocoder/lookups/geoip2.rb +10 -5
  36. data/lib/geocoder/lookups/geoportail_lu.rb +65 -0
  37. data/lib/geocoder/lookups/google.rb +37 -9
  38. data/lib/geocoder/lookups/google_places_details.rb +9 -9
  39. data/lib/geocoder/lookups/google_places_search.rb +33 -0
  40. data/lib/geocoder/lookups/google_premier.rb +11 -1
  41. data/lib/geocoder/lookups/here.rb +29 -23
  42. data/lib/geocoder/lookups/ip2location.rb +67 -0
  43. data/lib/geocoder/lookups/ipapi_com.rb +82 -0
  44. data/lib/geocoder/lookups/ipdata_co.rb +62 -0
  45. data/lib/geocoder/lookups/ipgeolocation.rb +51 -0
  46. data/lib/geocoder/lookups/ipinfo_io.rb +44 -0
  47. data/lib/geocoder/lookups/ipregistry.rb +68 -0
  48. data/lib/geocoder/lookups/ipstack.rb +63 -0
  49. data/lib/geocoder/lookups/latlon.rb +59 -0
  50. data/lib/geocoder/lookups/location_iq.rb +50 -0
  51. data/lib/geocoder/lookups/mapbox.rb +59 -0
  52. data/lib/geocoder/lookups/mapquest.rb +7 -9
  53. data/lib/geocoder/lookups/maxmind.rb +7 -7
  54. data/lib/geocoder/lookups/maxmind_geoip2.rb +70 -0
  55. data/lib/geocoder/lookups/maxmind_local.rb +9 -2
  56. data/lib/geocoder/lookups/nominatim.rb +18 -6
  57. data/lib/geocoder/lookups/opencagedata.rb +16 -9
  58. data/lib/geocoder/lookups/osmnames.rb +57 -0
  59. data/lib/geocoder/lookups/pelias.rb +63 -0
  60. data/lib/geocoder/lookups/pickpoint.rb +41 -0
  61. data/lib/geocoder/lookups/pointpin.rb +14 -13
  62. data/lib/geocoder/lookups/postcode_anywhere_uk.rb +7 -8
  63. data/lib/geocoder/lookups/postcodes_io.rb +31 -0
  64. data/lib/geocoder/lookups/smarty_streets.rb +23 -5
  65. data/lib/geocoder/lookups/telize.rb +42 -7
  66. data/lib/geocoder/lookups/tencent.rb +59 -0
  67. data/lib/geocoder/lookups/yandex.rb +17 -9
  68. data/lib/geocoder/models/active_record.rb +4 -3
  69. data/lib/geocoder/models/mongo_base.rb +0 -2
  70. data/lib/geocoder/query.rb +15 -1
  71. data/lib/geocoder/railtie.rb +1 -1
  72. data/lib/geocoder/request.rb +103 -14
  73. data/lib/geocoder/results/amap.rb +87 -0
  74. data/lib/geocoder/results/baidu.rb +10 -14
  75. data/lib/geocoder/results/ban_data_gouv_fr.rb +257 -0
  76. data/lib/geocoder/results/base.rb +13 -1
  77. data/lib/geocoder/results/bing.rb +5 -1
  78. data/lib/geocoder/results/db_ip_com.rb +58 -0
  79. data/lib/geocoder/results/esri.rb +30 -6
  80. data/lib/geocoder/results/freegeoip.rb +2 -7
  81. data/lib/geocoder/results/geocoder_ca.rb +3 -3
  82. data/lib/geocoder/results/geocodio.rb +15 -3
  83. data/lib/geocoder/results/geoip2.rb +37 -25
  84. data/lib/geocoder/results/geoportail_lu.rb +71 -0
  85. data/lib/geocoder/results/google.rb +26 -0
  86. data/lib/geocoder/results/google_places_details.rb +4 -0
  87. data/lib/geocoder/results/google_places_search.rb +52 -0
  88. data/lib/geocoder/results/here.rb +21 -1
  89. data/lib/geocoder/results/ip2location.rb +22 -0
  90. data/lib/geocoder/results/ipapi_com.rb +45 -0
  91. data/lib/geocoder/results/ipdata_co.rb +40 -0
  92. data/lib/geocoder/results/ipgeolocation.rb +59 -0
  93. data/lib/geocoder/results/ipinfo_io.rb +48 -0
  94. data/lib/geocoder/results/ipregistry.rb +308 -0
  95. data/lib/geocoder/results/ipstack.rb +60 -0
  96. data/lib/geocoder/results/latlon.rb +71 -0
  97. data/lib/geocoder/results/location_iq.rb +6 -0
  98. data/lib/geocoder/results/mapbox.rb +57 -0
  99. data/lib/geocoder/results/mapquest.rb +5 -8
  100. data/lib/geocoder/results/maxmind.rb +0 -5
  101. data/lib/geocoder/results/maxmind_geoip2.rb +9 -0
  102. data/lib/geocoder/results/maxmind_local.rb +0 -5
  103. data/lib/geocoder/results/nominatim.rb +18 -3
  104. data/lib/geocoder/results/opencagedata.rb +20 -2
  105. data/lib/geocoder/results/osmnames.rb +56 -0
  106. data/lib/geocoder/results/pelias.rb +58 -0
  107. data/lib/geocoder/results/pickpoint.rb +6 -0
  108. data/lib/geocoder/results/pointpin.rb +0 -4
  109. data/lib/geocoder/results/postcodes_io.rb +40 -0
  110. data/lib/geocoder/results/smarty_streets.rb +55 -19
  111. data/lib/geocoder/results/telize.rb +0 -5
  112. data/lib/geocoder/results/tencent.rb +72 -0
  113. data/lib/geocoder/results/test.rb +1 -1
  114. data/lib/geocoder/results/yandex.rb +57 -7
  115. data/lib/geocoder/sql.rb +9 -6
  116. data/lib/geocoder/stores/active_record.rb +49 -10
  117. data/lib/geocoder/stores/base.rb +2 -14
  118. data/lib/geocoder/stores/mongo_base.rb +0 -31
  119. data/lib/geocoder/version.rb +1 -1
  120. data/lib/geocoder.rb +2 -1
  121. data/lib/hash_recursive_merge.rb +1 -2
  122. data/lib/maxmind_database.rb +4 -4
  123. data/lib/tasks/geocoder.rake +29 -4
  124. metadata +56 -159
  125. data/.gitignore +0 -6
  126. data/.travis.yml +0 -31
  127. data/Rakefile +0 -25
  128. data/gemfiles/Gemfile.mongoid-2.4.x +0 -16
  129. data/lib/geocoder/lookups/geocoder_us.rb +0 -39
  130. data/lib/geocoder/lookups/okf.rb +0 -43
  131. data/lib/geocoder/lookups/ovi.rb +0 -62
  132. data/lib/geocoder/lookups/yahoo.rb +0 -88
  133. data/lib/geocoder/results/geocoder_us.rb +0 -39
  134. data/lib/geocoder/results/okf.rb +0 -106
  135. data/lib/geocoder/results/ovi.rb +0 -62
  136. data/lib/geocoder/results/yahoo.rb +0 -55
  137. data/lib/oauth_util.rb +0 -112
  138. data/test/fixtures/baidu_invalid_key +0 -1
  139. data/test/fixtures/baidu_ip_202_198_16_3 +0 -19
  140. data/test/fixtures/baidu_ip_invalid_key +0 -1
  141. data/test/fixtures/baidu_ip_no_results +0 -1
  142. data/test/fixtures/baidu_no_results +0 -1
  143. data/test/fixtures/baidu_reverse +0 -1
  144. data/test/fixtures/baidu_shanghai_pearl_tower +0 -12
  145. data/test/fixtures/bing_invalid_key +0 -1
  146. data/test/fixtures/bing_madison_square_garden +0 -40
  147. data/test/fixtures/bing_no_results +0 -16
  148. data/test/fixtures/bing_reverse +0 -42
  149. data/test/fixtures/cloudmade_invalid_key +0 -1
  150. data/test/fixtures/cloudmade_madison_square_garden +0 -1
  151. data/test/fixtures/cloudmade_no_results +0 -1
  152. data/test/fixtures/esri_madison_square_garden +0 -59
  153. data/test/fixtures/esri_no_results +0 -8
  154. data/test/fixtures/esri_reverse +0 -21
  155. data/test/fixtures/freegeoip_74_200_247_59 +0 -12
  156. data/test/fixtures/freegeoip_no_results +0 -1
  157. data/test/fixtures/geocoder_ca_madison_square_garden +0 -1
  158. data/test/fixtures/geocoder_ca_no_results +0 -1
  159. data/test/fixtures/geocoder_ca_reverse +0 -34
  160. data/test/fixtures/geocoder_us_madison_square_garden +0 -1
  161. data/test/fixtures/geocoder_us_no_results +0 -1
  162. data/test/fixtures/geocodio_1101_pennsylvania_ave +0 -1
  163. data/test/fixtures/geocodio_bad_api_key +0 -3
  164. data/test/fixtures/geocodio_invalid +0 -4
  165. data/test/fixtures/geocodio_no_results +0 -1
  166. data/test/fixtures/geocodio_over_query_limit +0 -4
  167. data/test/fixtures/google_garbage +0 -456
  168. data/test/fixtures/google_madison_square_garden +0 -57
  169. data/test/fixtures/google_no_city_data +0 -44
  170. data/test/fixtures/google_no_locality +0 -51
  171. data/test/fixtures/google_no_results +0 -4
  172. data/test/fixtures/google_over_limit +0 -4
  173. data/test/fixtures/google_places_details_invalid_request +0 -4
  174. data/test/fixtures/google_places_details_madison_square_garden +0 -120
  175. data/test/fixtures/google_places_details_no_results +0 -4
  176. data/test/fixtures/google_places_details_no_reviews +0 -60
  177. data/test/fixtures/google_places_details_no_types +0 -66
  178. data/test/fixtures/here_madison_square_garden +0 -72
  179. data/test/fixtures/here_no_results +0 -8
  180. data/test/fixtures/mapquest_error +0 -16
  181. data/test/fixtures/mapquest_invalid_api_key +0 -16
  182. data/test/fixtures/mapquest_invalid_request +0 -16
  183. data/test/fixtures/mapquest_madison_square_garden +0 -52
  184. data/test/fixtures/mapquest_no_results +0 -16
  185. data/test/fixtures/maxmind_24_24_24_21 +0 -1
  186. data/test/fixtures/maxmind_24_24_24_22 +0 -1
  187. data/test/fixtures/maxmind_24_24_24_23 +0 -1
  188. data/test/fixtures/maxmind_24_24_24_24 +0 -1
  189. data/test/fixtures/maxmind_74_200_247_59 +0 -1
  190. data/test/fixtures/maxmind_invalid_key +0 -1
  191. data/test/fixtures/maxmind_no_results +0 -1
  192. data/test/fixtures/nominatim_madison_square_garden +0 -150
  193. data/test/fixtures/nominatim_no_results +0 -1
  194. data/test/fixtures/nominatim_over_limit +0 -1
  195. data/test/fixtures/okf_kirstinmaki +0 -67
  196. data/test/fixtures/okf_no_results +0 -4
  197. data/test/fixtures/opencagedata_invalid_api_key +0 -25
  198. data/test/fixtures/opencagedata_invalid_request +0 -26
  199. data/test/fixtures/opencagedata_madison_square_garden +0 -73
  200. data/test/fixtures/opencagedata_no_results +0 -29
  201. data/test/fixtures/opencagedata_over_limit +0 -31
  202. data/test/fixtures/ovi_madison_square_garden +0 -72
  203. data/test/fixtures/ovi_no_results +0 -8
  204. data/test/fixtures/pointpin_10_10_10_10 +0 -1
  205. data/test/fixtures/pointpin_555_555_555_555 +0 -1
  206. data/test/fixtures/pointpin_80_111_555_555 +0 -1
  207. data/test/fixtures/pointpin_no_results +0 -1
  208. data/test/fixtures/postcode_anywhere_uk_geocode_v2_00_WR26NJ +0 -1
  209. data/test/fixtures/postcode_anywhere_uk_geocode_v2_00_generic_error +0 -1
  210. data/test/fixtures/postcode_anywhere_uk_geocode_v2_00_hampshire +0 -1
  211. data/test/fixtures/postcode_anywhere_uk_geocode_v2_00_key_limit_exceeded +0 -1
  212. data/test/fixtures/postcode_anywhere_uk_geocode_v2_00_no_results +0 -1
  213. data/test/fixtures/postcode_anywhere_uk_geocode_v2_00_romsey +0 -1
  214. data/test/fixtures/postcode_anywhere_uk_geocode_v2_00_unknown_key +0 -1
  215. data/test/fixtures/smarty_streets_11211 +0 -1
  216. data/test/fixtures/smarty_streets_madison_square_garden +0 -47
  217. data/test/fixtures/smarty_streets_no_results +0 -1
  218. data/test/fixtures/telize_10_10_10_10 +0 -1
  219. data/test/fixtures/telize_555_555_555_555 +0 -4
  220. data/test/fixtures/telize_74_200_247_59 +0 -1
  221. data/test/fixtures/telize_no_results +0 -1
  222. data/test/fixtures/yahoo_error +0 -1
  223. data/test/fixtures/yahoo_invalid_key +0 -2
  224. data/test/fixtures/yahoo_madison_square_garden +0 -52
  225. data/test/fixtures/yahoo_no_results +0 -10
  226. data/test/fixtures/yahoo_over_limit +0 -2
  227. data/test/fixtures/yandex_canada_rue_dupuis_14 +0 -446
  228. data/test/fixtures/yandex_invalid_key +0 -1
  229. data/test/fixtures/yandex_kremlin +0 -48
  230. data/test/fixtures/yandex_new_york +0 -1
  231. data/test/fixtures/yandex_no_city_and_town +0 -112
  232. data/test/fixtures/yandex_no_results +0 -16
  233. data/test/integration/http_client_test.rb +0 -31
  234. data/test/mongoid_test_helper.rb +0 -43
  235. data/test/test_helper.rb +0 -416
  236. data/test/unit/active_record_test.rb +0 -16
  237. data/test/unit/cache_test.rb +0 -37
  238. data/test/unit/calculations_test.rb +0 -220
  239. data/test/unit/configuration_test.rb +0 -55
  240. data/test/unit/error_handling_test.rb +0 -56
  241. data/test/unit/geocoder_test.rb +0 -78
  242. data/test/unit/https_test.rb +0 -17
  243. data/test/unit/ip_address_test.rb +0 -27
  244. data/test/unit/lookup_test.rb +0 -153
  245. data/test/unit/lookups/bing_test.rb +0 -68
  246. data/test/unit/lookups/dstk_test.rb +0 -26
  247. data/test/unit/lookups/esri_test.rb +0 -48
  248. data/test/unit/lookups/freegeoip_test.rb +0 -27
  249. data/test/unit/lookups/geocoder_ca_test.rb +0 -17
  250. data/test/unit/lookups/geocodio_test.rb +0 -55
  251. data/test/unit/lookups/geoip2_test.rb +0 -27
  252. data/test/unit/lookups/google_places_details_test.rb +0 -122
  253. data/test/unit/lookups/google_premier_test.rb +0 -22
  254. data/test/unit/lookups/google_test.rb +0 -84
  255. data/test/unit/lookups/mapquest_test.rb +0 -60
  256. data/test/unit/lookups/maxmind_local_test.rb +0 -28
  257. data/test/unit/lookups/maxmind_test.rb +0 -63
  258. data/test/unit/lookups/nominatim_test.rb +0 -31
  259. data/test/unit/lookups/okf_test.rb +0 -38
  260. data/test/unit/lookups/opencagedata_test.rb +0 -64
  261. data/test/unit/lookups/pointpin_test.rb +0 -30
  262. data/test/unit/lookups/postcode_anywhere_uk_test.rb +0 -70
  263. data/test/unit/lookups/smarty_streets_test.rb +0 -71
  264. data/test/unit/lookups/telize_test.rb +0 -36
  265. data/test/unit/lookups/yahoo_test.rb +0 -35
  266. data/test/unit/method_aliases_test.rb +0 -26
  267. data/test/unit/model_test.rb +0 -38
  268. data/test/unit/mongoid_test.rb +0 -47
  269. data/test/unit/near_test.rb +0 -87
  270. data/test/unit/oauth_util_test.rb +0 -31
  271. data/test/unit/proxy_test.rb +0 -37
  272. data/test/unit/query_test.rb +0 -52
  273. data/test/unit/rake_task_test.rb +0 -21
  274. data/test/unit/request_test.rb +0 -35
  275. data/test/unit/result_test.rb +0 -72
  276. data/test/unit/test_mode_test.rb +0 -70
@@ -6,7 +6,7 @@ module Geocoder
6
6
  # Is this object geocoded? (Does it have latitude and longitude?)
7
7
  #
8
8
  def geocoded?
9
- to_coordinates.compact.size > 0
9
+ to_coordinates.compact.size == 2
10
10
  end
11
11
 
12
12
  ##
@@ -55,17 +55,6 @@ module Geocoder
55
55
  point, to_coordinates, options)
56
56
  end
57
57
 
58
- ##
59
- # Get nearby geocoded objects.
60
- # Takes the same options hash as the near class method (scope).
61
- # Returns nil if the object is not geocoded.
62
- #
63
- def nearbys(radius = 20, options = {})
64
- return nil unless geocoded?
65
- options.merge!(:exclude => self) unless send(self.class.primary_key).nil?
66
- self.class.near(self, radius, options)
67
- end
68
-
69
58
  ##
70
59
  # Look up coordinates and assign to +latitude+ and +longitude+ attributes
71
60
  # (or other as specified in +geocoded_by+). Returns coordinates (array).
@@ -101,7 +90,7 @@ module Geocoder
101
90
  return
102
91
  end
103
92
 
104
- query_options = [:lookup, :ip_lookup, :language].inject({}) do |hash, key|
93
+ query_options = [:lookup, :ip_lookup, :language, :params].inject({}) do |hash, key|
105
94
  if options.has_key?(key)
106
95
  val = options[key]
107
96
  hash[key] = val.respond_to?(:call) ? val.call(self) : val
@@ -124,4 +113,3 @@ module Geocoder
124
113
  end
125
114
  end
126
115
  end
127
-
@@ -11,37 +11,6 @@ module Geocoder::Store
11
11
  scope :not_geocoded, lambda {
12
12
  where(geocoder_options[:coordinates] => nil)
13
13
  }
14
-
15
- scope :near, lambda{ |location, *args|
16
- coords = Geocoder::Calculations.extract_coordinates(location)
17
-
18
- # no results if no lat/lon given
19
- return where(:id => false) unless coords.is_a?(Array)
20
-
21
- radius = args.size > 0 ? args.shift : 20
22
- options = args.size > 0 ? args.shift : {}
23
- options[:units] ||= geocoder_options[:units]
24
-
25
- # Use BSON::OrderedHash if Ruby's hashes are unordered.
26
- # Conditions must be in order required by indexes (see mongo gem).
27
- version = RUBY_VERSION.split('.').map { |i| i.to_i }
28
- empty = version[0] < 2 && version[1] < 9 ? BSON::OrderedHash.new : {}
29
-
30
- conds = empty.clone
31
- field = geocoder_options[:coordinates]
32
- conds[field] = empty.clone
33
- conds[field]["$nearSphere"] = coords.reverse
34
-
35
- if radius
36
- conds[field]["$maxDistance"] = \
37
- Geocoder::Calculations.distance_to_radians(radius, options[:units])
38
- end
39
-
40
- if obj = options[:exclude]
41
- conds[:_id.ne] = obj.id
42
- end
43
- where(conds)
44
- }
45
14
  end
46
15
  end
47
16
 
@@ -1,3 +1,3 @@
1
1
  module Geocoder
2
- VERSION = "1.2.6"
2
+ VERSION = "1.6.1"
3
3
  end
data/lib/geocoder.rb CHANGED
@@ -1,4 +1,6 @@
1
1
  require "geocoder/configuration"
2
+ require "geocoder/logger"
3
+ require "geocoder/kernel_logger"
2
4
  require "geocoder/query"
3
5
  require "geocoder/calculations"
4
6
  require "geocoder/exceptions"
@@ -43,5 +45,4 @@ end
43
45
  # load Railtie if Rails exists
44
46
  if defined?(Rails)
45
47
  require "geocoder/railtie"
46
- Geocoder::Railtie.insert
47
48
  end
@@ -60,9 +60,8 @@ module HashRecursiveMerge
60
60
  # h1.merge(h2) #=> {"a" => 100, "b" = >254, "c" => {"c1" => 16, "c3" => 94}}
61
61
  #
62
62
  def rmerge(other_hash)
63
- r = {}
64
63
  merge(other_hash) do |key, oldval, newval|
65
- r[key] = oldval.class == self.class ? oldval.rmerge(newval) : newval
64
+ oldval.class == self.class ? oldval.rmerge(newval) : newval
66
65
  end
67
66
  end
68
67
 
@@ -21,7 +21,7 @@ module Geocoder
21
21
  end
22
22
 
23
23
  def insert(package, dir = "tmp")
24
- data_files(package).each do |filepath,table|
24
+ data_files(package, dir).each do |filepath,table|
25
25
  print "Resetting table #{table}..."
26
26
  ActiveRecord::Base.connection.execute("DELETE FROM #{table}")
27
27
  puts "done"
@@ -96,9 +96,9 @@ module Geocoder
96
96
 
97
97
  def archive_url_path(package)
98
98
  {
99
- geolite_country_csv: "GeoIPCountryCSV.zip",
100
- geolite_city_csv: "GeoLiteCity_CSV/GeoLiteCity-latest.zip",
101
- geolite_asn_csv: "asnum/GeoIPASNum2.zip"
99
+ geolite_country_csv: "GeoLite2-Country-CSV.zip",
100
+ geolite_city_csv: "GeoLite2-City-CSV.zip",
101
+ geolite_asn_csv: "GeoLite2-ASN-CSV.zip"
102
102
  }[package]
103
103
  end
104
104
 
@@ -1,20 +1,45 @@
1
+ require "geocoder/models/mongoid"
2
+
1
3
  namespace :geocode do
2
4
  desc "Geocode all objects without coordinates."
3
5
  task :all => :environment do
4
6
  class_name = ENV['CLASS'] || ENV['class']
5
7
  sleep_timer = ENV['SLEEP'] || ENV['sleep']
6
8
  batch = ENV['BATCH'] || ENV['batch']
9
+ reverse = ENV['REVERSE'] || ENV['reverse']
10
+ limit = ENV['LIMIT'] || ENV['limit']
7
11
  raise "Please specify a CLASS (model)" unless class_name
8
12
  klass = class_from_string(class_name)
9
- batch = batch.to_i unless batch.nil?
13
+ batch = (batch.to_i unless batch.nil?) || 1000
14
+ orm = (klass < Geocoder::Model::Mongoid) ? 'mongoid' : 'active_record'
15
+ reverse = false unless reverse.to_s.downcase == 'true'
10
16
 
11
- klass.not_geocoded.find_each(batch_size: batch) do |obj|
12
- obj.geocode; obj.save
17
+ geocode_record = lambda { |obj|
18
+ reverse ? obj.reverse_geocode : obj.geocode
19
+ obj.save
13
20
  sleep(sleep_timer.to_f) unless sleep_timer.nil?
21
+ }
22
+
23
+ scope = reverse ? klass.not_reverse_geocoded : klass.not_geocoded
24
+ scope = scope.limit(limit) if limit
25
+ if orm == 'mongoid'
26
+ scope.each do |obj|
27
+ geocode_record.call(obj)
28
+ end
29
+ elsif orm == 'active_record'
30
+ if limit
31
+ scope.each do |obj|
32
+ geocode_record.call(obj)
33
+ end
34
+ else
35
+ scope.find_each(batch_size: batch) do |obj|
36
+ geocode_record.call(obj)
37
+ end
38
+ end
14
39
  end
40
+
15
41
  end
16
42
  end
17
-
18
43
  ##
19
44
  # Get a class object from the string given in the shell environment.
20
45
  # Similar to ActiveSupport's +constantize+ method.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: geocoder
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.6
4
+ version: 1.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Reisner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-08 00:00:00.000000000 Z
11
+ date: 2020-01-23 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Provides object geocoding (by street or IP address), reverse geocoding
14
14
  (coordinates to street address), distance queries for ActiveRecord and Mongoid,
@@ -21,60 +21,78 @@ executables:
21
21
  extensions: []
22
22
  extra_rdoc_files: []
23
23
  files:
24
- - ".gitignore"
25
- - ".travis.yml"
26
24
  - CHANGELOG.md
27
25
  - LICENSE
28
26
  - README.md
29
- - Rakefile
30
27
  - bin/geocode
31
28
  - examples/autoexpire_cache_dalli.rb
32
29
  - examples/autoexpire_cache_redis.rb
33
30
  - examples/cache_bypass.rb
34
- - gemfiles/Gemfile.mongoid-2.4.x
31
+ - examples/reverse_geocode_job.rb
35
32
  - lib/generators/geocoder/config/config_generator.rb
36
33
  - lib/generators/geocoder/config/templates/initializer.rb
37
34
  - lib/generators/geocoder/maxmind/geolite_city_generator.rb
38
35
  - lib/generators/geocoder/maxmind/geolite_country_generator.rb
39
36
  - lib/generators/geocoder/maxmind/templates/migration/geolite_city.rb
40
37
  - lib/generators/geocoder/maxmind/templates/migration/geolite_country.rb
38
+ - lib/generators/geocoder/migration_version.rb
41
39
  - lib/geocoder.rb
42
40
  - lib/geocoder/cache.rb
43
41
  - lib/geocoder/calculations.rb
44
42
  - lib/geocoder/cli.rb
45
43
  - lib/geocoder/configuration.rb
46
44
  - lib/geocoder/configuration_hash.rb
45
+ - lib/geocoder/esri_token.rb
47
46
  - lib/geocoder/exceptions.rb
48
47
  - lib/geocoder/ip_address.rb
48
+ - lib/geocoder/kernel_logger.rb
49
+ - lib/geocoder/logger.rb
49
50
  - lib/geocoder/lookup.rb
51
+ - lib/geocoder/lookups/amap.rb
50
52
  - lib/geocoder/lookups/baidu.rb
51
53
  - lib/geocoder/lookups/baidu_ip.rb
54
+ - lib/geocoder/lookups/ban_data_gouv_fr.rb
52
55
  - lib/geocoder/lookups/base.rb
53
56
  - lib/geocoder/lookups/bing.rb
57
+ - lib/geocoder/lookups/db_ip_com.rb
54
58
  - lib/geocoder/lookups/dstk.rb
55
59
  - lib/geocoder/lookups/esri.rb
56
60
  - lib/geocoder/lookups/freegeoip.rb
57
61
  - lib/geocoder/lookups/geocoder_ca.rb
58
- - lib/geocoder/lookups/geocoder_us.rb
59
62
  - lib/geocoder/lookups/geocodio.rb
60
63
  - lib/geocoder/lookups/geoip2.rb
64
+ - lib/geocoder/lookups/geoportail_lu.rb
61
65
  - lib/geocoder/lookups/google.rb
62
66
  - lib/geocoder/lookups/google_places_details.rb
67
+ - lib/geocoder/lookups/google_places_search.rb
63
68
  - lib/geocoder/lookups/google_premier.rb
64
69
  - lib/geocoder/lookups/here.rb
70
+ - lib/geocoder/lookups/ip2location.rb
71
+ - lib/geocoder/lookups/ipapi_com.rb
72
+ - lib/geocoder/lookups/ipdata_co.rb
73
+ - lib/geocoder/lookups/ipgeolocation.rb
74
+ - lib/geocoder/lookups/ipinfo_io.rb
75
+ - lib/geocoder/lookups/ipregistry.rb
76
+ - lib/geocoder/lookups/ipstack.rb
77
+ - lib/geocoder/lookups/latlon.rb
78
+ - lib/geocoder/lookups/location_iq.rb
79
+ - lib/geocoder/lookups/mapbox.rb
65
80
  - lib/geocoder/lookups/mapquest.rb
66
81
  - lib/geocoder/lookups/maxmind.rb
82
+ - lib/geocoder/lookups/maxmind_geoip2.rb
67
83
  - lib/geocoder/lookups/maxmind_local.rb
68
84
  - lib/geocoder/lookups/nominatim.rb
69
- - lib/geocoder/lookups/okf.rb
70
85
  - lib/geocoder/lookups/opencagedata.rb
71
- - lib/geocoder/lookups/ovi.rb
86
+ - lib/geocoder/lookups/osmnames.rb
87
+ - lib/geocoder/lookups/pelias.rb
88
+ - lib/geocoder/lookups/pickpoint.rb
72
89
  - lib/geocoder/lookups/pointpin.rb
73
90
  - lib/geocoder/lookups/postcode_anywhere_uk.rb
91
+ - lib/geocoder/lookups/postcodes_io.rb
74
92
  - lib/geocoder/lookups/smarty_streets.rb
75
93
  - lib/geocoder/lookups/telize.rb
94
+ - lib/geocoder/lookups/tencent.rb
76
95
  - lib/geocoder/lookups/test.rb
77
- - lib/geocoder/lookups/yahoo.rb
78
96
  - lib/geocoder/lookups/yandex.rb
79
97
  - lib/geocoder/models/active_record.rb
80
98
  - lib/geocoder/models/base.rb
@@ -84,34 +102,51 @@ files:
84
102
  - lib/geocoder/query.rb
85
103
  - lib/geocoder/railtie.rb
86
104
  - lib/geocoder/request.rb
105
+ - lib/geocoder/results/amap.rb
87
106
  - lib/geocoder/results/baidu.rb
88
107
  - lib/geocoder/results/baidu_ip.rb
108
+ - lib/geocoder/results/ban_data_gouv_fr.rb
89
109
  - lib/geocoder/results/base.rb
90
110
  - lib/geocoder/results/bing.rb
111
+ - lib/geocoder/results/db_ip_com.rb
91
112
  - lib/geocoder/results/dstk.rb
92
113
  - lib/geocoder/results/esri.rb
93
114
  - lib/geocoder/results/freegeoip.rb
94
115
  - lib/geocoder/results/geocoder_ca.rb
95
- - lib/geocoder/results/geocoder_us.rb
96
116
  - lib/geocoder/results/geocodio.rb
97
117
  - lib/geocoder/results/geoip2.rb
118
+ - lib/geocoder/results/geoportail_lu.rb
98
119
  - lib/geocoder/results/google.rb
99
120
  - lib/geocoder/results/google_places_details.rb
121
+ - lib/geocoder/results/google_places_search.rb
100
122
  - lib/geocoder/results/google_premier.rb
101
123
  - lib/geocoder/results/here.rb
124
+ - lib/geocoder/results/ip2location.rb
125
+ - lib/geocoder/results/ipapi_com.rb
126
+ - lib/geocoder/results/ipdata_co.rb
127
+ - lib/geocoder/results/ipgeolocation.rb
128
+ - lib/geocoder/results/ipinfo_io.rb
129
+ - lib/geocoder/results/ipregistry.rb
130
+ - lib/geocoder/results/ipstack.rb
131
+ - lib/geocoder/results/latlon.rb
132
+ - lib/geocoder/results/location_iq.rb
133
+ - lib/geocoder/results/mapbox.rb
102
134
  - lib/geocoder/results/mapquest.rb
103
135
  - lib/geocoder/results/maxmind.rb
136
+ - lib/geocoder/results/maxmind_geoip2.rb
104
137
  - lib/geocoder/results/maxmind_local.rb
105
138
  - lib/geocoder/results/nominatim.rb
106
- - lib/geocoder/results/okf.rb
107
139
  - lib/geocoder/results/opencagedata.rb
108
- - lib/geocoder/results/ovi.rb
140
+ - lib/geocoder/results/osmnames.rb
141
+ - lib/geocoder/results/pelias.rb
142
+ - lib/geocoder/results/pickpoint.rb
109
143
  - lib/geocoder/results/pointpin.rb
110
144
  - lib/geocoder/results/postcode_anywhere_uk.rb
145
+ - lib/geocoder/results/postcodes_io.rb
111
146
  - lib/geocoder/results/smarty_streets.rb
112
147
  - lib/geocoder/results/telize.rb
148
+ - lib/geocoder/results/tencent.rb
113
149
  - lib/geocoder/results/test.rb
114
- - lib/geocoder/results/yahoo.rb
115
150
  - lib/geocoder/results/yandex.rb
116
151
  - lib/geocoder/sql.rb
117
152
  - lib/geocoder/stores/active_record.rb
@@ -122,151 +157,14 @@ files:
122
157
  - lib/geocoder/version.rb
123
158
  - lib/hash_recursive_merge.rb
124
159
  - lib/maxmind_database.rb
125
- - lib/oauth_util.rb
126
160
  - lib/tasks/geocoder.rake
127
161
  - lib/tasks/maxmind.rake
128
- - test/fixtures/baidu_invalid_key
129
- - test/fixtures/baidu_ip_202_198_16_3
130
- - test/fixtures/baidu_ip_invalid_key
131
- - test/fixtures/baidu_ip_no_results
132
- - test/fixtures/baidu_no_results
133
- - test/fixtures/baidu_reverse
134
- - test/fixtures/baidu_shanghai_pearl_tower
135
- - test/fixtures/bing_invalid_key
136
- - test/fixtures/bing_madison_square_garden
137
- - test/fixtures/bing_no_results
138
- - test/fixtures/bing_reverse
139
- - test/fixtures/cloudmade_invalid_key
140
- - test/fixtures/cloudmade_madison_square_garden
141
- - test/fixtures/cloudmade_no_results
142
- - test/fixtures/esri_madison_square_garden
143
- - test/fixtures/esri_no_results
144
- - test/fixtures/esri_reverse
145
- - test/fixtures/freegeoip_74_200_247_59
146
- - test/fixtures/freegeoip_no_results
147
- - test/fixtures/geocoder_ca_madison_square_garden
148
- - test/fixtures/geocoder_ca_no_results
149
- - test/fixtures/geocoder_ca_reverse
150
- - test/fixtures/geocoder_us_madison_square_garden
151
- - test/fixtures/geocoder_us_no_results
152
- - test/fixtures/geocodio_1101_pennsylvania_ave
153
- - test/fixtures/geocodio_bad_api_key
154
- - test/fixtures/geocodio_invalid
155
- - test/fixtures/geocodio_no_results
156
- - test/fixtures/geocodio_over_query_limit
157
- - test/fixtures/google_garbage
158
- - test/fixtures/google_madison_square_garden
159
- - test/fixtures/google_no_city_data
160
- - test/fixtures/google_no_locality
161
- - test/fixtures/google_no_results
162
- - test/fixtures/google_over_limit
163
- - test/fixtures/google_places_details_invalid_request
164
- - test/fixtures/google_places_details_madison_square_garden
165
- - test/fixtures/google_places_details_no_results
166
- - test/fixtures/google_places_details_no_reviews
167
- - test/fixtures/google_places_details_no_types
168
- - test/fixtures/here_madison_square_garden
169
- - test/fixtures/here_no_results
170
- - test/fixtures/mapquest_error
171
- - test/fixtures/mapquest_invalid_api_key
172
- - test/fixtures/mapquest_invalid_request
173
- - test/fixtures/mapquest_madison_square_garden
174
- - test/fixtures/mapquest_no_results
175
- - test/fixtures/maxmind_24_24_24_21
176
- - test/fixtures/maxmind_24_24_24_22
177
- - test/fixtures/maxmind_24_24_24_23
178
- - test/fixtures/maxmind_24_24_24_24
179
- - test/fixtures/maxmind_74_200_247_59
180
- - test/fixtures/maxmind_invalid_key
181
- - test/fixtures/maxmind_no_results
182
- - test/fixtures/nominatim_madison_square_garden
183
- - test/fixtures/nominatim_no_results
184
- - test/fixtures/nominatim_over_limit
185
- - test/fixtures/okf_kirstinmaki
186
- - test/fixtures/okf_no_results
187
- - test/fixtures/opencagedata_invalid_api_key
188
- - test/fixtures/opencagedata_invalid_request
189
- - test/fixtures/opencagedata_madison_square_garden
190
- - test/fixtures/opencagedata_no_results
191
- - test/fixtures/opencagedata_over_limit
192
- - test/fixtures/ovi_madison_square_garden
193
- - test/fixtures/ovi_no_results
194
- - test/fixtures/pointpin_10_10_10_10
195
- - test/fixtures/pointpin_555_555_555_555
196
- - test/fixtures/pointpin_80_111_555_555
197
- - test/fixtures/pointpin_no_results
198
- - test/fixtures/postcode_anywhere_uk_geocode_v2_00_WR26NJ
199
- - test/fixtures/postcode_anywhere_uk_geocode_v2_00_generic_error
200
- - test/fixtures/postcode_anywhere_uk_geocode_v2_00_hampshire
201
- - test/fixtures/postcode_anywhere_uk_geocode_v2_00_key_limit_exceeded
202
- - test/fixtures/postcode_anywhere_uk_geocode_v2_00_no_results
203
- - test/fixtures/postcode_anywhere_uk_geocode_v2_00_romsey
204
- - test/fixtures/postcode_anywhere_uk_geocode_v2_00_unknown_key
205
- - test/fixtures/smarty_streets_11211
206
- - test/fixtures/smarty_streets_madison_square_garden
207
- - test/fixtures/smarty_streets_no_results
208
- - test/fixtures/telize_10_10_10_10
209
- - test/fixtures/telize_555_555_555_555
210
- - test/fixtures/telize_74_200_247_59
211
- - test/fixtures/telize_no_results
212
- - test/fixtures/yahoo_error
213
- - test/fixtures/yahoo_invalid_key
214
- - test/fixtures/yahoo_madison_square_garden
215
- - test/fixtures/yahoo_no_results
216
- - test/fixtures/yahoo_over_limit
217
- - test/fixtures/yandex_canada_rue_dupuis_14
218
- - test/fixtures/yandex_invalid_key
219
- - test/fixtures/yandex_kremlin
220
- - test/fixtures/yandex_new_york
221
- - test/fixtures/yandex_no_city_and_town
222
- - test/fixtures/yandex_no_results
223
- - test/integration/http_client_test.rb
224
- - test/mongoid_test_helper.rb
225
- - test/test_helper.rb
226
- - test/unit/active_record_test.rb
227
- - test/unit/cache_test.rb
228
- - test/unit/calculations_test.rb
229
- - test/unit/configuration_test.rb
230
- - test/unit/error_handling_test.rb
231
- - test/unit/geocoder_test.rb
232
- - test/unit/https_test.rb
233
- - test/unit/ip_address_test.rb
234
- - test/unit/lookup_test.rb
235
- - test/unit/lookups/bing_test.rb
236
- - test/unit/lookups/dstk_test.rb
237
- - test/unit/lookups/esri_test.rb
238
- - test/unit/lookups/freegeoip_test.rb
239
- - test/unit/lookups/geocoder_ca_test.rb
240
- - test/unit/lookups/geocodio_test.rb
241
- - test/unit/lookups/geoip2_test.rb
242
- - test/unit/lookups/google_places_details_test.rb
243
- - test/unit/lookups/google_premier_test.rb
244
- - test/unit/lookups/google_test.rb
245
- - test/unit/lookups/mapquest_test.rb
246
- - test/unit/lookups/maxmind_local_test.rb
247
- - test/unit/lookups/maxmind_test.rb
248
- - test/unit/lookups/nominatim_test.rb
249
- - test/unit/lookups/okf_test.rb
250
- - test/unit/lookups/opencagedata_test.rb
251
- - test/unit/lookups/pointpin_test.rb
252
- - test/unit/lookups/postcode_anywhere_uk_test.rb
253
- - test/unit/lookups/smarty_streets_test.rb
254
- - test/unit/lookups/telize_test.rb
255
- - test/unit/lookups/yahoo_test.rb
256
- - test/unit/method_aliases_test.rb
257
- - test/unit/model_test.rb
258
- - test/unit/mongoid_test.rb
259
- - test/unit/near_test.rb
260
- - test/unit/oauth_util_test.rb
261
- - test/unit/proxy_test.rb
262
- - test/unit/query_test.rb
263
- - test/unit/rake_task_test.rb
264
- - test/unit/request_test.rb
265
- - test/unit/result_test.rb
266
- - test/unit/test_mode_test.rb
267
162
  homepage: http://www.rubygeocoder.com
268
- licenses: []
269
- metadata: {}
163
+ licenses:
164
+ - MIT
165
+ metadata:
166
+ source_code_uri: https://github.com/alexreisner/geocoder
167
+ changelog_uri: https://github.com/alexreisner/geocoder/blob/master/CHANGELOG.md
270
168
  post_install_message:
271
169
  rdoc_options: []
272
170
  require_paths:
@@ -275,15 +173,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
275
173
  requirements:
276
174
  - - ">="
277
175
  - !ruby/object:Gem::Version
278
- version: '0'
176
+ version: 2.0.0
279
177
  required_rubygems_version: !ruby/object:Gem::Requirement
280
178
  requirements:
281
179
  - - ">="
282
180
  - !ruby/object:Gem::Version
283
181
  version: '0'
284
182
  requirements: []
285
- rubyforge_project:
286
- rubygems_version: 2.2.2
183
+ rubygems_version: 3.0.1
287
184
  signing_key:
288
185
  specification_version: 4
289
186
  summary: Complete geocoding solution for Ruby.
data/.gitignore DELETED
@@ -1,6 +0,0 @@
1
- pkg/*
2
- rdoc/*
3
- *.gem
4
- .bundle
5
- Gemfile.lock
6
- api_keys.yml
data/.travis.yml DELETED
@@ -1,31 +0,0 @@
1
- rvm:
2
- - 1.9.2
3
- - 1.9.3
4
- - 2.0.0
5
- - 2.1.2
6
- - jruby-19mode
7
- - rbx-2
8
- gemfile:
9
- - Gemfile
10
- - gemfiles/Gemfile.mongoid-2.4.x
11
- env: SSL_CERT_DIR=/etc/ssl/certs
12
- matrix:
13
- exclude:
14
- - rvm: 1.9.2
15
- gemfile: Gemfile
16
- env: SSL_CERT_DIR=/etc/ssl/certs
17
- - rvm: 1.9.3
18
- gemfile: gemfiles/Gemfile.mongoid-2.4.x
19
- env: SSL_CERT_DIR=/etc/ssl/certs
20
- - rvm: 2.0.0
21
- gemfile: gemfiles/Gemfile.mongoid-2.4.x
22
- env: SSL_CERT_DIR=/etc/ssl/certs
23
- - rvm: 2.1.2
24
- gemfile: gemfiles/Gemfile.mongoid-2.4.x
25
- env: SSL_CERT_DIR=/etc/ssl/certs
26
- - rvm: jruby-19mode
27
- gemfile: gemfiles/Gemfile.mongoid-2.4.x
28
- env: SSL_CERT_DIR=/etc/ssl/certs
29
- - rvm: rbx-2
30
- gemfile: gemfiles/Gemfile.mongoid-2.4.x
31
- env: SSL_CERT_DIR=/etc/ssl/certs
data/Rakefile DELETED
@@ -1,25 +0,0 @@
1
- require 'bundler'
2
- Bundler::GemHelper.install_tasks
3
-
4
- require 'rake/testtask'
5
- Rake::TestTask.new(:test) do |test|
6
- test.libs << 'lib' << 'test'
7
- test.pattern = 'test/unit/**/*_test.rb'
8
- test.verbose = true
9
- end
10
-
11
- Rake::TestTask.new(:integration) do |test|
12
- test.libs << 'lib' << 'test'
13
- test.pattern = 'test/integration/*_test.rb'
14
- test.verbose = true
15
- end
16
-
17
- task :default => [:test]
18
-
19
- require 'rdoc/task'
20
- Rake::RDocTask.new do |rdoc|
21
- rdoc.rdoc_dir = 'rdoc'
22
- rdoc.title = "Geocoder #{Geocoder::VERSION}"
23
- rdoc.rdoc_files.include('*.rdoc')
24
- rdoc.rdoc_files.include('lib/**/*.rb')
25
- end
@@ -1,16 +0,0 @@
1
- source "http://rubygems.org"
2
-
3
- gemspec :path => '..'
4
-
5
- group :development, :test do
6
- gem 'rake'
7
- gem 'mongoid', '2.4.11'
8
- gem 'bson_ext', :platforms => :ruby
9
- gem 'geoip'
10
-
11
- gem 'rails'
12
-
13
- platforms :jruby do
14
- gem 'jruby-openssl'
15
- end
16
- end
@@ -1,39 +0,0 @@
1
- require 'geocoder/lookups/base'
2
- require "geocoder/results/geocoder_us"
3
-
4
- module Geocoder::Lookup
5
- class GeocoderUs < Base
6
-
7
- def name
8
- "Geocoder.us"
9
- end
10
-
11
- def query_url(query)
12
- if configuration.api_key
13
- "http://#{configuration.api_key}@geocoder.us/member/service/csv/geocode?" + url_query_string(query)
14
- else
15
- "http://geocoder.us/service/csv/geocode?" + url_query_string(query)
16
- end
17
- end
18
-
19
- private
20
-
21
- def results(query)
22
- return [] unless doc = fetch_data(query)
23
- if doc[0].to_s =~ /^(\d+)\:/
24
- return []
25
- else
26
- return [doc.size == 5 ? ((doc[0..1] << nil) + doc[2..4]) : doc]
27
- end
28
- end
29
-
30
- def query_url_params(query)
31
- (query.text =~ /^\d{5}(?:-\d{4})?$/ ? {:zip => query} : {:address => query.sanitized_text}).merge(super)
32
- end
33
-
34
- def parse_raw_data(raw_data)
35
- raw_data.chomp.split(',')
36
- end
37
- end
38
- end
39
-
@@ -1,43 +0,0 @@
1
- require 'geocoder/lookups/base'
2
- require "geocoder/results/okf"
3
-
4
- module Geocoder::Lookup
5
- class Okf < Base
6
-
7
- def name
8
- "Okf"
9
- end
10
-
11
- def query_url(query)
12
- "#{protocol}://data.okf.fi/gis/1/geocode/json?" + url_query_string(query)
13
- end
14
-
15
- private # ---------------------------------------------------------------
16
-
17
- def valid_response?(response)
18
- status = parse_json(response.body)["status"]
19
- super(response) and ['OK', 'ZERO_RESULTS'].include?(status)
20
- end
21
-
22
- def results(query)
23
- return [] unless doc = fetch_data(query)
24
- case doc['status']; when "OK" # OK status implies >0 results
25
- return doc['results']
26
- end
27
- return []
28
- end
29
-
30
- def query_url_okf_params(query)
31
- params = {
32
- (query.reverse_geocode? ? :latlng : :address) => query.sanitized_text,
33
- :sensor => "false",
34
- :language => (query.language || configuration.language)
35
- }
36
- params
37
- end
38
-
39
- def query_url_params(query)
40
- query_url_okf_params(query).merge(super)
41
- end
42
- end
43
- end