geocoder 1.6.4 → 1.8.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +61 -0
- data/LICENSE +1 -1
- data/README.md +329 -235
- data/examples/app_defined_lookup_services.rb +22 -0
- data/lib/generators/geocoder/config/templates/initializer.rb +6 -1
- data/lib/geocoder/cache.rb +16 -33
- data/lib/geocoder/cache_stores/base.rb +40 -0
- data/lib/geocoder/cache_stores/generic.rb +35 -0
- data/lib/geocoder/cache_stores/redis.rb +34 -0
- data/lib/geocoder/configuration.rb +17 -4
- data/lib/geocoder/ip_address.rb +9 -0
- data/lib/geocoder/lookup.rb +33 -4
- data/lib/geocoder/lookups/abstract_api.rb +46 -0
- data/lib/geocoder/lookups/amap.rb +2 -2
- data/lib/geocoder/lookups/amazon_location_service.rb +55 -0
- data/lib/geocoder/lookups/ban_data_gouv_fr.rb +1 -1
- data/lib/geocoder/lookups/base.rb +2 -1
- data/lib/geocoder/lookups/bing.rb +1 -1
- data/lib/geocoder/lookups/esri.rb +18 -5
- data/lib/geocoder/lookups/freegeoip.rb +8 -6
- data/lib/geocoder/lookups/geoapify.rb +78 -0
- data/lib/geocoder/lookups/geoip2.rb +4 -0
- data/lib/geocoder/lookups/geoportail_lu.rb +1 -1
- data/lib/geocoder/lookups/google_places_details.rb +20 -0
- data/lib/geocoder/lookups/google_places_search.rb +20 -3
- data/lib/geocoder/lookups/here.rb +25 -20
- data/lib/geocoder/lookups/ip2location.rb +10 -6
- data/lib/geocoder/lookups/ipbase.rb +49 -0
- data/lib/geocoder/lookups/ipdata_co.rb +1 -1
- data/lib/geocoder/lookups/ipqualityscore.rb +50 -0
- data/lib/geocoder/lookups/location_iq.rb +5 -1
- data/lib/geocoder/lookups/maxmind_local.rb +7 -1
- data/lib/geocoder/lookups/melissa_street.rb +41 -0
- data/lib/geocoder/lookups/pc_miler.rb +85 -0
- data/lib/geocoder/lookups/photon.rb +89 -0
- data/lib/geocoder/lookups/test.rb +5 -0
- data/lib/geocoder/lookups/twogis.rb +58 -0
- data/lib/geocoder/lookups/uk_ordnance_survey_names.rb +1 -1
- data/lib/geocoder/lookups/yandex.rb +3 -3
- data/lib/geocoder/results/abstract_api.rb +146 -0
- data/lib/geocoder/results/amazon_location_service.rb +57 -0
- data/lib/geocoder/results/ban_data_gouv_fr.rb +27 -2
- data/lib/geocoder/results/esri.rb +5 -2
- data/lib/geocoder/results/geoapify.rb +179 -0
- data/lib/geocoder/results/here.rb +20 -25
- data/lib/geocoder/results/ipbase.rb +40 -0
- data/lib/geocoder/results/ipqualityscore.rb +54 -0
- data/lib/geocoder/results/ipregistry.rb +4 -8
- data/lib/geocoder/results/mapbox.rb +10 -4
- data/lib/geocoder/results/melissa_street.rb +46 -0
- data/lib/geocoder/results/nationaal_georegister_nl.rb +1 -1
- data/lib/geocoder/results/nominatim.rb +24 -16
- data/lib/geocoder/results/pc_miler.rb +98 -0
- data/lib/geocoder/results/photon.rb +119 -0
- data/lib/geocoder/results/twogis.rb +76 -0
- data/lib/geocoder/version.rb +1 -1
- data/lib/maxmind_database.rb +8 -8
- data/lib/tasks/maxmind.rake +1 -1
- metadata +28 -8
- data/examples/autoexpire_cache_dalli.rb +0 -62
- data/examples/autoexpire_cache_redis.rb +0 -30
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'geocoder/results/base'
|
2
|
+
|
3
|
+
module Geocoder::Result
|
4
|
+
class MelissaStreet < Base
|
5
|
+
def address(format = :full)
|
6
|
+
@data['FormattedAddress']
|
7
|
+
end
|
8
|
+
|
9
|
+
def street_address
|
10
|
+
@data['AddressLine1']
|
11
|
+
end
|
12
|
+
|
13
|
+
def suffix
|
14
|
+
@data['ThoroughfareTrailingType']
|
15
|
+
end
|
16
|
+
|
17
|
+
def number
|
18
|
+
@data['PremisesNumber']
|
19
|
+
end
|
20
|
+
|
21
|
+
def city
|
22
|
+
@data['Locality']
|
23
|
+
end
|
24
|
+
|
25
|
+
def state_code
|
26
|
+
@data['AdministrativeArea']
|
27
|
+
end
|
28
|
+
alias_method :state, :state_code
|
29
|
+
|
30
|
+
def country
|
31
|
+
@data['CountryName']
|
32
|
+
end
|
33
|
+
|
34
|
+
def country_code
|
35
|
+
@data['CountryISO3166_1_Alpha2']
|
36
|
+
end
|
37
|
+
|
38
|
+
def postal_code
|
39
|
+
@data['PostalCode']
|
40
|
+
end
|
41
|
+
|
42
|
+
def coordinates
|
43
|
+
[@data['Latitude'].to_f, @data['Longitude'].to_f]
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -4,12 +4,12 @@ module Geocoder::Result
|
|
4
4
|
class Nominatim < Base
|
5
5
|
|
6
6
|
def poi
|
7
|
-
return
|
7
|
+
return address_data[place_type] if address_data.key?(place_type)
|
8
8
|
return nil
|
9
9
|
end
|
10
10
|
|
11
11
|
def house_number
|
12
|
-
|
12
|
+
address_data['house_number']
|
13
13
|
end
|
14
14
|
|
15
15
|
def address
|
@@ -18,69 +18,71 @@ module Geocoder::Result
|
|
18
18
|
|
19
19
|
def street
|
20
20
|
%w[road pedestrian highway].each do |key|
|
21
|
-
return
|
21
|
+
return address_data[key] if address_data.key?(key)
|
22
22
|
end
|
23
23
|
return nil
|
24
24
|
end
|
25
25
|
|
26
26
|
def city
|
27
27
|
%w[city town village hamlet].each do |key|
|
28
|
-
return
|
28
|
+
return address_data[key] if address_data.key?(key)
|
29
29
|
end
|
30
30
|
return nil
|
31
31
|
end
|
32
32
|
|
33
33
|
def village
|
34
|
-
|
34
|
+
address_data['village']
|
35
35
|
end
|
36
36
|
|
37
37
|
def town
|
38
|
-
|
38
|
+
address_data['town']
|
39
39
|
end
|
40
40
|
|
41
41
|
def state
|
42
|
-
|
42
|
+
address_data['state']
|
43
43
|
end
|
44
44
|
|
45
45
|
alias_method :state_code, :state
|
46
46
|
|
47
47
|
def postal_code
|
48
|
-
|
48
|
+
address_data['postcode']
|
49
49
|
end
|
50
50
|
|
51
51
|
def county
|
52
|
-
|
52
|
+
address_data['county']
|
53
53
|
end
|
54
54
|
|
55
55
|
def country
|
56
|
-
|
56
|
+
address_data['country']
|
57
57
|
end
|
58
58
|
|
59
59
|
def country_code
|
60
|
-
|
60
|
+
address_data['country_code']
|
61
61
|
end
|
62
62
|
|
63
63
|
def suburb
|
64
|
-
|
64
|
+
address_data['suburb']
|
65
65
|
end
|
66
66
|
|
67
67
|
def city_district
|
68
|
-
|
68
|
+
address_data['city_district']
|
69
69
|
end
|
70
70
|
|
71
71
|
def state_district
|
72
|
-
|
72
|
+
address_data['state_district']
|
73
73
|
end
|
74
74
|
|
75
75
|
def neighbourhood
|
76
|
-
|
76
|
+
address_data['neighbourhood']
|
77
77
|
end
|
78
78
|
|
79
79
|
def municipality
|
80
|
-
|
80
|
+
address_data['municipality']
|
81
81
|
end
|
82
82
|
|
83
83
|
def coordinates
|
84
|
+
return [] unless @data['lat'] && @data['lon']
|
85
|
+
|
84
86
|
[@data['lat'].to_f, @data['lon'].to_f]
|
85
87
|
end
|
86
88
|
|
@@ -109,5 +111,11 @@ module Geocoder::Result
|
|
109
111
|
end
|
110
112
|
end
|
111
113
|
end
|
114
|
+
|
115
|
+
private
|
116
|
+
|
117
|
+
def address_data
|
118
|
+
@data['address'] || {}
|
119
|
+
end
|
112
120
|
end
|
113
121
|
end
|
@@ -0,0 +1,98 @@
|
|
1
|
+
require 'geocoder/results/base'
|
2
|
+
|
3
|
+
module Geocoder::Result
|
4
|
+
class PcMiler < Base
|
5
|
+
# sample response:
|
6
|
+
# https://singlesearch.alk.com/na/api/search?authToken=<TOKEN>&include=Meta&query=Feasterville
|
7
|
+
#
|
8
|
+
# {
|
9
|
+
# "Err": 0,
|
10
|
+
# "ErrString": "OK",
|
11
|
+
# "QueryConfidence": 1,
|
12
|
+
# "TimeInMilliseconds": 93,
|
13
|
+
# "GridDataVersion": "GRD_ALK.NA.2023.01.18.29.1.1",
|
14
|
+
# "CommitID": "pcmws-22.08.11.0-1778-g586da49bd1b: 05/30/2023 20:14",
|
15
|
+
# "Locations": [
|
16
|
+
# {
|
17
|
+
# "Address": {
|
18
|
+
# "StreetAddress": "",
|
19
|
+
# "LocalArea": "",
|
20
|
+
# "City": "Feasterville",
|
21
|
+
# "State": "PA",
|
22
|
+
# "StateName": "Pennsylvania",
|
23
|
+
# "Zip": "19053",
|
24
|
+
# "County": "Bucks",
|
25
|
+
# "Country": "US",
|
26
|
+
# "CountryFullName": "United States",
|
27
|
+
# "SPLC": null
|
28
|
+
# },
|
29
|
+
# "Coords": {
|
30
|
+
# "Lat": "40.150025",
|
31
|
+
# "Lon": "-75.002511"
|
32
|
+
# },
|
33
|
+
# "StreetCoords": {
|
34
|
+
# "Lat": "40.150098",
|
35
|
+
# "Lon": "-75.002827"
|
36
|
+
# },
|
37
|
+
# "Region": 4,
|
38
|
+
# "POITypeID": 0,
|
39
|
+
# "PersistentPOIID": -1,
|
40
|
+
# "SiteID": -1,
|
41
|
+
# "ResultType": 4,
|
42
|
+
# "ShortString": "Feasterville",
|
43
|
+
# "GridID": 37172748,
|
44
|
+
# "LinkID": 188,
|
45
|
+
# "Percent": 6291,
|
46
|
+
# "TimeZone": "GMT-4:00 EDT"
|
47
|
+
# }
|
48
|
+
# ]
|
49
|
+
# }
|
50
|
+
|
51
|
+
def address(format=:unused)
|
52
|
+
[street, city, state, postal_code, country]
|
53
|
+
.map { |i| i == '' ? nil : i }
|
54
|
+
.compact
|
55
|
+
.join(', ')
|
56
|
+
end
|
57
|
+
|
58
|
+
def coordinates
|
59
|
+
coords = data["Coords"] || {}
|
60
|
+
[coords["Lat"].to_f, coords["Lon"].to_f]
|
61
|
+
end
|
62
|
+
|
63
|
+
def street
|
64
|
+
address_data["StreetAddress"]
|
65
|
+
end
|
66
|
+
|
67
|
+
def city
|
68
|
+
address_data["City"]
|
69
|
+
end
|
70
|
+
|
71
|
+
def state
|
72
|
+
address_data["StateName"]
|
73
|
+
end
|
74
|
+
|
75
|
+
def state_code
|
76
|
+
address_data["State"]
|
77
|
+
end
|
78
|
+
|
79
|
+
def postal_code
|
80
|
+
address_data["Zip"]
|
81
|
+
end
|
82
|
+
|
83
|
+
def country
|
84
|
+
address_data["CountryFullName"]
|
85
|
+
end
|
86
|
+
|
87
|
+
def country_code
|
88
|
+
address_data["Country"]
|
89
|
+
end
|
90
|
+
|
91
|
+
private
|
92
|
+
|
93
|
+
def address_data
|
94
|
+
data["Address"] || {}
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
@@ -0,0 +1,119 @@
|
|
1
|
+
require 'geocoder/results/base'
|
2
|
+
|
3
|
+
module Geocoder::Result
|
4
|
+
class Photon < Base
|
5
|
+
def name
|
6
|
+
properties['name']
|
7
|
+
end
|
8
|
+
|
9
|
+
def address(_format = :full)
|
10
|
+
parts = []
|
11
|
+
parts << name if name
|
12
|
+
parts << street_address if street_address
|
13
|
+
parts << city
|
14
|
+
parts << state if state
|
15
|
+
parts << postal_code
|
16
|
+
parts << country
|
17
|
+
|
18
|
+
parts.join(', ')
|
19
|
+
end
|
20
|
+
|
21
|
+
def street_address
|
22
|
+
return unless street
|
23
|
+
return street unless house_number
|
24
|
+
|
25
|
+
"#{house_number} #{street}"
|
26
|
+
end
|
27
|
+
|
28
|
+
def house_number
|
29
|
+
properties['housenumber']
|
30
|
+
end
|
31
|
+
|
32
|
+
def street
|
33
|
+
properties['street']
|
34
|
+
end
|
35
|
+
|
36
|
+
def postal_code
|
37
|
+
properties['postcode']
|
38
|
+
end
|
39
|
+
|
40
|
+
def city
|
41
|
+
properties['city']
|
42
|
+
end
|
43
|
+
|
44
|
+
def state
|
45
|
+
properties['state']
|
46
|
+
end
|
47
|
+
|
48
|
+
def state_code
|
49
|
+
''
|
50
|
+
end
|
51
|
+
|
52
|
+
def country
|
53
|
+
properties['country']
|
54
|
+
end
|
55
|
+
|
56
|
+
def country_code
|
57
|
+
''
|
58
|
+
end
|
59
|
+
|
60
|
+
def coordinates
|
61
|
+
return unless geometry
|
62
|
+
return unless geometry[:coordinates]
|
63
|
+
|
64
|
+
geometry[:coordinates].reverse
|
65
|
+
end
|
66
|
+
|
67
|
+
def geometry
|
68
|
+
return unless data['geometry']
|
69
|
+
|
70
|
+
symbol_hash data['geometry']
|
71
|
+
end
|
72
|
+
|
73
|
+
def bounds
|
74
|
+
properties['extent']
|
75
|
+
end
|
76
|
+
|
77
|
+
# Type of the result (OSM object type), one of:
|
78
|
+
#
|
79
|
+
# :node
|
80
|
+
# :way
|
81
|
+
# :relation
|
82
|
+
#
|
83
|
+
def type
|
84
|
+
{
|
85
|
+
'N' => :node,
|
86
|
+
'W' => :way,
|
87
|
+
'R' => :relation
|
88
|
+
}[properties['osm_type']]
|
89
|
+
end
|
90
|
+
|
91
|
+
def osm_id
|
92
|
+
properties['osm_id']
|
93
|
+
end
|
94
|
+
|
95
|
+
# See: https://wiki.openstreetmap.org/wiki/Tags
|
96
|
+
def osm_tag
|
97
|
+
return unless properties['osm_key']
|
98
|
+
return properties['osm_key'] unless properties['osm_value']
|
99
|
+
|
100
|
+
"#{properties['osm_key']}=#{properties['osm_value']}"
|
101
|
+
end
|
102
|
+
|
103
|
+
private
|
104
|
+
|
105
|
+
def properties
|
106
|
+
@properties ||= data['properties'] || {}
|
107
|
+
end
|
108
|
+
|
109
|
+
def symbol_hash(orig_hash)
|
110
|
+
{}.tap do |result|
|
111
|
+
orig_hash.each_key do |key|
|
112
|
+
next unless orig_hash[key]
|
113
|
+
|
114
|
+
result[key.to_sym] = orig_hash[key]
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
require 'geocoder/results/base'
|
2
|
+
|
3
|
+
module Geocoder::Result
|
4
|
+
class Twogis < Base
|
5
|
+
def coordinates
|
6
|
+
['lat', 'lon'].map{ |i| @data['point'][i] } if @data['point']
|
7
|
+
end
|
8
|
+
|
9
|
+
def address(_format = :full)
|
10
|
+
@data['full_address_name'] || ''
|
11
|
+
end
|
12
|
+
|
13
|
+
def city
|
14
|
+
return '' unless @data['adm_div']
|
15
|
+
@data['adm_div'].select{|u| u["type"] == "city"}.first.try(:[], 'name') || ''
|
16
|
+
end
|
17
|
+
|
18
|
+
def region
|
19
|
+
return '' unless @data['adm_div']
|
20
|
+
@data['adm_div'].select{|u| u["type"] == "region"}.first.try(:[], 'name') || ''
|
21
|
+
end
|
22
|
+
|
23
|
+
def country
|
24
|
+
return '' unless @data['adm_div']
|
25
|
+
@data['adm_div'].select{|u| u["type"] == "country"}.first.try(:[], 'name') || ''
|
26
|
+
end
|
27
|
+
|
28
|
+
def district
|
29
|
+
return '' unless @data['adm_div']
|
30
|
+
@data['adm_div'].select{|u| u["type"] == "district"}.first.try(:[], 'name') || ''
|
31
|
+
end
|
32
|
+
|
33
|
+
def district_area
|
34
|
+
return '' unless @data['adm_div']
|
35
|
+
@data['adm_div'].select{|u| u["type"] == "district_area"}.first.try(:[], 'name') || ''
|
36
|
+
end
|
37
|
+
|
38
|
+
def street_address
|
39
|
+
@data['address_name'] || ''
|
40
|
+
end
|
41
|
+
|
42
|
+
def street
|
43
|
+
return '' unless @data['address_name']
|
44
|
+
@data['address_name'].split(', ').first
|
45
|
+
end
|
46
|
+
|
47
|
+
def street_number
|
48
|
+
return '' unless @data['address_name']
|
49
|
+
@data['address_name'].split(', ')[1] || ''
|
50
|
+
end
|
51
|
+
|
52
|
+
def type
|
53
|
+
@data['type'] || ''
|
54
|
+
end
|
55
|
+
|
56
|
+
def purpose_name
|
57
|
+
@data['purpose_name'] || ''
|
58
|
+
end
|
59
|
+
|
60
|
+
def building_name
|
61
|
+
@data['building_name'] || ''
|
62
|
+
end
|
63
|
+
|
64
|
+
def subtype
|
65
|
+
@data['subtype'] || ''
|
66
|
+
end
|
67
|
+
|
68
|
+
def subtype_specification
|
69
|
+
@data['subtype_specification'] || ''
|
70
|
+
end
|
71
|
+
|
72
|
+
def name
|
73
|
+
@data['name'] || ''
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
data/lib/geocoder/version.rb
CHANGED
data/lib/maxmind_database.rb
CHANGED
@@ -6,9 +6,9 @@ module Geocoder
|
|
6
6
|
extend self
|
7
7
|
|
8
8
|
def download(package, dir = "tmp")
|
9
|
-
filepath = File.expand_path(File.join(dir,
|
9
|
+
filepath = File.expand_path(File.join(dir, "#{archive_edition(package)}.zip"))
|
10
10
|
open(filepath, 'wb') do |file|
|
11
|
-
uri = URI.parse(
|
11
|
+
uri = URI.parse(base_url(package))
|
12
12
|
Net::HTTP.start(uri.host, uri.port) do |http|
|
13
13
|
http.request_get(uri.path) do |resp|
|
14
14
|
# TODO: show progress
|
@@ -94,16 +94,16 @@ module Geocoder
|
|
94
94
|
base_url + archive_url_path(package)
|
95
95
|
end
|
96
96
|
|
97
|
-
def
|
97
|
+
def archive_edition(package)
|
98
98
|
{
|
99
|
-
geolite_country_csv: "GeoLite2-Country-CSV
|
100
|
-
geolite_city_csv: "GeoLite2-City-CSV
|
101
|
-
geolite_asn_csv: "GeoLite2-ASN-CSV
|
99
|
+
geolite_country_csv: "GeoLite2-Country-CSV",
|
100
|
+
geolite_city_csv: "GeoLite2-City-CSV",
|
101
|
+
geolite_asn_csv: "GeoLite2-ASN-CSV"
|
102
102
|
}[package]
|
103
103
|
end
|
104
104
|
|
105
|
-
def base_url
|
106
|
-
"
|
105
|
+
def base_url(edition)
|
106
|
+
"https://download.maxmind.com/app/geoip_download?edition_id=#{edition}&license_key=#{ENV['LICENSE_KEY']}&suffix=zip"
|
107
107
|
end
|
108
108
|
end
|
109
109
|
end
|
data/lib/tasks/maxmind.rake
CHANGED
@@ -54,7 +54,7 @@ module MaxmindTask
|
|
54
54
|
end
|
55
55
|
require 'fileutils'
|
56
56
|
p = "geolite_#{package}_csv".intern
|
57
|
-
archive_filename = Geocoder::MaxmindDatabase.
|
57
|
+
archive_filename = "#{Geocoder::MaxmindDatabase.archive_edition(p)}.zip"
|
58
58
|
Zip::File.open(File.join(options[:dir], archive_filename)).each do |entry|
|
59
59
|
filepath = File.join(options[:dir], entry.name)
|
60
60
|
if File.exist? filepath
|
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.
|
4
|
+
version: 1.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Reisner
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-07-04 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Object geocoding (by street or IP address), reverse geocoding (coordinates
|
14
14
|
to street address), distance queries for ActiveRecord and Mongoid, result caching,
|
@@ -25,8 +25,7 @@ files:
|
|
25
25
|
- README.md
|
26
26
|
- bin/console
|
27
27
|
- bin/geocode
|
28
|
-
- examples/
|
29
|
-
- examples/autoexpire_cache_redis.rb
|
28
|
+
- examples/app_defined_lookup_services.rb
|
30
29
|
- examples/cache_bypass.rb
|
31
30
|
- examples/reverse_geocode_job.rb
|
32
31
|
- lib/easting_northing.rb
|
@@ -39,6 +38,9 @@ files:
|
|
39
38
|
- lib/generators/geocoder/migration_version.rb
|
40
39
|
- lib/geocoder.rb
|
41
40
|
- lib/geocoder/cache.rb
|
41
|
+
- lib/geocoder/cache_stores/base.rb
|
42
|
+
- lib/geocoder/cache_stores/generic.rb
|
43
|
+
- lib/geocoder/cache_stores/redis.rb
|
42
44
|
- lib/geocoder/calculations.rb
|
43
45
|
- lib/geocoder/cli.rb
|
44
46
|
- lib/geocoder/configuration.rb
|
@@ -49,7 +51,9 @@ files:
|
|
49
51
|
- lib/geocoder/kernel_logger.rb
|
50
52
|
- lib/geocoder/logger.rb
|
51
53
|
- lib/geocoder/lookup.rb
|
54
|
+
- lib/geocoder/lookups/abstract_api.rb
|
52
55
|
- lib/geocoder/lookups/amap.rb
|
56
|
+
- lib/geocoder/lookups/amazon_location_service.rb
|
53
57
|
- lib/geocoder/lookups/baidu.rb
|
54
58
|
- lib/geocoder/lookups/baidu_ip.rb
|
55
59
|
- lib/geocoder/lookups/ban_data_gouv_fr.rb
|
@@ -59,6 +63,7 @@ files:
|
|
59
63
|
- lib/geocoder/lookups/dstk.rb
|
60
64
|
- lib/geocoder/lookups/esri.rb
|
61
65
|
- lib/geocoder/lookups/freegeoip.rb
|
66
|
+
- lib/geocoder/lookups/geoapify.rb
|
62
67
|
- lib/geocoder/lookups/geocoder_ca.rb
|
63
68
|
- lib/geocoder/lookups/geocodio.rb
|
64
69
|
- lib/geocoder/lookups/geoip2.rb
|
@@ -70,9 +75,11 @@ files:
|
|
70
75
|
- lib/geocoder/lookups/here.rb
|
71
76
|
- lib/geocoder/lookups/ip2location.rb
|
72
77
|
- lib/geocoder/lookups/ipapi_com.rb
|
78
|
+
- lib/geocoder/lookups/ipbase.rb
|
73
79
|
- lib/geocoder/lookups/ipdata_co.rb
|
74
80
|
- lib/geocoder/lookups/ipgeolocation.rb
|
75
81
|
- lib/geocoder/lookups/ipinfo_io.rb
|
82
|
+
- lib/geocoder/lookups/ipqualityscore.rb
|
76
83
|
- lib/geocoder/lookups/ipregistry.rb
|
77
84
|
- lib/geocoder/lookups/ipstack.rb
|
78
85
|
- lib/geocoder/lookups/latlon.rb
|
@@ -82,11 +89,14 @@ files:
|
|
82
89
|
- lib/geocoder/lookups/maxmind.rb
|
83
90
|
- lib/geocoder/lookups/maxmind_geoip2.rb
|
84
91
|
- lib/geocoder/lookups/maxmind_local.rb
|
92
|
+
- lib/geocoder/lookups/melissa_street.rb
|
85
93
|
- lib/geocoder/lookups/nationaal_georegister_nl.rb
|
86
94
|
- lib/geocoder/lookups/nominatim.rb
|
87
95
|
- lib/geocoder/lookups/opencagedata.rb
|
88
96
|
- lib/geocoder/lookups/osmnames.rb
|
97
|
+
- lib/geocoder/lookups/pc_miler.rb
|
89
98
|
- lib/geocoder/lookups/pelias.rb
|
99
|
+
- lib/geocoder/lookups/photon.rb
|
90
100
|
- lib/geocoder/lookups/pickpoint.rb
|
91
101
|
- lib/geocoder/lookups/pointpin.rb
|
92
102
|
- lib/geocoder/lookups/postcode_anywhere_uk.rb
|
@@ -95,6 +105,7 @@ files:
|
|
95
105
|
- lib/geocoder/lookups/telize.rb
|
96
106
|
- lib/geocoder/lookups/tencent.rb
|
97
107
|
- lib/geocoder/lookups/test.rb
|
108
|
+
- lib/geocoder/lookups/twogis.rb
|
98
109
|
- lib/geocoder/lookups/uk_ordnance_survey_names.rb
|
99
110
|
- lib/geocoder/lookups/yandex.rb
|
100
111
|
- lib/geocoder/models/active_record.rb
|
@@ -105,7 +116,9 @@ files:
|
|
105
116
|
- lib/geocoder/query.rb
|
106
117
|
- lib/geocoder/railtie.rb
|
107
118
|
- lib/geocoder/request.rb
|
119
|
+
- lib/geocoder/results/abstract_api.rb
|
108
120
|
- lib/geocoder/results/amap.rb
|
121
|
+
- lib/geocoder/results/amazon_location_service.rb
|
109
122
|
- lib/geocoder/results/baidu.rb
|
110
123
|
- lib/geocoder/results/baidu_ip.rb
|
111
124
|
- lib/geocoder/results/ban_data_gouv_fr.rb
|
@@ -115,6 +128,7 @@ files:
|
|
115
128
|
- lib/geocoder/results/dstk.rb
|
116
129
|
- lib/geocoder/results/esri.rb
|
117
130
|
- lib/geocoder/results/freegeoip.rb
|
131
|
+
- lib/geocoder/results/geoapify.rb
|
118
132
|
- lib/geocoder/results/geocoder_ca.rb
|
119
133
|
- lib/geocoder/results/geocodio.rb
|
120
134
|
- lib/geocoder/results/geoip2.rb
|
@@ -126,9 +140,11 @@ files:
|
|
126
140
|
- lib/geocoder/results/here.rb
|
127
141
|
- lib/geocoder/results/ip2location.rb
|
128
142
|
- lib/geocoder/results/ipapi_com.rb
|
143
|
+
- lib/geocoder/results/ipbase.rb
|
129
144
|
- lib/geocoder/results/ipdata_co.rb
|
130
145
|
- lib/geocoder/results/ipgeolocation.rb
|
131
146
|
- lib/geocoder/results/ipinfo_io.rb
|
147
|
+
- lib/geocoder/results/ipqualityscore.rb
|
132
148
|
- lib/geocoder/results/ipregistry.rb
|
133
149
|
- lib/geocoder/results/ipstack.rb
|
134
150
|
- lib/geocoder/results/latlon.rb
|
@@ -138,11 +154,14 @@ files:
|
|
138
154
|
- lib/geocoder/results/maxmind.rb
|
139
155
|
- lib/geocoder/results/maxmind_geoip2.rb
|
140
156
|
- lib/geocoder/results/maxmind_local.rb
|
157
|
+
- lib/geocoder/results/melissa_street.rb
|
141
158
|
- lib/geocoder/results/nationaal_georegister_nl.rb
|
142
159
|
- lib/geocoder/results/nominatim.rb
|
143
160
|
- lib/geocoder/results/opencagedata.rb
|
144
161
|
- lib/geocoder/results/osmnames.rb
|
162
|
+
- lib/geocoder/results/pc_miler.rb
|
145
163
|
- lib/geocoder/results/pelias.rb
|
164
|
+
- lib/geocoder/results/photon.rb
|
146
165
|
- lib/geocoder/results/pickpoint.rb
|
147
166
|
- lib/geocoder/results/pointpin.rb
|
148
167
|
- lib/geocoder/results/postcode_anywhere_uk.rb
|
@@ -151,6 +170,7 @@ files:
|
|
151
170
|
- lib/geocoder/results/telize.rb
|
152
171
|
- lib/geocoder/results/tencent.rb
|
153
172
|
- lib/geocoder/results/test.rb
|
173
|
+
- lib/geocoder/results/twogis.rb
|
154
174
|
- lib/geocoder/results/uk_ordnance_survey_names.rb
|
155
175
|
- lib/geocoder/results/yandex.rb
|
156
176
|
- lib/geocoder/sql.rb
|
@@ -170,7 +190,7 @@ licenses:
|
|
170
190
|
metadata:
|
171
191
|
source_code_uri: https://github.com/alexreisner/geocoder
|
172
192
|
changelog_uri: https://github.com/alexreisner/geocoder/blob/master/CHANGELOG.md
|
173
|
-
post_install_message:
|
193
|
+
post_install_message:
|
174
194
|
rdoc_options: []
|
175
195
|
require_paths:
|
176
196
|
- lib
|
@@ -185,8 +205,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
185
205
|
- !ruby/object:Gem::Version
|
186
206
|
version: '0'
|
187
207
|
requirements: []
|
188
|
-
rubygems_version: 3.
|
189
|
-
signing_key:
|
208
|
+
rubygems_version: 3.3.26
|
209
|
+
signing_key:
|
190
210
|
specification_version: 4
|
191
211
|
summary: Complete geocoding solution for Ruby.
|
192
212
|
test_files: []
|