887 lines
33 KiB
Plaintext
887 lines
33 KiB
Plaintext
A reverse chronological list of changes to GeographicLib
|
|
|
|
For more information, see
|
|
|
|
http://geographiclib.sourceforge.net/
|
|
|
|
The current version of the library is 1.34.
|
|
|
|
Changes between 1.34 (released 2013-12-11) and 1.33 versions:
|
|
|
|
* Many changes in cmake support:
|
|
+ minimum version of cmake needed increased to 2.8.4 (which was
|
|
released in 2011-02);
|
|
+ allow building both shared and static librarys with
|
|
-D GEOGRAPHICLIB_LIB_TYPE=BOTH;
|
|
+ both shared and static libraries (Release plus Debug) included in
|
|
binary installer;
|
|
+ find_package uses COMPONENTS and GeographicLib_USE_STATIC_LIBS to
|
|
select the library to use;
|
|
+ find_package version checking allows nmake and Visual Studio
|
|
generators to interoperate on Windows;
|
|
+ find_package (GeographicLib ...) requires that GeographicLib be
|
|
capitalized correctly;
|
|
+ on Unix/Linux, don't include the version number in directory for
|
|
the cmake configuration files;
|
|
+ defaults for GEOGRAPHICLIB_DOCUMENTATION and
|
|
BUILD_NETGEOGRAPHICLIB are now OFF;
|
|
+ the GEOGRAPHICLIB_EXAMPLES configuration parameter is no longer
|
|
used; cmake always configures to build the examples, but they are
|
|
not built by default (instead build targets: exampleprograms and
|
|
netexamples);
|
|
+ matlab-all target renamed to matlabinterface;
|
|
+ the configuration parameters PACKAGE_PATH and INSTALL_PATH are
|
|
now deprecated (use CMAKE_INSTALL_PREFIX instead);
|
|
+ on Linux, the installed package is relocatable;
|
|
+ on MacOSX, the installed utilities can find the shared library.
|
|
|
|
* Use a more precise value for OSGB::CentralScale().
|
|
|
|
* Add Arc routines to python interface.
|
|
|
|
* The Geod utility has been removed; the same functionality lives on
|
|
with GeodSolve (introduced in version 1.30).
|
|
|
|
Changes between 1.33 (released 2013-10-08) and 1.32 versions:
|
|
|
|
* Add NETGeographic .NET wrapper library (courtesy of Scott Heiman).
|
|
|
|
* Make inspector functions in GeographicLib::Ellipsoid const.
|
|
|
|
* Add Accumulator.cpp to instantiate GeographicLib::Accumulator.
|
|
|
|
* Defer some of the initialization of GeographicLib::OSGB to when it
|
|
is first called.
|
|
|
|
* Fix bug in autoconf builds under MacOS.
|
|
|
|
Changes between 1.32 (released 2013-07-12) and 1.31 versions:
|
|
|
|
* Generalize C interface for polygon areas to allow vertices to be
|
|
specified incrementally.
|
|
|
|
* Fix way flags for C++11 support are determined.
|
|
|
|
Changes between 1.31 (released 2013-07-01) and 1.30 versions:
|
|
|
|
* Changes breaking binary compatibility (source compatibility is
|
|
maintained):
|
|
+ overloaded versions of DMS::Encode,
|
|
EllipticFunction::EllipticFunction, and
|
|
GeoCoords::DMSRepresentation, have been eliminated by the use of
|
|
optional arguments;
|
|
+ correct the declaration of first arg to UTMUPS::DecodeEPSG.
|
|
|
|
* FIX BUG in GeographicLib::GravityCircle constructor (found by
|
|
Mathieu Peyréga) which caused bogus results for the gravity
|
|
disturbance and gravity anomaly vectors. (This only affected
|
|
calculations using GravityCircle. GravityModel calculations did not
|
|
suffer from this bug.)
|
|
|
|
* Improvements to the build:
|
|
+ add macros GEOGRAPHICLIB_VERSION_{MAJOR,MINOR,PATCH} to Config.h;
|
|
+ fix documentation for new version of perlpod;
|
|
+ improving setting of runtime path for Unix-like systems with
|
|
cmake;
|
|
+ install PDB files when compiling with Visual Studio to aid
|
|
debugging;
|
|
+ Windows binary release now uses Matlab R2013a (64-bit) and uses
|
|
the -largeArrayDims option.
|
|
|
|
* Changes to the geodesic routines:
|
|
+ add Java implementation of the geodesic routines (thanks to Skip
|
|
Breidbach for the maven support);
|
|
+ FIX BUG: avoid altering input args in Fortran implementation;
|
|
+ more systematic treatment of very short geodesic;
|
|
+ fixes to python port so that they work with version 3.x, in
|
|
addition to 2.x (courtesy of Amato);
|
|
+ accumulate the perimeter and area of polygons via a double-wide
|
|
accumulator in Fortran, C, and Matlab implementations (this is
|
|
already included in the other implementations);
|
|
+ port PolygonArea::AddEdge and PolygonArea::TestEdge to JavaScript
|
|
and python interfaces;
|
|
+ include documentation on short geodesics.
|
|
|
|
* Unix scripts for downloading datasets,
|
|
geographiclib-get-{geoids,gravity,magnetic}, skip already download
|
|
models by default, unless the -f flag is given.
|
|
|
|
* FIX BUGS: meridian convergence and scale returned by
|
|
TransverseMercatorExact was wrong at a pole.
|
|
|
|
* Improve efficiency of MGRS::Forward by avoiding the calculation of
|
|
the latitude if possible (adapting an idea of Craig Rollins).
|
|
|
|
* Fixes to the way the Matlab interface routines are built (thanks to
|
|
Phil Miller and Chris F.).
|
|
|
|
Changes between 1.30 (released 2013-02-27) and 1.29 versions:
|
|
|
|
* Changes to geodesic routines:
|
|
+ fix BUG in fail-safe mechanisms in Geodesic::Inverse;
|
|
+ the command line utility Geod is now called GeodSolve;
|
|
+ allow addition of polygon edges in PolygonArea;
|
|
+ add full Maxima implementation of geodesic algorithms.
|
|
|
|
Changes between 1.29 (released 2013-01-16) and 1.28 versions:
|
|
|
|
* Changes to allow compilation with libc++ (courtesy of Kal Conley).
|
|
|
|
* Add description of geodesics on triaxial ellipsoid to
|
|
documentation.
|
|
|
|
* Update journal reference for "Algorithms for geodesics".
|
|
|
|
Changes between 1.28 (released 2012-12-11) and 1.27 versions:
|
|
|
|
* Changes to geodesic routines:
|
|
+ compute longitude difference exactly;
|
|
+ hence fix BUG in area calculations for polygons with vertices very
|
|
close to the prime meridian;
|
|
+ fix BUG is geoddistance.m where the value of m12 was wrong for
|
|
meridional geodesics;
|
|
+ add Matlab implementations of the geodesic projections;
|
|
+ remove unneeded special code for geodesics which start at a pole;
|
|
+ include polygon area routine in C and Fortran implementations;
|
|
+ add doxygen documentation for C and Fortran libraries.
|
|
|
|
Changes between 1.27 (released 2012-11-29) and 1.26 versions:
|
|
|
|
* Changes to geodesic routines:
|
|
+ add native Matlab implementations: geoddistance.m, geodreckon.m,
|
|
geodarea.m;
|
|
+ add C and Fortran implementations;
|
|
+ improve the solution of the direct problem so that the series
|
|
solution is accurate to round off for |f| < 1/50;
|
|
+ tighten up the convergence criteria for solution of the inverse
|
|
problem;
|
|
+ no longer signal failures of convergence with NaNs (a slightly
|
|
less accurate answer is returned instead).
|
|
|
|
* Fix DMS::Decode double rounding BUG.
|
|
|
|
* On MacOSX platforms with the cmake configuration, universal
|
|
binaries are built.
|
|
|
|
Changes between 1.26 (released 2012-10-22) and 1.25 versions:
|
|
|
|
* Replace the series used for geodesic areas by one with better
|
|
convergence (this only makes an appreciable difference if |f| >
|
|
1/150).
|
|
|
|
Changes between 1.25 (released 2012-10-16) and 1.24 versions:
|
|
|
|
* Changes to geodesic calculations:
|
|
+ restart Newton's method in Geodesic::Inverse when it goes awry;
|
|
+ back up Newton's method with the bisection method;
|
|
+ Geodesic::Inverse now converges for any value of f;
|
|
+ add GeodesicExact and GeodesicLineExact which are formulated in
|
|
terms of elliptic integrals and thus yield accurate results
|
|
even for very eccentric ellipsoids.
|
|
+ the -E option to Geod invokes these exact classes.
|
|
|
|
* Add functionality to EllipticFunction:
|
|
+ add all the traditional elliptic integrals;
|
|
+ remove restrictions on argument range for incomplete elliptic
|
|
integrals;
|
|
+ allow imaginary modulus for elliptic integrals and elliptic
|
|
functions;
|
|
+ make interface to the symmetric elliptic integrals public.
|
|
|
|
* Allow GeographicLib::Ellipsoid to be copied.
|
|
|
|
* Changes to the build tools:
|
|
+ cmake uses folders in Visual Studio to reduce clutter;
|
|
+ allow precision of reals to be set in cmake;
|
|
+ fail gracefully in the absence of pod documentation tools;
|
|
+ remove support for maintainer tasks in Makefile.mk.
|
|
|
|
Changes between 1.24 (released 2012-09-22) and 1.23 versions:
|
|
|
|
* Allow the specification of the hemisphere in UTM coordinates in
|
|
order to provide continuity across the equator:
|
|
+ add UTMUPS::Transfer;
|
|
+ add GeoCoords::UTMUPSRepresentation(bool, int) and
|
|
GeoCoords::AltUTMUPSRepresentation(bool, int);
|
|
+ use the hemisphere letter in, e.g., GeoConvert -u -z 31N.
|
|
|
|
* Add UTMUPS::DecodeEPSG and UTMUPS::EncodeEPSG.
|
|
|
|
* cmake changes:
|
|
+ restore support for cmake 2.4.x;
|
|
+ explicitly check version of doxygen.
|
|
|
|
* Fix building under cygwin.
|
|
|
|
* Document restrictions on f in the Introduction.
|
|
|
|
* Fix python interface to work with version 2.6.x.
|
|
|
|
Changes between 1.23 (released 2012-07-17) and 1.22 versions:
|
|
|
|
* Documentation changes:
|
|
+ remove html documentation from distribution and use web links if
|
|
doxygen is not available;
|
|
+ use doxygen tags to document exceptions;
|
|
+ begin migrating the documentation to using Greek letters where
|
|
appropriate (requires doxygen 1.8.1.2 or later).
|
|
|
|
* Add Math::AngNormalize and Math::AngNormalize2; the allowed range
|
|
for longitudes and azimuths widened to [-540d, 540d).
|
|
|
|
* DMS::Decode understands more unicode symbols.
|
|
|
|
* Geohash uses geohash code "nan" to stand for not a number.
|
|
|
|
* Add Ellipsoid::NormalCurvatureRadius.
|
|
|
|
* Various fixes in LambertConformalConic, TransverseMercator,
|
|
PolarStereographic, and Ellipsoid to handle reverse projections of
|
|
points near infinity.
|
|
|
|
* Fix programming blunder in LambertConformalConic::Forward (incorrect
|
|
results were returned if the tangent latitude was negative).
|
|
|
|
Changes between 1.22 (released 2012-05-27) and 1.21 versions:
|
|
|
|
* Add Geohash and Ellipsoid classes.
|
|
|
|
* Fix bug in AlbersEqualArea of very prolate ellipsoids (b^2 > 2
|
|
a^2).
|
|
|
|
* cmake changes:
|
|
+ optionally use PACKAGE_PATH and INSTALL_PATH to determine
|
|
CMAKE_INSTALL_PREFIX;
|
|
+ use COMMON_INSTALL_PATH to determine layout of installation
|
|
directories;
|
|
+ as a consequence, the installation paths for the documentation,
|
|
and python and matlab interfaces are shortened for Windows;
|
|
+ zip source distribution now uses DOS line endings;
|
|
+ the tests work in debug mode for Windows;
|
|
+ default setting of GEOGRAPHICLIB_DATA does not depend on
|
|
CMAKE_INSTALL_PREFIX;
|
|
+ add a cmake configuration for build tree.
|
|
|
|
Changes between 1.21 (released 2012-04-25) and 1.20 versions:
|
|
|
|
* Support colon-separated DMS output:
|
|
+ DMS::Encode and GeoCoords::DMSRepresentation generalized;
|
|
+ GeoConvert and Geod now accept a -: option.
|
|
|
|
* GeoidEval does not print the gradient of the geoid height by default
|
|
(because it's subject to large errors); give the -g option to get
|
|
the gradient printed.
|
|
|
|
* Work around optimization BUG in GeographicLib::Geodesic::Inverse
|
|
with tdm mingw g++ version 4.6.1.
|
|
|
|
* autoconf fixed to ensure that that out-of-sources builds work;
|
|
document this as the preferred method of using autoconf.
|
|
|
|
* cmake tweaks:
|
|
+ simplify the configuration of doxygen;
|
|
+ allow the Matlab compiler to be specified with the MATLAB_COMPILER option.
|
|
|
|
Changes between 1.20 (released 2012-03-23) and 1.19 versions:
|
|
|
|
* cmake tweaks:
|
|
+ improve find_package's matching of compiler versions;
|
|
+ CMAKE_INSTALL_PREFIX set from CMAKE_PREFIX_PATH if available;
|
|
+ add "x64" to the package name for the 64-bit binary installer;
|
|
+ fix cmake warning with Visual Studio Express.
|
|
|
|
* Fix SphericalEngine to deal with aggessive iterator checking by
|
|
Visual Studio.
|
|
|
|
* Fix transcription BUG is Geodesic.js.
|
|
|
|
Changes between 1.19 (released 2012-03-13) and 1.18 versions:
|
|
|
|
* Slight improvement in Geodesic::Inverse for very short lines.
|
|
|
|
* Fix argument checking tests in MGRS::Forward.
|
|
|
|
* Add --comment-delimiter and --line-separator options to the utility
|
|
programs.
|
|
|
|
* Add installer for 64-bit Windows; the compiled Matlab interface is
|
|
supplied with the Windows 64-bit installer only.
|
|
|
|
Changes between 1.18 (released 2012-02-18) and 1.17 versions:
|
|
|
|
* Improve documentation on configuration with cmake.
|
|
|
|
* cmake's find_package ensures that the compiler versions match on Windows.
|
|
|
|
* Improve documentation on compiling Matlab interface.
|
|
|
|
* Binary installer for Windows installs under C:/pkg-vc10 by default.
|
|
|
|
Changes between 1.17 (released 2012-01-21) and 1.16 versions:
|
|
|
|
* Work around optimization BUG in Geodesic::Inverse with g++ version
|
|
4.4.0 (mingw).
|
|
|
|
* Fix BUG in argument checking with OSGB::GridReference.
|
|
|
|
* Fix missing include file in SphericalHarmonic2.
|
|
|
|
* Add simple examples of usage for each class.
|
|
|
|
* Add internal documenation to the cmake configuration files.
|
|
|
|
Changes between 1.16 (released 2011-12-07) and 1.15 versions:
|
|
|
|
* Add calculation of the earth's gravitational field:
|
|
+ add NormalGravity GravityModel and GravityCircle classes;
|
|
+ add command line utility Gravity;
|
|
+ add Gravity models;
|
|
+ add Constants::WGS84_GM(), Constants::WGS84_omega(), and similarly
|
|
for GRS80.
|
|
|
|
* Build uses GEOGRAPHICLIB_DATA to specify a common parent directory
|
|
for geoid, gravity, and magnetic data (instead of
|
|
GEOGRAPHICLIB_GEOID_PATH, etc.); similarly, GeoidEval, Gravity, and
|
|
MagneticField, look at the environment variable GEOGRAPHICLIB_DATA
|
|
to locate the data.
|
|
|
|
* Spherical harmonic software changes:
|
|
+ capitalize enums SphericalHarmonic::FULL and
|
|
SphericalHarmonic::SCHMIDT (the lower case names are retained but
|
|
deprecated);
|
|
+ optimize the sum by using a static table of square roots which is
|
|
updated by SphericalEngine::RootTable;
|
|
+ avoid overflow for high degree models.
|
|
|
|
* Magnetic software fixes:
|
|
+ fix documentation BUG in MagneticModel::Circle;
|
|
+ make MagneticModel constructor explicit;
|
|
+ provide default MagneticCircle constructor;
|
|
+ add additional inspector functions to MagneticCircle;
|
|
+ add -c option to MagneticField;
|
|
+ default height to zero in MagneticField.
|
|
|
|
Changes between 1.15 (released 2011-11-08) and 1.14 versions:
|
|
|
|
* Add calculation of the earth's magnetic field:
|
|
+ add MagneticModel and MagneticCircle classes;
|
|
+ add command line utility MagneticField;
|
|
+ add Magnetic models;
|
|
+ add Installing the magnetic field models;
|
|
+ add The format of the magnetic model files;
|
|
+ add classes SphericalEngine, CircularEngine, SphericalHarmonic,
|
|
SphericalHarmonic1, and SphericalHarmonic2. which sum spherical
|
|
harmonic series.
|
|
|
|
* Add Utility class to support I/O and date manipulation.
|
|
|
|
* Cmake configuration includes a _d suffix on the library built in
|
|
debug mode.
|
|
|
|
* For the Python package, include manifest and readme files; don't
|
|
install setup.py for non-Windows systems.
|
|
|
|
* Include Doxygen tag file in distribution as doc/html/Geographic.tag.
|
|
|
|
Changes between 1.14 (released 2011-09-30) and 1.13 versions:
|
|
|
|
* Ensure that geographiclib-config.cmake is relocatable.
|
|
|
|
* Allow more unicode symbols to be used in DMS::Decode.
|
|
|
|
* Modify GeoidEval so that it can be used to convert the height datum
|
|
for LIDAR data.
|
|
|
|
* Modest speed-up of Geodesic::Inverse.
|
|
|
|
* Changes in python interface:
|
|
+ FIX BUG in transcription of Geodesic::Inverse;
|
|
+ include setup.py for easy installation;
|
|
+ python only distribution is available at
|
|
http://pypi.python.org/pypi/geographiclib
|
|
|
|
* Supply a minimal Qt qmake project file for library
|
|
src/Geographic.pro.
|
|
|
|
Changes between 1.13 (released 2011-08-13) and 1.12 versions:
|
|
|
|
* Changes to I/O:
|
|
+ allow : (colon) to be used as a DMS separator in DMS::Decode;
|
|
+ also accept Unicode symbols for degrees, minutes, and seconds
|
|
(coded as UTF-8);
|
|
+ provide optional swaplatlong argument to various DMS and GeoCoords
|
|
functions to make longitude precede latitude;
|
|
+ GeoConvert now has a -w option to make longitude precede latitude
|
|
on input and output;
|
|
+ include a JavaScript version of DMS.
|
|
|
|
* Slight improvement in starting guess for solution of geographic
|
|
latitude in terms of conformal latitude in TransverseMercator,
|
|
TransverseMercatorExact, and LambertConformalConic.
|
|
|
|
* For most classes, get rid of const member variables so that the
|
|
default copy assignment works.
|
|
|
|
* Put Math and Accumulator in their own header files.
|
|
|
|
* Remove unused "fast" GeographicLib::Accumulator method.
|
|
|
|
* Reorganize the Python interface.
|
|
|
|
* Withdraw some deprecated routines.
|
|
|
|
* cmake changes:
|
|
+ include FindGeographic.cmake in distribution;
|
|
+ building with cmake creates and installs
|
|
geographiclib-config.cmake;
|
|
+ better support for building a shared library under Windows.
|
|
|
|
Changes between 1.12 (released 2011-07-21) and 1.11 versions:
|
|
|
|
* Change license to MIT/X11.
|
|
|
|
* Add GeographicLib::PolygonArea class and equivalent Matlab function.
|
|
|
|
* Provide JavaScript and Python implementations of geodesic routines.
|
|
|
|
* Fix Windows installer to include runtime dlls for Matlab.
|
|
|
|
* Fix (innocuous) unassigned variable in Geodesic::GenInverse.
|
|
|
|
* Geodesic routines in Matlab return a12 as first column of aux return
|
|
value (incompatible change).
|
|
|
|
* A couple of code changes to enable compilation with Visual Studio
|
|
2003.
|
|
|
|
Changes between 1.11 (released 2011-06-27) and 1.10 versions:
|
|
|
|
* Changes to Planimeter:
|
|
+ add -l flag to Planimeter for polyline calculations;
|
|
+ trim precision of area to 3 decimal places;
|
|
+ FIX BUG with pole crossing edges (due to compiler optimization).
|
|
|
|
* Geod no longer reports the reduced length by default; however the -f
|
|
flag still reports this and in addition gives the geodesic scales
|
|
and the geodesic area.
|
|
|
|
* FIX BUGS (compiler-specific) in inverse geodesic calculations.
|
|
|
|
* FIX BUG: accommodate tellg() returning -1 at end of string.
|
|
|
|
* Change way flattening of the ellipsoid is specified:
|
|
+ constructors take f argument which is taken to be the flattening
|
|
if f < 1 and the inverse flattening otherwise (this is a
|
|
compatible change for spheres and oblate ellipsoids, but it is an
|
|
INCOMPATIBLE change for prolate ellipsoids);
|
|
+ the -e arguments to the Utility Programs are handled similarly; in
|
|
addition, simple fractions, e.g., 1/297, can be used for the
|
|
flattening;
|
|
+ introduce Constants::WGS84_f() for the WGS84 flattening (and
|
|
deprecate Constants::WGS84_r() for the inverse flattening);
|
|
+ most classes have a Flattening() member function;
|
|
+ InverseFlattening() has been deprecated (and now returns inf for a
|
|
sphere, instead of 0).
|
|
|
|
Changes between 1.10 (released 2011-06-11) and 1.9 versions:
|
|
|
|
* Improvements to Matlab/Octave interface:
|
|
+ add {geocentric,localcartesian}{forward,reverse};
|
|
+ make geographiclibinterface more general;
|
|
+ install the source for the interface;
|
|
+ cmake compiles the interface if ENABLE_MATLAB=ON;
|
|
+ include compiled interface with Windows binary installer.
|
|
|
|
* Fix various configuration issues
|
|
+ autoconf did not install Config.h;
|
|
+ cmake installed in man/man1 instead of share/man/man1;
|
|
+ cmake did not set the rpath on the tools.
|
|
|
|
Changes between 1.9 (released 2011-05-28) and 1.8 versions:
|
|
|
|
* FIX BUG in area returned by Planimeter for pole encircling polygons.
|
|
|
|
* FIX BUG in error message reported when DMS::Decode reads the string
|
|
"5d.".
|
|
|
|
* FIX BUG in AlbersEqualArea::Reverse (lon0 not being used).
|
|
|
|
* Ensure that all exceptions thrown in the Utility Programs are
|
|
caught.
|
|
|
|
* Avoid using catch within GeographicLib::DMS.
|
|
|
|
* Move Accumulator class from Planimeter.cpp to Constants.hpp.
|
|
|
|
* Add Math::sq<T>.
|
|
|
|
* Simplify Installing the geoid datasets
|
|
+ add geographiclib-get-geoids for Unix-like systems;
|
|
+ add installers for Windows.
|
|
|
|
* Provide cmake support:
|
|
+ build binary installer for Windows;
|
|
+ include regression tests;
|
|
+ add --input-string, --input-file, --output-file options to the
|
|
Utility Programs to support tests.
|
|
|
|
* Rename utility EquidistantTest as GeodesicProj and
|
|
TransverseMercatorTest as TransverseMercatorProj.
|
|
|
|
* Add ConicProj.
|
|
|
|
* Reverse the initial sense of the -s option for Planimeter.
|
|
|
|
* Migrate source from subversion to git.
|
|
|
|
Changes between 1.8 (released 2011-02-22) and 1.7 versions:
|
|
|
|
* Optionally return rotation matrix from GeographicLib::Geocentric and
|
|
GeographicLib::LocalCartesian.
|
|
|
|
* For the Utility Programs, supply man pages, -h prints the synopsis,
|
|
--help prints the man page, --version prints the version.
|
|
|
|
* Use accurate summation in Planimeter.
|
|
|
|
* Add 64-bit targets for Visual Studio 2010.
|
|
|
|
* Use templates for defining math functions and some constants.
|
|
|
|
* GeographicLib::Geoid updates
|
|
+ Add GeographicLib::Geoid::DefaultGeoidPath and
|
|
GeographicLib::Geoid::DefaultGeoidName;
|
|
+ GeoidEval uses environment variable GEOID_NAME as the default
|
|
geoid;
|
|
+ Add --msltohae and --haetomsl as GeoidEval options (and don't
|
|
document the single hyphen versions).
|
|
|
|
* Remove documentation that duplicates papers on transverse Mercator
|
|
and geodesics.
|
|
|
|
Changes between 1.7 (released 2010-12-21) and 1.6 versions:
|
|
|
|
* FIX BUG in scale returned by GeographicLib::LambertConformalConic::Reverse.
|
|
|
|
* Add GeographicLib::AlbersEqualArea projection.
|
|
|
|
* Library created by Visual Studio is Geographic.lib instead of
|
|
GeographicLib.lib (compatible with makefiles).
|
|
|
|
* Make classes NaN aware.
|
|
|
|
* Use cell arrays for MGRS strings in Matlab.
|
|
|
|
* Add solution/project files for Visual Studio 2010 (32-bit only).
|
|
|
|
* Use C++11 static_assert and math functions, if available.
|
|
|
|
Change between 1.6 (released 2010-11-23) and 1.5 versions:
|
|
|
|
* FIX BUG introduced in GeographicLib::Geoid in version 1.5 (found by
|
|
Dave Edwards).
|
|
|
|
Changes between 1.5 (released 2010-11-19) and 1.4 versions:
|
|
|
|
* Improve area calculations for small polygons.
|
|
|
|
* Add -s and -r flags to Planimeter utility.
|
|
|
|
* Improve the accuracy of GeographicLib::LambertConformalConic using
|
|
divided differences.
|
|
|
|
* FIX BUG in meridian convergence returned by
|
|
LambertConformalConic::Forward.
|
|
|
|
* Add optional threadsafe parameter to GeographicLib::Geoid
|
|
constructor. WARNING: This changes may break binary compatibility
|
|
with previous versions of GeographicLib. However, the library is
|
|
source compatible.
|
|
|
|
* Add GeographicLib::OSGB.
|
|
|
|
* Matlab and Octave interfaces to GeographicLib::UTMUPS,
|
|
GeographicLib::MGRS, GeographicLib::Geoid, GeographicLib::Geodesic
|
|
provided.
|
|
|
|
* Minor changes
|
|
+ explicitly turn on optimization in Visual Studio 2008 projects;
|
|
+ add missing dependencies in some Makefiles;
|
|
+ move pi() and degree() from GeographicLib::Constants to
|
|
GeographicLib::Math;
|
|
+ introduce GeographicLib::Math::extended type to aid testing;
|
|
+ add GeographicLib::Math::epi() and GeographicLib::Math::edegree().
|
|
+ fixes to compile under cygwin;
|
|
+ tweak expression used to find latitude from conformal latitude.
|
|
|
|
Changes between 1.4 (released 2010-09-12) and 1.3 versions:
|
|
|
|
* Changes to GeographicLib::Geodesic and GeographicLib::GeodesicLine:
|
|
+ FIX BUG in Geodesic::Inverse with prolate ellipsoids;
|
|
+ add area computations to Geodesic::Direct and Geodesic::Inverse;
|
|
+ add geodesic areas to geodesic test set;
|
|
+ make GeodesicLine constructor public;
|
|
+ change longitude series in Geodesic into Helmert-like form;
|
|
+ ensure that equatorial geodesics have cos(alpha0) = 0 identically;
|
|
+ generalize interface for Geodesic and GeodesicLine;
|
|
+ split GeodesicLine and Geodesic into different files;
|
|
+ signal convergence failure in Geodesic::Inverse with NaNs;
|
|
+ deprecate one function in Geodesic and two functions in
|
|
GeodesicLine;
|
|
+ deprecate -n option for Geod.
|
|
WARNING: These changes may break binary compatibility with previous
|
|
versions of GeographicLib. However, the library is source
|
|
compatible (with the proviso that GeographicLib/GeodesicLine.hpp may
|
|
now need to be included).
|
|
|
|
* Add the Planimeter utility for computing the areas of
|
|
geodesic polygons.
|
|
|
|
* Improve iterative solution of GeographicLib::Gnomonic::Reverse.
|
|
|
|
* Add GeographicLib::Geoid::ConvertHeight.
|
|
|
|
* Add -msltohae, -haetomsl, and -z options to \ref geoideval.
|
|
|
|
* Constructors check that minor radius is positive.
|
|
|
|
* Add overloaded Forward and Reverse functions to the projection
|
|
classes which don't return the convergence (or azimuth) and scale.
|
|
|
|
* Document function parameters and return values consistently.
|
|
|
|
Changes between 1.3 (released 2010-07-21) and 1.2 versions:
|
|
|
|
* Add GeographicLib::Gnomonic, the ellipsoid generalization of the
|
|
gnomonic projection.
|
|
|
|
* Add -g and -e options to Equidistanttest.
|
|
|
|
* Use fixed-point notation for output from Cartconvert,
|
|
Equidistanttest, Transversemercatortest.
|
|
|
|
* PolarStereographic:
|
|
+ Improved conversion to conformal coordinates;
|
|
+ Fix bug with scale at opposite pole;
|
|
+ Complain if latitude out of range in SetScale.
|
|
|
|
* Add GeographicLib::Math::NaN().
|
|
|
|
* Add long double version of hypot for Windows.
|
|
|
|
* Add EllipticFunction::E(real).
|
|
|
|
* Update references to Geotrans in MGRS documentation.
|
|
|
|
* Speed up tmseries.mac.
|
|
|
|
Changes between 1.2 (released 2010-05-21) and 1.1 versions:
|
|
|
|
* FIX BUGS in GeographicLib::Geodesic,
|
|
+ wrong azimuth returned by Direct if point 2 is on a pole;
|
|
+ Inverse sometimes fails with very close points.
|
|
|
|
* Improve calculation of scale in GeographicLib::CassiniSoldner,
|
|
+ add GeodesicLine::Scale, GeodesicLine::EquatorialAzimuth, and
|
|
GeodesicLine::EquatorialArc;
|
|
+ break friend connection between CassiniSoldner and Geodesic.
|
|
|
|
* Add DMS::DecodeAngle and DMS::DecodeAzimuth. Extend DMS::Decode and
|
|
DMS::Encode to deal with distances.
|
|
|
|
* Code and documentation changes in Geodesic and Geocentric for
|
|
consistency with the forthcoming paper on geodesics.
|
|
|
|
* Increase order of series using in Geodesic to 6 (full accuracy
|
|
maintained for ellipsoid flattening < 0.01).
|
|
|
|
* Macro __NO_LONG_DOUBLE_MATH to disable use of long double.
|
|
|
|
* Correct declaration of Math::isfinite to return a bool.
|
|
|
|
* Changes in the Utility Programs,
|
|
+ improve error reporting when parsing command line arguments;
|
|
+ accept latitudes and longitudes in decimal degrees or degrees,
|
|
minutes, and seconds, with optional hemisphere designators;
|
|
+ GeoConvert -z accepts zone or zone+hemisphere;
|
|
+ GeoidEval accepts any of the input formats used by GeoConvert;
|
|
+ CartConvert allows the ellipsoid to be specified with -e.
|
|
|
|
Changes between 1.1 (released 2010-02-09) and 1.0 versions:
|
|
|
|
* FIX BUG (introduced in 2009-03) in EllipticFunction::E(sn,cn,dn).
|
|
|
|
* Increase accuracy of scale calculation in TransverseMercator and
|
|
TransverseMercatorExact.
|
|
|
|
* Code and documentation changes for consistency with arXiv:1002.1417
|
|
|
|
Changes between 1.0 (released 2010-01-07) and 2009-11 versions:
|
|
|
|
* Add autoconf configuration files.
|
|
|
|
* BUG FIX: Improve initial guess for Newton's method in
|
|
PolarStereographic::Reverse. (Previously this failed to converge
|
|
when the co-latitude exceeded about 130 deg.)
|
|
|
|
* Constructors for TransverseMercator, TransverseMercatorExact,
|
|
PolarStereographic, Geocentric, and Geodesic now check for obvious
|
|
problems with their arguments and throw an exception if necessary.
|
|
|
|
* Most classes now include inspector functions such as MajorRadius()
|
|
so that you can determine how instances were constructed.
|
|
|
|
* Add GeographicLib::LambertConformalConic class.
|
|
|
|
* Add GeographicLib::PolarStereographic::SetScale to allow the
|
|
latitude of true scale to be specified.
|
|
|
|
* Add solution and project files for Visual Studio 2008.
|
|
|
|
* Add GeographicLib::GeographicErr for exceptions.
|
|
|
|
* GeographicLib::Geoid changes:
|
|
+ BUG FIX: fix typo in GeographicLib::Geoid::Cache which could cause
|
|
a segmentation fault in some cases when the cached area spanned
|
|
the prime meridian.
|
|
+ Include sufficient edge data to allow heights to be returned for
|
|
cached area without disk reads;
|
|
+ Add inspector functions to query the extent of the cache.
|
|
|
|
Changes between 2009-11 and 2009-10 versions:
|
|
|
|
* Allow specification of "closest UTM zone" in GeographicLib::UTMUPS
|
|
and GeoConvert (via -t option).
|
|
|
|
* Utilities now complain is there are too many tokens on input lines.
|
|
|
|
* Include real-to-real versions of GeographicLib::DMS::Decode and
|
|
GeographicLib::DMS::Encode.
|
|
|
|
* More house-cleaning changes:
|
|
+ Ensure that functions which return results through reference
|
|
arguments do not alter the arguments when an exception is thrown.
|
|
+ Improve accuracy of GeographicLib::MGRS::Forward.
|
|
+ Include more information in some error messages.
|
|
+ Improve accuracy of inverse hyperbolic functions.
|
|
+ Fix the way GeographicLib::Math functions handle different
|
|
precisions.
|
|
|
|
Changes between 2009-10 and 2009-09 versions:
|
|
|
|
* Change web site to http://geographiclib.sourceforge.net
|
|
|
|
* Several house-cleaning changes:
|
|
+ Change from the a flat directory structure to a more easily
|
|
maintained one.
|
|
+ Introduce Math class for common mathematical functions (in
|
|
Constants.hpp).
|
|
+ Use Math::real as the type for all real quantities. By default this
|
|
is typedef'ed to double; and the library should be installed this
|
|
way.
|
|
+ Eliminate const reference members of AzimuthalEquidistant,
|
|
CassiniSoldner and LocalCartesian so that they may be copied.
|
|
+ Make several constructors explicit. Disallow some constructors.
|
|
Disallow copy constructor/assignment for Geoid.
|
|
+ Document least square formulas in Geoid.cpp.
|
|
+ Use unsigned long long for files positions of geoid files in Geoid.
|
|
+ Introduce optional mgrslimits argument in UTMUPS::Forward and
|
|
UTMUPS::Reverse to enforce stricter MGRS limits on eastings and
|
|
northings.in
|
|
+ Add 64-bit targets in Visual Studio project files.
|
|
|
|
Changes between 2009-09 and 2009-08 versions:
|
|
|
|
* Add GeographicLib::Geoid and GeoidEval utility.
|
|
|
|
Changes between 2009-08 and 2009-07 versions:
|
|
|
|
* Add GeographicLib::CassiniSoldner class and EquidistantTest utility.
|
|
|
|
* Fix bug in GeographicLib::Geodesic::Inverse where NaNs were
|
|
sometimes returned.
|
|
|
|
* INCOMPATIBLE CHANGE: AzimuthalEquidistant now returns the reciprocal
|
|
of the azimuthal scale instead of the reduced length.
|
|
|
|
* Add -n option to GeoConvert.
|
|
|
|
Changes between 2009-07 and 2009-06 versions:
|
|
|
|
* Speed up the series inversion code in tmseries.mac and geod.mac.
|
|
|
|
* Reference Borkowski in section on Geocentric coordinates.
|
|
|
|
Changes between 2009-06 and 2009-05 versions:
|
|
|
|
* Add routines to decode and encode zone+hemisphere to GeographicLib::UTMUPS.
|
|
|
|
* Clean up code in GeographicLib::Geodesic.
|
|
|
|
Changes between 2009-05 and 2009-04 versions:
|
|
|
|
* Improvements to GeographicLib::Geodesic:
|
|
+ more economical series expansions,
|
|
+ return reduced length (as does the Geod utility),
|
|
+ improved calculation of starting point for inverse method,
|
|
+ use reduced length to give derivative for Newton's method.
|
|
|
|
* Add AzimuthalEquidistant class.
|
|
|
|
+ Make GeographicLib::Geocentric, GeographicLib::TransverseMercator,
|
|
and GeographicLib::PolarStereographic classes work with prolate
|
|
ellipsoids.
|
|
|
|
* CartConvert checks its inputs more carefully.
|
|
|
|
* Remove reference to defunct Constants.cpp from GeographicLib.vcproj.
|
|
|
|
Changes between 2009-04 and 2009-03 versions:
|
|
|
|
* Use compile-time constants to select the order of series in
|
|
GeographicLib::TransverseMercator.
|
|
|
|
* 2x unroll of Clenshaw summation to avoid data shuffling.
|
|
|
|
* Simplification of GeographicLib::EllipticFunction::E.
|
|
|
|
* Use STATIC_ASSERT for compile-time checking of constants.
|
|
|
|
* Improvements to GeographicLib::Geodesic:
|
|
+ compile-time option to change order of series used,
|
|
+ post maxima code for generating the series,
|
|
+ tune the order of series for double,
|
|
+ improvements in the selection of starting points for Newton's
|
|
method,
|
|
+ accept and return spherical arc lengths,
|
|
+ works with both oblate and prolate spheroids,
|
|
+ add -a, -e, -b options to the Geod utility.
|
|
|
|
Changes between 2009-03 and 2009-02 versions:
|
|
|
|
* Add GeographicLib::Geodesic and the Geod utility.
|
|
|
|
* Declare when no exceptions are thrown by functions.
|
|
|
|
* Minor changes to GeographicLib::DMS class.
|
|
|
|
* Use invf = 0 to mean a sphere in constructors to some classes.
|
|
|
|
* The makefile creates a library and includes an install target.
|
|
|
|
* Rename GeographicLib::ECEF to GeographicLib::Geocentric, ECEFConvert
|
|
to CartConvert.
|
|
|
|
* Use inline functions to define constant doubles in Constants.hpp.
|
|
|
|
Changes between 2009-02 and 2009-01 versions:
|
|
|
|
* Fix documentation of constructors (flattening -> inverse
|
|
flattening).
|
|
|
|
* Use std versions of math functions.
|
|
|
|
* Add ECEF and LocalCartesian classes and ECEFConvert utility.
|
|
|
|
* Gather the documentation on the utility programs onto one page.
|