We consider an aerial survey operation in which a fleet of unmanned aerial vehicles (UAVs) is required to visit several locations and then land in one of the available landing sites while optimising some performance criteria, subject to operational constraints and flight dynamics. We aim to minimise the maximum flight time of the UAVs. To efficiently solve this problem, we propose an algorithmic framework consisting of: (i) a nonlinear programming formulation of trajectory optimisation that accurately reflects the underlying flight dynamics and operational constraints; (ii) two sequential trajectory optimisation heuristics, designed to cope with the challenging task of finding feasible flight trajectories for a given route; and (iii) a routing metaheuristic combining iterated local search and a set-partitioning-based integer programming formulation. The proposed framework is tested on randomly generated instances with up to 50 waypoints, showing its efficacy.