In this paper, we present a geographic routing algorithm which can adapt to different levels of mobility by changing its parameters according to the network in which it is running. Routing decisions are based on directions and geographical positions of the nodes and there is no need for an external location system. Discoveries are done using unicast messages resulting in few control messages being sent both to discover and to maintain routing information. After a series of tests, we show the algorithm low overhead, high adaptability and robustness as it only relies on the end-points (source and destination nodes) to guarantee a successful transmission.