diff --git a/lib/geocoder/results/yandex.rb b/lib/geocoder/results/yandex.rb index 32d093aadc9ba179a6e24d7339dd5f80fee93766..f9d830eedfb8c844c00a765762d50cb23a474758 100644 --- a/lib/geocoder/results/yandex.rb +++ b/lib/geocoder/results/yandex.rb @@ -14,8 +14,10 @@ module Geocoder::Result def city if state.empty? address_details['Locality']['LocalityName'] - else - address_details['AdministrativeArea']['Locality']['LocalityName'] + elsif sub_state.empty? + state['Locality']['LocalityName'] + else + sub_state['Locality']['LocalityName'] end end @@ -34,6 +36,18 @@ module Geocoder::Result "" end end + + def sub_state + if !state.empty? + if state['SubAdministrativeArea'] + state['SubAdministrativeArea']['SubAdministrativeAreaName'] + else + "" + end + else + "" + end + end def state_code ""