Welcome to the repository for "The Ultimate EV Mapper". This project showcases the functionalities and features of our EV mapping application, developed as part of our coursework at the University of Toronto. Please note that I cannot upload the actual code due to the University of Toronto's academic integrity regulations.
- Introduction
- Project Vision
- Path Finding
- Special Features
- The Travelling Courier
- Comparisons and Future Plans
- Conclusion
- References
The Ultimate EV Mapper is designed to provide comprehensive navigation for electric vehicle users. Our project aims to enhance the navigation experience by integrating various features such as real-time data, optimized pathfinding, and user-friendly interfaces. Below are some slides from our final presentation that highlight key aspects of the project.
Our vision for the Ultimate EV Mapper includes providing users with precise navigation, real-time data integration, and various special features that set our app apart from existing solutions.
Pathfinding is a fundamental aspect of the Ultimate EV Mapper, as it allows users to find the most efficient routes between various points of interest. The ability to navigate effectively is especially crucial for electric vehicle users, who need to consider factors such as charging station locations and battery range. Our pathfinding system leverages advanced algorithms to ensure optimal routing, taking into account real-time data and user preferences.
Our pathfinding algorithm is based on the A* search algorithm, which provides efficient and optimal routing. The algorithm was implemented in milestone 2, which expands on the basic functionalities set up in milestone 1.
The A* algorithm is chosen for its efficiency and accuracy in finding the shortest path. It combines the strengths of Dijkstra’s algorithm and a heuristic approach to estimate the shortest path to the destination. While Dijkstra’s algorithm explores all possible paths equally, A* uses heuristics to prioritize paths that are more likely to lead to the goal, significantly reducing computation time.
A* operates by maintaining a priority queue of nodes to explore, prioritizing them based on their total estimated cost (f(n) = g(n) + h(n)
), where:
g(n)
is the cost from the start node to noden
.h(n)
is the heuristic estimated cost from noden
to the goal.
The algorithm continuously expands the most promising node until it reaches the goal, ensuring the shortest path is found.
WaveElem | A* Search |
---|---|
![]() |
![]() |
Pathfinding is a critical feature of the Ultimate EV Mapper, enabling users to find the most efficient routes between two points. Our pathfinding algorithm is primarily based on the A* search algorithm, known for its efficiency and accuracy in determining the shortest path. In scenarios where heuristic information might not be available or accurate, we also implement Dijkstra’s algorithm to ensure robustness.
While A* is the primary algorithm used, we also implemented Dijkstra’s algorithm for scenarios where the heuristic information might not be available or accurate. Dijkstra’s algorithm ensures we can still find the shortest path by exploring all possible routes equally, which can be useful in more complex routing scenarios like the Travelling Courier problem.
We implemented several methods to ensure user inputs are valid and provide helpful feedback when they are not. These methods are crucial for a smooth user experience and are handled within m2.cpp
.
Entry warning for Invalid Street Intersection Names
Autocomplete suggestions when a partial street intersection name is entered
Error message for multiple street intersections
Instructions given when help button is clicked
One of our key features is locating the nearest EV charging station based on the user's current location or input. This feature is integrated within m3.cpp
, which focuses on real-time data integration.
Visual of closest EV station and highlighted intersection
The app provides live updates on wind speed and direction, which can be crucial for planning EV trips. This functionality is also part of the real-time data integration handled in m3.cpp
.
Visual of wind speed and direction near highlighted intersection
Real-time weather conditions are integrated into the map to help users plan their journeys better. This feature is implemented in m3.cpp
.
Visual of wind speed and direction near highlighted intersection
Users can view categorized points of interest along their routes, enhancing the travel experience. This feature, implemented in m3.cpp
, adds an extra layer of utility for users.
Points of Interest Categorized And Displayed
We implemented a multi-Dijkstra algorithm for the travelling courier feature, which optimizes multiple delivery routes simultaneously. This complex feature is handled in m4.cpp
.
Code snippet of multi-Dijkstra algorithm
We compared our pathfinding algorithms with those used by competitors like Google Maps and Waze. The comparison highlights the strengths of our approach, particularly in terms of EV-specific features.
Comparison table between our competitors and our map
Our future plans include integrating more real-time data sources and improving user interaction features. We aim to address four major gaps identified during the project:
- EV Station Details: Enhance the details provided for EV stations, similar to PlugShare.
- Live Traffic Data: Integrate live traffic data, akin to Waze.
- POI Reviews: Incorporate reviews for points of interest, similar to Google Maps.
- Crowd Sourced Data: Use crowd-sourced data to provide information on speed cams, construction, and other road conditions.
The Ultimate EV Mapper aims to revolutionize the way electric vehicle users navigate and plan their trips by providing real-time data, accurate routing, and a host of additional features to enhance the user experience.
Thank you for visiting our repository!