Difference between revisions of "MeeshQuest"

From CMSC 420
Line 22: Line 22:
 
== Output ==
 
== Output ==
  
When required to print [http://en.wikipedia.org/wiki/XML XML] for output, you can use the same handy [http://wam.umd.edu/~bzoller/cmsc420/doc/cmsc420/xml/XmlUtility.html 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]. When required to print [http://en.wikipedia.org/wiki/XML XML] for output, you can use the same handy [http://wam.umd.edu/~bzoller/cmsc420/doc/cmsc420/xml/XmlUtility.html XmlUtility] [http://www.cs.umd.edu/users/meesh/420/spr07/part1/p11/node21.html].
  
 
== City Objects ==  
 
== City Objects ==  

Revision as of 07:46, 1 October 2009

The idea of the MeeshQuest project is to emulate some of the functionality of map sites like MapQuest or 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 project is divided into 3 parts:

(Remember: if you think this page could be better -- you can change it! Click the "edit" tab up top to get started.)

Data Structures[edit]

There are three main concepts for this project:

  1. Data Dictionary (TreeMaps and TreeSets for part 1, B-tree for parts 2 and 3)
  2. Spatial Map (PR Quadtree for part 1, PM3 Quadtree for part 2)
  3. 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 automatically mapped in the spatial map.

Input[edit]

The input comes in the form of XML [1]; a handy XmlUtility for parsing the input is provided [2].

Output[edit]

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 [3]. When required to print XML for output, you can use the same handy XmlUtility [4].

City Objects[edit]

You will want to create a City object to store basic information about cities; the spec recommends extending java.awt.geom.Point2D.Float [5].

Visualization[edit]

Since this is a visual project, it will help to be able to visualize your data structures. A nice graphics library called CanvasPlus [6] makes this visualization easy.