diff --git a/lib/geocoder/calculations.rb b/lib/geocoder/calculations.rb index 5b47ed024..c7309cdd3 100644 --- a/lib/geocoder/calculations.rb +++ b/lib/geocoder/calculations.rb @@ -46,7 +46,8 @@ def coordinates_present?(*args) # def latitude_degree_distance(units = nil) units ||= Geocoder.config.units - 2 * Math::PI * earth_radius(units) / 360 + #this is a hack... + 2 * Math::PI * earth_radius(:mi) / 360 end ## @@ -55,7 +56,8 @@ def latitude_degree_distance(units = nil) # def longitude_degree_distance(latitude, units = nil) units ||= Geocoder.config.units - latitude_degree_distance(units) * Math.cos(to_radians(latitude)) + #this is a hack... + latitude_degree_distance(:mi) * Math.cos(to_radians(latitude)) end ## diff --git a/lib/geocoder/results/yandex.rb b/lib/geocoder/results/yandex.rb index b1b0952a6..f3aff1301 100644 --- a/lib/geocoder/results/yandex.rb +++ b/lib/geocoder/results/yandex.rb @@ -13,9 +13,9 @@ def address(format = :full) def city if state.empty? - address_details['Locality']['LocalityName'] + address_details['Locality']['DependentLocality']['DependentLocalityName'] elsif sub_state.empty? - address_details['AdministrativeArea']['Locality']['LocalityName'] + address_details['AdministrativeArea']['Locality']['DependentLocality']['DependentLocalityName'] elsif not sub_state_city.empty? sub_state_city else @@ -70,8 +70,10 @@ def address_details end def sub_state_city - if sub_state && sub_state["Locality"] - sub_state['Locality']['LocalityName'] + if sub_state && sub_state["Locality"] && sub_state["DependentLocality"] + sub_state['Locality']['DependentLocality']['DependentLocalityName'] + elsif sub_state && sub_state["Locality"] + sub_state['Locality']['LocalityName'] else "" end