DescriptionNowadays people rely on their phones for much more than just communication. Phones are used for social media, as cameras, for emailing, and since more and more people begin to use smartphones, for navigation. Conventionally, the route recommendation given by GPS has been considered as the optimal route search problem only between two locations - origin and destination cite{manoj} and to make it more efficient, the map needs to be updated manually. However, in the real cases, several restrictions may need to be considered in the route recommendation. The restrictions could be several intermediate destinations which must be visited before reaching the final destination. For example, a user wants to visit places that belong to several general types, such as a bank and a gas station before arriving at working company, and then many choices may be available along the route to company, where only one place from each general type is to be chosen. Additionally, there is no good way on mobile phones, especially on the Android platform to figure out how to get from point A to point B while navigating through intermediate waypoints belonging to user' specified general type. Hence, this thesis tries to bring this issue to light, and provides a solution to the problem. The thesis make the following three contributions: first, proposing the algorithm help search nearby places and a strategy help get the optimal route through multiple intermediate waypoints. Second, an Android based application including the design and implementation which gives the optimal route recommendation by users' specified general types. Third, the result of the application is analyzed and discussed by using a JavaScript Application and R.