From 08a4c8959424eac15091b365c505c82e1496a29a Mon Sep 17 00:00:00 2001 From: Abdullah Date: Tue, 2 May 2017 14:47:16 +0300 Subject: [PATCH] added bbox to search request and changed ruby-geonames to geonames --- ruby-geonames.gemspec => geonames.gemspec | 2 +- lib/geonames.rb | 1 + lib/toponym.rb | 2 ++ lib/web_service.rb | 11 +++++++++++ 4 files changed, 15 insertions(+), 1 deletion(-) rename ruby-geonames.gemspec => geonames.gemspec (97%) diff --git a/ruby-geonames.gemspec b/geonames.gemspec similarity index 97% rename from ruby-geonames.gemspec rename to geonames.gemspec index a7e2aa7..189588e 100644 --- a/ruby-geonames.gemspec +++ b/geonames.gemspec @@ -1,5 +1,5 @@ Gem::Specification.new do |s| - s.name = "ruby-geonames" + s.name = "geonames" s.version = "0.2.9" s.authors = [ "Adam Wisniewski", "Rahul Ghose" ] s.email = "adamw@tbcn.ca" diff --git a/lib/geonames.rb b/lib/geonames.rb index 96bb843..3413f0b 100644 --- a/lib/geonames.rb +++ b/lib/geonames.rb @@ -30,6 +30,7 @@ require_relative 'country_subdivision' require_relative 'wikipedia_article' require_relative 'intersection' +require_relative 'bounding_box' module Geonames autoload :Config, 'geonames/config' diff --git a/lib/toponym.rb b/lib/toponym.rb index defb961..b827db9 100644 --- a/lib/toponym.rb +++ b/lib/toponym.rb @@ -37,12 +37,14 @@ class Toponym attr :admin_code_2 attr :admin_name_1 attr :admin_name_2 + attr :bbox attr_writer :geoname_id, :name, :alternate_names, :country_code attr_writer :country_name, :population, :elevation, :feature_class attr_writer :feature_class_name, :feature_code,:feature_code_name attr_writer :latitude, :longitude, :distance attr_writer :admin_code_1, :admin_code_2, :admin_name_1, :admin_name_2 + attr_writer :bbox end end diff --git a/lib/web_service.rb b/lib/web_service.rb index 1022640..5416dff 100644 --- a/lib/web_service.rb +++ b/lib/web_service.rb @@ -37,6 +37,16 @@ def WebService.get_element_child_int( element, child ) end end + def WebService.element_to_bbox( element, child ) + element = element.elements[child] + north = WebService::get_element_child_float( element, 'north' ) + south = WebService::get_element_child_float( element, 'south' ) + east = WebService::get_element_child_float( element, 'east' ) + west = WebService::get_element_child_float( element, 'west' ) + + bbox = Geonames::BoundingBox.new north, south, east, west + end + def WebService.element_to_postal_code ( element ) postal_code = Geonames::PostalCode.new @@ -95,6 +105,7 @@ def WebService.element_to_toponym ( element ) toponym.admin_code_2 = WebService::get_element_child_text( element, 'adminCode2' ) toponym.admin_name_1 = WebService::get_element_child_text( element, 'adminName1' ) toponym.admin_name_2 = WebService::get_element_child_text( element, 'adminName2' ) + toponym.bbox = WebService::element_to_bbox( element, 'bbox' ) return toponym