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