lib/geocoder/results/yandex.rb in geocoder-1.4.2 vs lib/geocoder/results/yandex.rb in geocoder-1.4.3
- old
+ new
@@ -66,10 +66,18 @@
def premise_name
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
def precision
@@ -82,9 +90,35 @@
west, south = envelope['lowerCorner'].split(' ').map(&:to_f)
[south, west, north, east]
end
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