A method for searching for a route from a departure place to a destination, comprising the steps of: reading out map data with a hierarchical structure comprising a plurality of layers from an information storage unit, each of the hierarchical layers having a plurality of blocks of predetermined area, a lower level hierarchy including detailed map data with data for every road and an upper level hierarchy including wide-area map data with data for main roads only; searching for a route within a predetermined search area of a departure side and within a predetermined search area of a destination side on the lowest level hierarchical layer; if a route searched in each of the search areas is overlapped, obtaining a route with a shortest cost; for each hierarchical layer between the lowest level hierarchical layer and the most upper level hierarchical layer, performing the further steps of: - performing a search for a route in a search area of the departure side and in a search area of the destination side by setting nodes on the hierarchical layer corresponding to boundary nodes that have been reached in the search areas on the lower level hierarchical layer as starting points to search a route and holding a searching cost of each node; and - if the route searched in each of the search areas is overlapped on the hierarchical layer and the cost of the route is smaller than the cost of the route obtained on the lower level hierarchical layer, update the route with a shortest cost by the searched route; on the most upper level hierarchical layer, executing a search from the destination side by setting nodes on the most upper level hierarchical layer corresponding to boundary nodes that have been reached in the search areas on the lower level hierarchical layer as starting points to search a route and holding a searching cost of each node and, if the cost of the route obtained is smaller than the route with a shortest cost on the lower level hierarchy, updating the route with a shortest cost by the obtained route. reading out map data with a hierarchical structure comprising a plurality of layers from an information storage unit, each of the hierarchical layers having a plurality of blocks of predetermined area, a lower level hierarchy including detailed map data with data for every road and an upper level hierarchy including wide-area map data with data for main roads only; searching for a route within a predetermined search area of a departure side and within a predetermined search area of a destination side on the lowest level hierarchical layer; if a route searched in each of the search areas is overlapped, obtaining a route with a shortest cost; for each hierarchical layer between the lowest level hierarchical layer and the most upper level hierarchical layer, performing the further steps of: - performing a search for a route in a search area of the departure side and in a search area of the destination side by setting nodes on the hierarchical layer corresponding to boundary nodes that have been reached in the search areas on the lower level hierarchical layer as starting points to search a route and holding a searching cost of each node; and - if the route searched in each of the search areas is overlapped on the hierarchical layer and the cost of the route is smaller than the cost of the route obtained on the lower level hierarchical layer, update the route with a shortest cost by the searched route; - performing a search for a route in a search area of the departure side and in a search area of the destination side by setting nodes on the hierarchical layer corresponding to boundary nodes that have been reached in the search areas on the lower level hierarchical layer as starting points to search a route and holding a searching cost of each node; and - if the route searched in each of the search areas is overlapped on the hierarchical layer and the cost of the route is smaller than the cost of the route obtained on the lower level hierarchical layer, update the route with a shortest cost by the searched route; on the most upper level hierarchical layer, executing a search from the destination side by setting nodes on the most upper level hierarchical layer corresponding to boundary nodes that have been reached in the search areas on the lower level hierarchical layer as starting points to search a route and holding a searching cost of each node and, if the cost of the route obtained is smaller than the route with a shortest cost on the lower level hierarchy, updating the route with a shortest cost by the obtained route.