Each instance represents a waypoint recorded by a Global
Positioning System. See the
definition of the
gps element in the
The string representing the coordinates is required; textual description is optional.
# - - - - - c l a s s G p s class Gps: """Represents a GPS waypoint. Exports: Gps(waypoint, text=None): [ (waypoint is a lat-long as a string) and (text is a description as a string, or None) -> if waypoint is a valid lat-long string -> return a new Gps instance with those values else -> raise ValueError ] .waypoint: [ as passed to constructor, read-only ] .text: [ as passed to constructor, read-write ] .latLon: [ a terrapos.LatLon instance representing self.waypoint ] Gps.readNode(node): # Static method [ node is an rnc.GPS_N node as an et.Element -> if node conforms to
birdnotes.rnc-> return a new Gps instance representing node else -> raise IOError ] .writeNode(parent): [ parent is an et.Element instance -> parent := parent with a new rnc.GPS_N node added representing self return that new node ] """
In addition to the usual work of storing copies of the
constructor's arguments, we'll use the
terrapos module to valid the structure of the
waypoint string, and store the equivalent
LatLon instance as well.
# - - - G p s . _ _ i n i t _ _ def __init__(self, waypoint, text=None): """Constructor for Gps """ #-- 1 -- self.waypoint = waypoint self.text = text #-- 2 -- # [ if waypoint is a valid lat-lon as a string -> # self.latLon := a terrapos.LatLon instance # representing waypoint # else -> raise ValueError ] self.latLon = terrapos.scanLatLon(waypoint)