* Class *GeoVector* is now an abstract class to ensure that any subclasses use the correct API * Added methods *range180* and *range360* to class *Longitude* to interconvert between longitudes reported -180 to 180 format and those reported in 0 to 360 format. To ensure that all operations such as hemisphere assignment work as expected, longitudes reported in 0 to 360 format are automatically converted into -180 to 180 format when the *Longitude* object is initialized.
1.0.1
========================
* Fixed issue with where attribute *theta* in *GeoVector* was treated in some cases like a heading (i.e. starting with due north and continuing clockwise) even though it was in fact an angle (i.e. starting with (1, 0) and continuing anti-clockwise). The attribute name has now been changed to *heading* to eliminate confusion. The local variable *theta* is used for computations involving angle. * Added testing functions with *pytest* for class *latlon* and *GeoVector* * Added *almost_equal* methods to class *latlon* and *GeoVector* to deal with float errors in decimal degree specification * *latlon.project* now returns *(x, y)* instead of *(y, x)* to be more consistent with the accepted convention.
0.91
=====================
* *degree*, *minute* and *second* attributes for *GeoCoord* class are now coerced to type *float*
0.90
=====================
* Updated magic methods for *GeoCoord* class * Added option for instantiating *latlon* from scalars
0.80
=====================
* Added *GeoVector* class to handle vectors between two *LatLon* objects * Cleaned up *__str__* and *__repr__* methods for *LatLon*, *Latitude*, *Longitude*, *GeoCoord*, and *GeoVector* classes
0.70
=====================
* Deprecated *latlon.distance_sphere* method. From now on use *distance(other, ellipse = 'sphere')* instead * Added *latlon.bearing* method to return the initial bearing between two *latlon* objects * Added *latlon.offset* method to return a new latlon object that is computed from an initial latlon object plus a bearing and distance