diff --git a/README_API_GUIDE.md b/README_API_GUIDE.md index c7ca51b92982f3c0f47e888a6f40d78ef0638465..046279151531aa9eb90dde74a7f15b15b661431d 100644 --- a/README_API_GUIDE.md +++ b/README_API_GUIDE.md @@ -265,18 +265,6 @@ Data Science Toolkit provides an API whose response format is like Google's but * **Terms of Service**: http://smartystreets.com/legal/terms-of-service * **Limitations**: No reverse geocoding. - -### OKF Geocoder (`:okf`) - -* **API key**: none -* **Quota**: none -* **Region**: FI -* **SSL support**: no -* **Languages**: fi -* **Documentation**: http://books.okf.fi/geocoder/_full/ -* **Terms of Service**: http://www.itella.fi/liitteet/palvelutjatuotteet/yhteystietopalvelut/Postinumeropalvelut-Palvelukuvausjakayttoehdot.pdf -* **Limitations**: ? - ### Geoportail.lu (`:geoportail_lu`) * **API key**: none diff --git a/lib/geocoder/lookup.rb b/lib/geocoder/lookup.rb index baa85c9d2b4fc14e7d80d820bf154c02463cfde4..df284da443ea109e283a54b5f19b505bfb9e7ec3 100644 --- a/lib/geocoder/lookup.rb +++ b/lib/geocoder/lookup.rb @@ -45,7 +45,6 @@ module Geocoder :baidu, :geocodio, :smarty_streets, - :okf, :postcode_anywhere_uk, :postcodes_io, :geoportail_lu, diff --git a/lib/geocoder/lookups/okf.rb b/lib/geocoder/lookups/okf.rb deleted file mode 100644 index 54909bb2dcd8a330710676155193f1a905ab4f15..0000000000000000000000000000000000000000 --- a/lib/geocoder/lookups/okf.rb +++ /dev/null @@ -1,44 +0,0 @@ -require 'geocoder/lookups/base' -require "geocoder/results/okf" - -module Geocoder::Lookup - class Okf < Base - - def name - "Okf" - end - - def query_url(query) - "#{protocol}://data.okf.fi/gis/1/geocode/json?" + url_query_string(query) - end - - private # --------------------------------------------------------------- - - def valid_response?(response) - json = parse_json(response.body) - status = json["status"] if json - super(response) and ['OK', 'ZERO_RESULTS'].include?(status) - end - - def results(query) - return [] unless doc = fetch_data(query) - case doc['status']; when "OK" # OK status implies >0 results - return doc['results'] - end - return [] - end - - def query_url_okf_params(query) - params = { - (query.reverse_geocode? ? :latlng : :address) => query.sanitized_text, - :sensor => "false", - :language => (query.language || configuration.language) - } - params - end - - def query_url_params(query) - query_url_okf_params(query).merge(super) - end - end -end diff --git a/lib/geocoder/results/okf.rb b/lib/geocoder/results/okf.rb deleted file mode 100644 index 973922591474c75897a963e4d0b1aef46cd028ed..0000000000000000000000000000000000000000 --- a/lib/geocoder/results/okf.rb +++ /dev/null @@ -1,106 +0,0 @@ -require 'geocoder/results/base' - -module Geocoder::Result - class Okf < Base - - def coordinates - ['lat', 'lng'].map{ |i| geometry['location'][i] } - end - - def address(format = :full) - formatted_address - end - - def city - fields = [:locality, :sublocality, - :administrative_area_level_3, - :administrative_area_level_2] - fields.each do |f| - if entity = address_components_of_type(f).first - return entity['long_name'] - end - end - return nil # no appropriate components found - end - - def state - "" - end - - def sub_state - "" - end - - def state_code - "" - end - - def country - if country = address_components_of_type(:country).first - country['long_name'] - end - end - - def country_code - if country = address_components_of_type(:country).first - country['short_name'] - end - end - - def postal_code - if postal = address_components_of_type(:postal_code).first - postal['long_name'] - end - end - - def route - if route = address_components_of_type(:route).first - route['long_name'] - end - end - - def street_number - if street_number = address_components_of_type(:street_number).first - street_number['long_name'] - end - end - - def street_address - [route, street_number].compact.join(' ') - end - - def types - @data['types'] - end - - def formatted_address - @data['formatted_address'] - end - - def address_components - @data['address_components'] - end - - ## - # Get address components of a given type. Valid types are defined in - # Google's Geocoding API documentation and include (among others): - # - # :street_number - # :locality - # :neighborhood - # :route - # :postal_code - # - def address_components_of_type(type) - address_components.select{ |c| c['types'].include?(type.to_s) } - end - - def geometry - @data['geometry'] - end - - def precision - geometry['location_type'] if geometry - end - end -end diff --git a/test/fixtures/okf_kirstinmaki b/test/fixtures/okf_kirstinmaki deleted file mode 100644 index 79d50b9636c554fb7af243820cfe29ae3d3b6cc7..0000000000000000000000000000000000000000 --- a/test/fixtures/okf_kirstinmaki +++ /dev/null @@ -1,67 +0,0 @@ -{ - "status" : "OK", - "results" : [ - { - "formatted_address" : "Kirstinmäki 1, 02760 Espoo, Suomi", - "sources" : [ - { - "name" : "National Land Survey of Finland - Topographic Dataset (2013-03-08)", - "terms_of_use" : "National Land Survey open data licence - version 1.0 - 1 May 2012\nhttp://www.maanmittauslaitos.fi/en/NLS_open_data_licence_version1_20120501" - }, - { - "name" : "Itella perusosoitteisto (2014-02-01)", - "terms_of_use" : "http://www.itella.fi/liitteet/palvelutjatuotteet/yhteystietopalvelut/Postinumeropalvelut-Palvelukuvausjakayttoehdot.pdf" - } - ], - "types" : [ - "street_address" - ], - "address_components" : [ - { - "types" : [ - "street_number" - ], - "short_name" : "1", - "long_name" : "1" - }, - { - "types" : [ - "route" - ], - "short_name" : "Kirstinmäki", - "long_name" : "Kirstinmäki" - }, - { - "types" : [ - "administrative_area_level_3", - "political" - ], - "short_name" : "Espoo", - "long_name" : "Espoo" - }, - { - "types" : [ - "postal_code" - ], - "short_name" : "02760", - "long_name" : "02760" - }, - { - "types" : [ - "country", - "political" - ], - "short_name" : "FI", - "long_name" : "Suomi" - } - ], - "geometry" : { - "location" : { - "lat" : 60.2015185792087, - "lng" : 24.6667520050026 - }, - "location_type" : "RANGE_INTERPOLATED" - } - } - ] -} diff --git a/test/fixtures/okf_no_results b/test/fixtures/okf_no_results deleted file mode 100644 index 184b56deadf96dcb3f8a3138cbe72fe4e610c7a6..0000000000000000000000000000000000000000 --- a/test/fixtures/okf_no_results +++ /dev/null @@ -1,4 +0,0 @@ -{ - "status" : "ZERO_RESULTS", - "results" : [] -} diff --git a/test/test_helper.rb b/test/test_helper.rb index 1f67af1bbc5b5cb14b397fc5f23a8b1244618785..6274956581d14f176e222974c924f5551329f473 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -318,14 +318,6 @@ module Geocoder end end - require 'geocoder/lookups/okf' - class Okf - private - def default_fixture_filename - "okf_kirstinmaki" - end - end - require 'geocoder/lookups/postcode_anywhere_uk' class PostcodeAnywhereUk private diff --git a/test/unit/error_handling_test.rb b/test/unit/error_handling_test.rb index 689d1fe56c46d6ddfbb9f472d1ab4c863d9ea6e2..00066a3f5136455953316fd4a9e54cd94fac4231 100644 --- a/test/unit/error_handling_test.rb +++ b/test/unit/error_handling_test.rb @@ -19,7 +19,7 @@ class ErrorHandlingTest < GeocoderTestCase def test_always_raise_response_parse_error Geocoder.configure(:always_raise => [Geocoder::ResponseParseError]) - [:freegeoip, :google, :ipdata_co, :okf].each do |l| + [:freegeoip, :google, :ipdata_co].each do |l| lookup = Geocoder::Lookup.get(l) set_api_key!(l) assert_raises Geocoder::ResponseParseError do @@ -29,7 +29,7 @@ class ErrorHandlingTest < GeocoderTestCase end def test_never_raise_response_parse_error - [:freegeoip, :google, :ipdata_co, :okf].each do |l| + [:freegeoip, :google, :ipdata_co].each do |l| lookup = Geocoder::Lookup.get(l) set_api_key!(l) silence_warnings do diff --git a/test/unit/lookups/okf_test.rb b/test/unit/lookups/okf_test.rb deleted file mode 100644 index b05cce85d15da5989b0542b4ae747652cbcea653..0000000000000000000000000000000000000000 --- a/test/unit/lookups/okf_test.rb +++ /dev/null @@ -1,37 +0,0 @@ -# encoding: utf-8 -require 'test_helper' - -class OkfTest < GeocoderTestCase - - def setup - Geocoder.configure(lookup: :okf) - end - - def test_okf_result_components - result = Geocoder.search("Kirstinmäki 11b28").first - assert_equal "Espoo", - result.address_components_of_type(:administrative_area_level_3).first['long_name'] - end - - def test_okf_result_components_contains_route - result = Geocoder.search("Kirstinmäki 11b28").first - assert_equal "Kirstinmäki", - result.address_components_of_type(:route).first['long_name'] - end - - def test_okf_result_components_contains_street_number - result = Geocoder.search("Kirstinmäki 11b28").first - assert_equal "1", - result.address_components_of_type(:street_number).first['long_name'] - end - - def test_okf_street_address_returns_formatted_street_address - result = Geocoder.search("Kirstinmäki 11b28").first - assert_equal "Kirstinmäki 1", result.street_address - end - - def test_okf_precision - result = Geocoder.search("Kirstinmäki 11b28").first - assert_equal "RANGE_INTERPOLATED", result.precision - end -end