Delay Tolerant Networks (DTNs) often suffer from intermittent disruption and variable long delay due to factors such as mobility and energy. In this paper, a Location Aided Controlled Spraying (LACS) routing algorithm is proposed to deal with the challenging issues in DTN routing. Only the routing information carried by the contacted nodes is needed in this algorithm, and there is no need for global networks knowledge and hardware support. The routing process is divided into two stages, i.e., controlled spraying routing stage and single-copy routing stage. The maximum transfer throughput of the contact is checked before each message is forwarded. During the controlled spraying stage, the current node adjusts spraying strategy according to the encounter angle of the contact nodes. During the single-copy stage, a location prediction model based on the semi-Markov process (SMP) is introduced, and the node's behaviors can be captured both in the temporal and spatial domains with this model. The current node predicts the destination node's location, and then decides whether to forward the message to target node based on the time used for meeting the destination node. Simulation results show that the proposed algorithm can achieve better performance than the traditional routing schemes of DTNs in terms of delivery ratio, network overhead and transmission delay under both random node movement model and realistic trace scenario.