Changes

710 bytes added ,  01:27, 6 February 2017
Line 1: Line 1:  
The idea of the MeeshQuest project is to emulate some of the functionality of map sites like [http://www.mapquest.com/ MapQuest] or [http://maps.google.com/ Google Maps].  We will need a database of cities, which are just named points in the plane.  From this, we want to be able to draw pictures of a given region showing the cities contained in that region.  We will get cities from the database and insert them into a spatial data structure that can be used to draw a picture.  The basic spatial data structure we will use is a [[quadtree]] -- a sort of 2-dimensional binary search tree.  
 
The idea of the MeeshQuest project is to emulate some of the functionality of map sites like [http://www.mapquest.com/ MapQuest] or [http://maps.google.com/ Google Maps].  We will need a database of cities, which are just named points in the plane.  From this, we want to be able to draw pictures of a given region showing the cities contained in that region.  We will get cities from the database and insert them into a spatial data structure that can be used to draw a picture.  The basic spatial data structure we will use is a [[quadtree]] -- a sort of 2-dimensional binary search tree.  
   −
The spec is divided into 3 parts:
+
The project is divided into 4 parts:
 
*[[Part 1]]
 
*[[Part 1]]
 
*[[Part 2]]
 
*[[Part 2]]
 
*[[Part 3]]
 
*[[Part 3]]
 +
*[[Part 4]]
    
(Remember: if you think this page could be better -- you can change it!  Click the "edit" tab up top to get started.)
 
(Remember: if you think this page could be better -- you can change it!  Click the "edit" tab up top to get started.)
    
== Data Structures ==
 
== Data Structures ==
There are two main concepts for this project:
+
There are three main concepts for this project:
 
# Data Dictionary (TreeMaps and TreeSets for part 1, B-tree for parts 2 and 3)
 
# Data Dictionary (TreeMaps and TreeSets for part 1, B-tree for parts 2 and 3)
# Spatial Map (PR Quadtree for part 1, PM3 Quadtree for part 2)
+
# Spatial Map ([[PR Quadtree]] for part 1, [[PM Quadtree#PM3 Quadtree | PM3 Quadtree]] for part 2)
 +
# Road Adjacency List
   −
An important concept to remember is that the data dictionary is not the same as the spatial map. If you create a city, it is not mapped in the spatial map.
+
An important concept to remember is that the data dictionary is not the same as the spatial map. If you create a city, it is not automatically mapped in the spatial map.
    
== Input ==
 
== Input ==
   −
The input comes in the form of [http://en.wikipedia.org/wiki/XML XML] [http://www.cs.umd.edu/users/meesh/420/spr07/part1/p11/node19.html]; a handy [[XmlUtility]] for parsing the input is provided [http://www.cs.umd.edu/users/meesh/420/spr07/part1/p11/node20.html].
+
The input comes in the form of [http://en.wikipedia.org/wiki/XML XML]; a handy [https://www.cs.umd.edu/users/meesh/420/ProjectBook/cmsc420util.jar XmlUtility] for parsing the input is provided. If you are not familiar with XML, w3schools has a great tutorial that can be found [http://www.w3schools.com/xml/ here]. The spec also has a decent amount of information on how to parse the XML.
    
== Output ==
 
== Output ==
   −
When required to print [http://en.wikipedia.org/wiki/XML XML] for output, you can use the same handy [[XmlUtility]] [http://www.cs.umd.edu/users/meesh/420/spr07/part1/p11/node21.html].
+
Output is stored in a DOM object that represents an XML file. A DOM document consists of a root Element that has any number of child Elements, each of which can have any number of child Elements. The DOM document building is handled by [http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/Document.html org.wc3.dom.Document]. When required to print [http://en.wikipedia.org/wiki/XML XML] for output, you can use the same handy [https://www.cs.umd.edu/users/meesh/420/ProjectBook/cmsc420util.jar XmlUtility]. The spec has a decent amount of information on how to use the utility to write to the DOM object.
    
== City Objects ==  
 
== City Objects ==  
   −
You will want to create a <code>City</code> object to store basic information about cities; the spec recommends extending <code>java.awt.geom.Point2D.Float</code> [http://www.cs.umd.edu/users/meesh/420/spr07/part1/p11/node23.html].
+
You will want to create a <code>City</code> object to store basic information about cities; the spec recommends extending <code>[http://java.sun.com/j2se/1.5.0/docs/api/java/awt/geom/Point2D.Float.html java.awt.geom.Point2D.Float]</code>.
    
== Visualization ==
 
== Visualization ==
   −
Since this is a visual project, it will help to be able to visualize your data structures.  A nice graphics library called [[CanvasPlus]] [http://www.cs.umd.edu/users/meesh/420/spr07/part1/p11/node24.html] makes this visualization easy.
+
Since this is a visual project, it will help to be able to visualize your data structures.  A nice graphics library called [http://wam.umd.edu/~bzoller/cmsc420/doc/cmsc420/drawing/CanvasPlus.html CanvasPlus] [http://www.cs.umd.edu/users/meesh/420/spr07/part1/p11/node24.html] makes this visualization easy.
editor
32

edits