Abstract
The development of learning applications on the Android platform is one of the fastest growing sectors. Around 179 billion applications are downloaded annually. The application market is conquered by Google apps, games, maps, social media, etc. Most map-based applications (Google Maps, Waze) are based on algorithms for finding an optimal path that does not take into account environmental data, the only factor considered in choosing the optimal route being the traffic congestion. This paper aims to create a learning platform that can help users to choose the best route based on the information provided by the environment (pollution, traffic, weather), but also depending on available transportation means, e.g., car, bicycle or on foot.
The main APIs used in this project are: OpenStreetMap, Overpass API, Air Quality Programmatic, TomTom Traffic API, and OpenWeatherMap, providing important information in creating the app. There are several ways to use the raw data of these APIs. The proposed app sends HTTPS requests for which a JSON or XML response is received. In addition libraries specially developed for manipulating this data can be used (e.g., osmdroid). First, the osmdroid library is used to create the MapView object containing all the information needed to create the map, but in order to be able to view (render) the map the mapsforge library is also needed. The osmdroid library and its add-on, osmBonusPack, offer the ability to add other map features, such as the ability to work on multiple layers. Certain objects can be displayed in a map on a layer, but without directly modifying it. For instance, such a layer can display the user's position on the map, marker objects, and add other features: multiple taps, rotations, etc. Since the app has now all the basic functionalities required by an interactive map, all the graphical elements of the interface can be introduced. To find the optimal route between two predetermined locations, the app implements the following algorithms: Dijkstra, A-Star, Dijkstra Bidirectional, A-Star Bidirectional, and New Bidirectional A-Star. These algorithms are applied to an oriented graph created using raw data extracted from the OpenStreetMap database. During the search, the graph also calculates the weight of the route sides, taking into account environmental data collected: air pollution, traffic congestion, and weather forecast. The data extracted from the OpenWeatherMap API is not used to calculate the weight of the sides, but to give a suggestion about the user options for transportation users at a particular time. The paper presents the experimental results of the optimal route adaptive learning methods, depending on users' choice to assign values of the importance coefficient for travel distance and time, environment quality, etc. Another app parameter is the time to find the best route, which has been reduced by applying optimization methods. The paper analyses the comparative performances of all algorithms involved and give suggestions regarding the best way to learn how to determine the optimal route depending on the multiple-choice preferences of users.
The paper proposes a dynamic, versatile and interactive app with certain educational features: users can learn to make the best decision based on different criteria, to evaluate personal travel options, to apply optimization algorithms, to get to know more about nature, to became eco-friendly by being encouraged to select alternative transportation. |