[Proj] please help C++ idiot with datum conversion
Mike Zulauf
mazulauf at met.utah.edu
Thu Jul 15 18:26:38 EDT 2004
Frank already answered this, but I thought I'd add my points.
I suppose it might depend on your platform (?), but on the two
unix-like OSs I built the libraries on (Mac OS X and Linux), I only had
to extract the contents of proj-nad27-1.1.tar into the proj/nad
directory, and then reconfigure and rebuild the library.
Before that point, the code would run, but without the datum shift.
Afterwards, the datum shift occurs as it should.
And if anybody is interested, at the bottom of this message is the
final version of the code snippet that I'm using now. I had to correct
a couple minor issues of Frank's code (after all, he didn't have the
rest of my code to test with).
Thanks again to all!
Mike
On Jul 15, 2004, at 2:59 PM, bsupnik wrote:
> Hi Frank,
>
> Stupid question about your code snippet: does it require that the
> datum files are installed in the right places and converted from ASCII
> to binary format in order to work?
>
> *Cheers*
> ben
>
/*--------------------------------------------------------------------*/
#include <stdio.h>
#include <proj_api.h>
void ll2xy_(double coord_1[], double coord_2[], int *ni,
int *conv_stat)
{
static const char *src_crs = "+proj=latlong +datum=WGS84";
static const char *dst_crs = "+init=nad27:3601 +datum=NAD27";
projPJ src_PJ, dst_PJ;
int i;
src_PJ = pj_init_plus( src_crs );
dst_PJ = pj_init_plus( dst_crs );
*conv_stat = 1;
if ( src_PJ == NULL || dst_PJ == NULL )
{
printf("pj_init_plus error\n");
*conv_stat = 0;
}
for (i = 0; i <= *ni-1; i++)
{
double dummyz = 0.0;
coord_1[i] *= DEG_TO_RAD;
coord_2[i] *= DEG_TO_RAD;
if( pj_transform( src_PJ, dst_PJ, 1, 0,
&coord_1[i], &coord_2[i], &dummyz ) != 0 )
{
printf("pj_transform error\n");
*conv_stat = 0;
}
if (coord_1[i] == HUGE_VAL)
{
printf("pj_transform returned HUGE_VAL\n");
*conv_stat = 0;
}
}
pj_free(src_PJ);
pj_free(dst_PJ);
}
/*--------------------------------------------------------------------*/
--
Mike Zulauf
mazulauf at met.utah.edu
More information about the Proj
mailing list