[Proj] Geo Transfoms and calculations

Eric Miller EMiller at dfg.ca.gov
Tue Dec 30 12:39:57 EST 2008

You need only a minor modification to Gerald's libproj4 to compile on
windows.  Because Microsoft is lame, their math library does not include
atanh (or asinh or acosh). 

Previously, I overcame this by building in a naive implementation of
atanh as:

double atanh( double x )
	return log((1 + x)/(1 - x))/2;

Since Gerald has since embraced the GSL, maybe we can get him to use
the GSL versions of those functions and let the GNU folks handle
platform compatibility.

>>> On 12/30/2008 at 7:40 AM, "Till" <till at free.fr> wrote:
> Thanks for your answers Gerald,
> Is this library already available, or it is a brand new product that
can be
> only tested after being released? (Next week, obviously)
> As far as I have understood, you're working on libproj4 project. Will
> 'geod_*' stuff be associated/related to it?
> By now, we only worked with proj.4, that means using proj.dll. This
is the
> only library we managed to compile with Visual C++. We failed with
> which looks as linux only.
> But we're quite happy with it, proj.dll fits properly our needs,
> we're missing those distance calculation functions.
> What is your recommendation regarding this?
> How should the 'geod_*' set work in conjunction with it?
> Thanks for your feedback.
> -----Message d'origine-----
> De : Gerald I. Evenden [mailto:geraldi.evenden at gmail.com] 
> Envoyé : mardi 30 décembre 2008 01:55
> À : proj at lists.maptools.org 
> Cc : Till
> Objet : Re: [Proj] Geo Transfoms and calculations
> Your timing could not be much better.
> I have almost completed a library set 'geod_*' that covers geodesic 
> computations for both the spherical and elliptical earth.  I expect
to have
> a 
> first release out by this weekend as I am only doing finishing
touches on
> the 
> ellps= section (a user program version works right now with the
> library).  The ellipse method is based upon the NOAA routines rather
> the 
> USNOO process that I used in 'geod'---accuracy is also a little
> The release comes with Doxygen html documentation (~2mb), of all the
> and 
> a self documenting user program 'geodesic'---that is: you type
> and 
> at the prompt "geod:" type "help."  Maybe a little more help on the
> front page. ;-)
> Also, see note imbedded below and geodesic example at end.
> On Monday 29 December 2008 7:07:28 pm Till wrote:
>> Hi all,
>> We're quite new to geographic fundamentals, but it sounds like
PROJ.4 is a
>> pretty good base where to find proper 'geographic related'
>> We're currently working on graphic (2D/3D) tools for displaying
>> GPS information and our goal is to rely on standard systems,
avoiding to
>> 'reinvent the wheel', feeling it should be much of a benefit if we
>> share with the community.
>> By now, we were able to properly use the 'proj' API in order to
>> different projection schemes into 'Cartesian' (3D space)
coordinates, and
>> also mix 2D representations.
>> However, distance calculation seems to be another issue.
>> While we could find ways to implement a reasonable calculation
>> (for instance :
>> gpsDist(PointF P1, PointF P2)
>> {
> This is a common equation for spherical geodesic but it is not very
good for
> small values of the argument because acos looses precision.  All
> code I have used employs Snyder's recommended variation as in the
> library.
>> return Acos( sin(P1.y)*sin(P2.y) +
cos(P1.y)*cos(P2.y)*cos(P1.x-P2.x) ) *
>> earthRadius;
>> }),
>> our approach considers it could be concentrated on the same system,
>> order to provide consistency (at least sharing 'earthRadius'
>> In that manner, we failed to use 'geod' or affiliate as API.
>> We have to say that we're developing on Windows platform (VS 2005),
>> we're lacking sample/tutorial/help for such a use.
>> Any help in that manner would be welcome.
>> PS: Is there a proper (recommended) way to increase 'ellipsoid'
> definitions
>> (increasing or modifying  'pj_ellps' table, for instance changing
>> "sphere"'s radius)?
> Note that both traditional proj DMS and GRASS colon format geographic

> coordinates are read.
> gie at charon:~/CARTO/geodesic/src$ ./geodesic
> geod: help
> command: earth -- set earth shape parameters
> command: show -- display [arc|earth] structure contents
> command: p1 -- set point 1 [lon lat]
> command: p2 -- set point 2 [lon lat]
> command: open -- open output file
> command: vector -- set vector [distance azimuth
> command: line -- compute geodesic line
> command: circle -- compute circle or arc [2nd azi. del azi.]
> command: prec -- set display precision
> command: quit -- exit program
> command: help -- show this list
> For more detailed assistance type "<command> help" for
> more detailed information on that command.
> geod: earth ellps=WGS84
> geod: p1 100d14'33.2W 30d15
> geod: p2 -90:17:55 44d7'30n
>     Point 1 Lon:  100d14'33.20000"W  Lat:   30d15'00.00000"N  height:
>     Point 2 Lon:   90d17'55.00000"W  Lat:   44d07'30.00000"N  height:
>     Azimuth p1->p2: 26d55'6.60"
>     Distance: 1771916.625
>     Azimuth p2->p1: 212d58'58.59"
> geod: quit
> geodesic at completion.   G'day mate!
> gie at charon:~/CARTO/geodesic/src$

More information about the Proj mailing list