The scroll and zoom functions are done by map rastering (converting user's viewing frame into desired image/bitmap). We do this by using a QuadTree data structure to contruct overall map images from smaller component "pixels."
Location search is possible through the OpenStreetMaps metadata that we import. Using a Trie data structure, we can reliable include autocomplete our search bar.
We implement routing and path finding by constructing a Graph using all the location data that we import. We then run A* search to find the shortest path between any two abitrary points ( A ⇒ B ).