def reverse_geocode(latlng, location_type: nil, result_type: nil, language: nil)
      params = {
        latlng: GoogleMapsService::Convert.latlng(latlng)
      }

      params[:result_type] = GoogleMapsService::Convert.join_list('|', result_type) if result_type
      params[:location_type] = GoogleMapsService::Convert.join_list('|', location_type) if location_type
      params[:language] = language if language

      return get('/maps/api/geocode/json', params)[:results]
    end
def reverse_geocode(latlng, location_type: nil, result_type: nil, language: nil)
      params = {
        latlng: GoogleMapsService::Convert.latlng(latlng)
      }

      params[:result_type] = GoogleMapsService::Convert.join_list('|', result_type) if result_type
      params[:location_type] = GoogleMapsService::Convert.join_list('|', location_type) if location_type
      params[:language] = language if language

      return get('/maps/api/geocode/json', params)[:results]
    end
Reverse geocoding is the process of converting geographic coordinates into a
 human-readable address.

 @example Simple lat/lon pair
   client.reverse_geocode({lat: 40.714224, lng: -73.961452})

 @example Multiple parameters
   client.reverse_geocode([40.714224, -73.961452],
       location_type: ['ROOFTOP', 'RANGE_INTERPOLATED'],
       result_type: ['street_address', 'route'],
       language: 'es')

 @param [Hash, Array] latlng The latitude/longitude value for which you wish to obtain
                the closest, human-readable address.
 @param [String, Array<String>] location_type One or more location types to restrict results to.
 @param [String, Array<String>] result_type One or more address types to restrict results to.
 @param [String] language The language in which to return results.

 @return [Array] Array of reverse geocoding results.