JMU JMU - Department of Computer Science
Help Tools
PA3: Cartogrpahy


1 Purpose

The primary purpose of this assignment is to help you review (and demonstrate that you have acquired) the knowledge and skills required to create simple cartographic applications. This includes working with coordinate systems, transformations, and map projections.

2 Overview

Nearby is a (fictitious) company that develops personal navigation systems, en-route and mobile commerce systems, location-based services, and geographic tracking/location services. They are in the process of developing a personal navigation system called Way. They have hired you to construct several interfaces/classes that could be used to draw base maps of various kinds.

3 Design Document

Nearby has provided you with the following design document:

(They have also provided you with an SVG version of the engineering design which can be enlarged in most prowsers. It is named design.svg.)

4 Existing Code

Nearby has provided you with the source code for the CartographyPanel class so that you do not have to implement the functionality for zooming in and out.

They have also provided you with the MapProjection interface and AbstractMapProjection class to remind you that you must convert between radians and degrees.

5 Testing

You should write unit tests for the geography and math packages, but you are not required to do so.

You must also perform system testing on all of the components you write. Nearby has provided you with the following classes and data files that you can use for this purpose.

PA3App.java
PA3Driver.java

rockingham-streets.geo (Streets in Rockingham County)
usa48-counties.geo (County Boundaries for the 48 Contiguous States)
usa48-states.geo (State Boundaries for the 48 Contiguous States)
va-blocks.geo (Census Block Boundaries for Virginia)
va-counties.geo (County Boundaries for Virginia)
world-countries.geo (Country Boundaries for the World

The data files must be accessed from the current working directory (i.e., they must not be accessed using a path). In Eclipse, this means that you must copy the files into the project directory/folder (not the src folder or any folder underneath it).

6 Submission

You must submit (to the PA3_Java assignment on Gradescope) a .zip file named pa3.zip that contains all of the code necessary to run PA3Driver.java and test you code (packaged appropriately). It must not contain any data files. There is no limit on the number of submissions and no penalty for excessive submissions.

You must submit (to the PA3_Screenshot assignment on Gradescope) a .pdf file that contains screenshots of the maps drawn by your code for the files rockingham-streets.geo and world-countries.geo.

7 Grading

You will receive one of four grades on this assignment -- 100, 75, 50, or 0. You will receive a grade of 100 if your code is essentially correct (i.e., there are a small number of defects). You will receive a grade of 75 if you appear to have devoted significant effort to the assignment but your code has significant defects. You will receive a grade of 50 if you devoted a reasonable amount of effort to the assignment but your code has doesn't really work. You will receive a grade of 0 otherwise and/or if the code you submit to Gradescope contains any style defects.

The Gradescope autograder will assign a maximum grade of 25 (based solely on style). Points will then be awarded manually based on the criteria discussed in the previous paragraph.

Copyright 2025