๐บ๏ธ Bear Map is a mapping web application project similar to Google maps, which covers the region of Berkeley, California. The map utilizes real-world mapping data from OpenStreetMap and various generic data structures to perform image rastering, graph building, routing, and auto-completion etc..
Corner cases such as users explore areas completely outside of the map have not been handled when constructing the result. Require fix after major features are implemented.
Having each node storing a value and the best value of its substring, so that the tree will not have to loop through all of its children, but instead look for children in the order of "best".
RemoveSmallest() returns null when removing an item from the heap of lowest priority value where the item to be removed is the only item left in the heap, which will in turn causes the implementation of Dijkstra's algorithm to throw a null pointer exception.
java.util.NoSuchElementException
at Router.ArrayHeapMinPQ.changePriority(ArrayHeapMinPQ.java:169)
at Router.Router.relaxEdgeFrom(Router.java:76)
at Router.Router.shortestPath(Router.java:59)
at TestRouterTiny.test41to46(TestRouterTiny.java:50)
java.util.NoSuchElementException
at Router.ArrayHeapMinPQ.changePriority(ArrayHeapMinPQ.java:169)
at Router.Router.relaxEdgeFrom(Router.java:76)
at Router.Router.shortestPath(Router.java:59)
at TestRouterTiny.test66to55(TestRouterTiny.java:61)
Update The issue is believed to be linked with sink() in ArrayMinPQ(). Note sink() has never been tested before
Inner-class Edge might not be required, since distance() calculates the distance between two nodes. However, the removal of the Edge class might require refactoring in GraphBuildingHandler and GraphDB.
The justification for keeping this class might be an improvement in performance in runtime, which also requires refactoring of GraphDB class.
This is to be determined after path searching implementation is done.