JMU JMU - Department of Computer Science
Help Tools
PA4: Cartography and Geocoding


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 cartographic applications that involve streets and intersections.

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 street maps of various kinds and to geocode street addresses.

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

They have provided you with the following classes:

5 Testing

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

You must 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.

app/PA4App.java
app/PA4Driver.java

rockingham-streets.geo (Geographic Shapes for Streets in Rockingham County)
rockingham-streets.str (Street Segments in Rockingham County)
virginia-streets.geo (Geographic Shapes for Streets in Virginia)
virginia-streets.str (Street Segments for Streets in Virginia)

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 PA4_Java assignment on Gradescope) a .zip file named pa4.zip that contains all of the code necessary to run PA4Driver.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 PA4_Screenshot assignment on Gradescope) a .pdf file that contains screenshots like those in the write-up that show the geocoding for "600 S Main St" and "351 Stone Spring Rd" for the Rockingham County data files.

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