/*! \mainpage projlib GRASS and the PROJ4 projection library
GRASS and the PROJ.4 Projection Library
\section projintro GRASS and the PROJ4 projection library
GRASS utilizes the PROJ4 library originally developed by Gerald Evenden/USGS
(Cartographic Projection Procedures for the UNIX Environment -- A User's
Manual, (Evenden, 1990, Open-file report 90-284).). The PROJ4
(htp://proj.maptools.org) functions are used through wrapper functions
in a GRASS environment.
Internally to the PROJ.4 library, projection may involve transformation to
and from geodetic co-ordinates (latitude and longitude), and numerical
corrections to account for different datums.
This is transparent for the user as input and output parameters are either
read from PROJ_INFO and PROJ_UNITS files (g.proj, v.proj, r.proj) or read from
user prompts (g.proj and g.setproj).
In GRASS the wrapper functions in lib/proj/get_proj.c makes the
preparations to set up the parameter strings and init the info-structures,
while do_proj.c contains the actual projection calls.
ellipse.c and datum.c contain functions for querying GRASS locations
and users for ellipsoid and datum information (some of these functions
were included in the GIS library in earlier versions of GRASS).
convert.c contains functions for converting GRASS co-ordinate system
descriptions to and from the formats used by other GIS. Heavy use is
made of the OGR library, part of GDAL (http://www.gdal.org/ogr/).
\section datum_transformation Datum transformation
GRASS generally supports datum transformation (3 parameters, 7 parameters
and grid).
If a warning appears that a certain datum is not recognised by GRASS and
no parameters found, the datum transformation parameters have to be
added to $GISBASE/etc/datum.table (and also $GISBASE/etc/datumtransform.table
if you have 7-parameter transformation parameters). No need to re-compile
though. When adding to CVS, currently these files are still in lib/gis/.
\section Makefile_Example Makefile Example
The following code demonstrates the Makefile
(see also \ref Compiling_and_Installing_GRASS_Modules).
\verbatim
MODULE_TOPDIR = ../..
PGM = r.myproj
EXTRA_INC = $(PROJINC)
LIBES = $(GPROJLIB) $(GISLIB)
DEPENDENCIES= $(GPROJDEP) $(GISDEP)
include $(MODULE_TOPDIR)/include/Make/Module.make
default: cmd
\endverbatim
*/