route = xRoute.get_route(params[:reference_latitude], params[:reference_longitude], params[:finish_latitude], params[:finish_longitude]) # call to xRoute /xroute/rs/XRoute/calculateRoute standard_distance = route['info']['distance'].to_i reachable_objects = xRoute.get_reachable_objects(route) # call to xRoute /xroute/rs/XRoute/searchForReachableObjects parking_places = ParkingPlace.where(deleted: 0, id: reachable_objects.keys) # We get for our own database parking places parking_places.each do |parking_place| parking_place.detour_distance = reachable_objects[parking_place.id.to_s][:detour_time]) #Assign detour distance to parking places end parking_places = xRoute.get_driving_distance(parking_places, params[:reference_latitude], params[:reference_longitude]) # Get driving distances for all parking places parking_places = remove_out_of_reach(params[:driving_time]) # We remove all parking places that are out of reach parking_places = xRoute.remove_too_far_away(parking_places, params[:finish_latitude], params[:finish_longitude], standard_distance) render json: parking_places.to_json