With the growing popularity of smartphones and the richness of Geographic information databases, map-based applications have become an indispensable part in people's daily life. However there is a common problem in online maps which is the high consumption of network traffic. Using offline maps is a good solution to this problem. During the development of NKCampus which is an online/offline map application, we find that some map applications are very inefficient because of their simple database mechanism. Therefore we present multi-level caches method to improve the efficiency and employ prefetching method to enhance the user experience based on features of map applications. The experiment shows that the proposed mechanism has gained significant improvement on efficiency.