class Geocoder::Result::Azure

def address

def address
  @data['address']['freeformAddress']
end

def building_number

def building_number
  @data['address']['buildingNumber']
end

def city

def city
  @data['address']['municipality']
end

def coordinates

def coordinates
  if @data['position'].is_a?(String) # reverse geocoding result
    @data['position'].split(',').map(&:to_f)
  elsif @data['position'].is_a?(Hash) # forward geocoding result
    [@data['position']['lat'], @data['position']['lon']]
  end
end

def country

def country
  @data['address']['country']
end

def country_code

def country_code
  @data['address']['countryCode']
end

def district

def district
  @data['address']['municipalitySubdivision']
end

def postal_code

def postal_code
  @data['address']['postalCode']
end

def province

def province
  @data['address']['countrySubdivision']
end

def state

def state
  @data['address']['countrySubdivision']
end

def state_code

def state_code
  @data['address']['countrySubdivisionCode']
end

def street_name

def street_name
  @data['address']['streetName']
end

def street_number

def street_number
  @data['address']['streetNumber']
end

def viewport

def viewport
  @data['viewport'] || {}
end