[MUSIC] In this video, we're going to go over the nice features that you're going to add as graphic user interface based on your project of this week. So first off, how do you load this graphic user interface? To get to this, you'll go to src > application > MapApp. You're going to run this class file and that's gonna produce the interface that you're seeing here. This interface is written in Java fax that interface is the Google Maps API. Using the Google Maps API allows us to see this nice image of the map as well as zoom in and zoom out, but we're not gonna be using the intersection data that Google Maps has. We're gonna be producing our own. So let me show you an example of this. So within this interface, you'll go under choose nav file and you're gonna pull up something like the utc maps and pull Show Intersections. Now this map file contains a whole bunch of intersections that we've pulled from a region right next to UC San Diego. These intersections are what we're gonna be able to explore in doing routing. So if I wanna go from say, this point as a start point to this point as an end point. I can now show a route with that using a Breadth First Search. Now, none of these features that I just showed there being able to show that route and will work until you finish this assignment. You're gonna make sure that you've written your map to our class, created your hierarchy and written a Breadth First Search before that search that I just did would work So second piece I'm going to show you is how you can pull data from the area around you rather than having to use the maps that we provided from around San Diego and around La Hoya. So if we zoom in on an area say, Pullman, Washington, which is where I grew up. And I can zoom in and you don't want to try to fetch data from a large set of the world. If you try to pull all intersections data from the most zoomed out view that is way too big, the application will definitely crash. But if you zoom into a small area, now lets say, I pull up this small little area of Pullman, Washington and I would go over to fetch data and type in something like Pullman map and I'll press fetch data. And you'll get a pop-up window that looks like this that says, fetching data for the current map. In just a few seconds, it will report back that it's found the data. It has finished pulling the data and now have a pullman.map, that's been written to the file. So if I wanna pull-up that pullman.map, I'm gonna have to do a couple of steps. So you'll notice if I try to search the map files right now, I can pull-up Pullman. You can do Show Intersections and we'll see all the data that just got pulled. So this is how you can do this for your region around you, so you can enjoy working with the data perhaps a bit more. The next feature I'd like to show you, I'm gonna go back to that UTC data that's around San Diego. So, I'm pulling back up those intersections. I'm gonna again, find a route. So let's say, going from here as a start point to here, as and end point. I'm gonna use Breadth First Search, because Breadth First Search is the piece that you're gonna implement this week. You can do show route and it'll show you the route from the start point to the destination. One nice feature, if you add the hooks that we discuss in the writeup about reporting to this application, which nodes you're visiting as you do the search? You can then run Start Visualization. And what Start Visualization's gonna do is, it's gonna show you the map as it's explored. It's gonna show you all the nodes that it's visiting in its attempt to try to find that path from the start to the goal. Now that it's found a goal, it's stopped. Now this visualization piece is actually gonna be much more interesting in next week for week three. The last piece is that there are some really nice features in this interface, but it's not gonna have all the features that you might expect from Google Maps. You're limited to being able to work with the intersection data that you pulled with, instead of being able to say, zoom in and zoom out from a huge set of data at all times. Now if you think about it, Google Maps was developed by a team of software engineers over a number of years and they have a huge data center that supports all the map data that they have. On top of that, they've had a fleet of cars driving around the world getting this kind of map data for a long time. So it's unrealistic for us to expect that our application's gonna look exactly like Google Maps or have all the features that Google Maps has, but being able to find a route from one location to another using your own data structures in your own searches is really cool. So, I hope you have some fun with this project. Good luck.