Map matching is an important algorithm for any location-based service, especially in navigation and tracking systems and services. Identifying the relevant road segments accurately and efficiently, given positioning data, is the first and most important step in any map matching algorithm. This paper proposes a new approach to searching for road candidates by clustering and then searching road segments through a constructed hierarchical clustering tree, rather than using indexing techniques to query segments within a fixed search window. A binary tree is created based on the hierarchical clustering tree and adaptive searches are conducted to identify candidate road segments given GPS positions. The approach was validated using road maps with different scales and various scenarios in which moving vehicles were located. Both theoretical analysis and experimental results confirm that the proposed approach can efficiently find candidate road segments for map matching.