diff --git a/lib/geocoder/results/yandex.rb b/lib/geocoder/results/yandex.rb index eb42548c5547201d223bf6ffa4b539b6f25ef664..5243533093eb98c89592c99014b47e7f08bcbbe1 100644 --- a/lib/geocoder/results/yandex.rb +++ b/lib/geocoder/results/yandex.rb @@ -68,6 +68,14 @@ module Geocoder::Result address_details['Locality']['Premise']['PremiseName'] end + def street + thoroughfare_data && thoroughfare_data['ThoroughfareName'] + end + + def street_number + thoroughfare_data && thoroughfare_data['Premise'] && thoroughfare_data['Premise']['PremiseNumber'] + end + def kind @data['GeoObject']['metaDataProperty']['GeocoderMetaData']['kind'] end @@ -85,6 +93,32 @@ module Geocoder::Result private # ---------------------------------------------------------------- + def thoroughfare_data + locality_data && locality_data['Thoroughfare'] + end + + def locality_data + dependent_locality && subadmin_locality && admin_locality + end + + def admin_locality + address_details && address_details['AdministrativeArea'] && + address_details['AdministrativeArea']['Locality'] + end + + def subadmin_locality + address_details && address_details['AdministrativeArea'] && + address_details['AdministrativeArea']['SubAdministrativeArea'] && + address_details['AdministrativeArea']['SubAdministrativeArea']['Locality'] + end + + def dependent_locality + address_details && address_details['AdministrativeArea'] && + address_details['AdministrativeArea']['SubAdministrativeArea'] && + address_details['AdministrativeArea']['SubAdministrativeArea']['Locality'] && + address_details['AdministrativeArea']['SubAdministrativeArea']['Locality']['DependentLocality'] + end + def address_details @data['GeoObject']['metaDataProperty']['GeocoderMetaData']['AddressDetails']['Country'] end