View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

RF M5 Cases Page

Problem:

Using M4 as the foundation:

Analysis:

So the milestone suggested two ways to find a route between 2 buildings: use MapQuest or do it by hand. MapQuest isn't too reliable; If an error occurs, it would be difficult to find out what caused it, or how to fix it. And, learning how to mine web pages would be too time consuming. Plus, doing it by hand would allow our routing functionality to be compatible for the next 2 milestones. As for the UI, we originally decided to have the zoomInMode, zoomOutMode and findPath buttons as well as the building list on the bottom of the screen, below the campus map.

Design:

Shown below is our original UML class diagram. We basically added the MapRoute and MapRouter classes to implement the route finding. Map2D would actually retrieve the route from MapRouter and display it on the Map2DMorph. MapRoute was added in anticipation of the MapTour functionality of m6 and m7. MapRoute consists of a path between 2 buildings while MapTour is just a set of paths between pairs of buildigs. To reflect the changes in the UI we added 1 button: findPath, which instructed the user (via popUpMenus) to select 2 buildings in order to find a path between them.

Uploaded Image: p5uml.gif

Implementation:

So how does it work? Essentially, MapRouter uses an alogithm loosely based on a Beadth First Search to find a path between 2 buildings. The Map2D uses the set of points from MapRouter and a red pen to draw the route on the Map2DMorph. Map2D also would respond to the findPath button clicks, but would pass the start and end buildings to MapRouter. See attached code below. Here are a few pictures of the UI and its operation on finding a path.
Milestone 5 code: GTMapP5-252.st

Uploaded Image: ui-path1.gif
User clicks on findPath button, selects Skiles as a starting building.

Uploaded Image: ui-path2.gif
User chooses to end at Howey Physics.

Uploaded Image: ui-path3.gif
The route is drawn on the map.

Evaluation:

Hindsight is 20/20. For the UI, it probably would have been better to place the buttons and list to the left hand side. The list view panel is incredibly small, and is covered up by popUpMenus when the user clicks on the findPath button. The MapRoute and MapRouter classes did come in handy when creating MapTours for m6 and m7. It's unfortunately that we could only get the routing to work for about 80% of the buildings on the campus map. Evidently, there were a few bugs in the algorithm. As expected, this error would bleed over into the drawing of the actual route on the map.

Uploaded Image: ui-revised.gif
A revised version of the m5 UI.

Link to this Page