[Proj] Old problems
Gerald I. Evenden
gerald.evenden at verizon.net
Tue Jan 3 22:25:50 EST 2006
Since I had "proj-4.4.9" downloaded I made some comparisons with libproj4 to
see what the basic problems were.
As for the projections themselves (PJ_ files) there is little difference
except for updated names for support functions and some *improved* functions
in libproj4. There are, of coarse, a few projections in libproj4 that are not
in the old stuff. Of course, the pj_latlong "projection" has no place in a
projection operation. Could be replace with Equirectangular where +a=1;
I took a careful look at the pj_init, pj_fwd and pj_inv. There is little
difference with pj_fwd and pj_inv but the big problem is with pj_init. The
issue is the inclusion of the non-projection datum operations and the "prime
meridian" problem. Also, the old usage of a "default" input is removed in
I do not see why the datum operations cannot be made a shell procedure process
where the entries are nearly identical with libproj4. Something like
gx_init, gx_fwd, gx_inv, where gx_init feeds off the options related to
datums and gives the list to pj_init to initialize the projection phase.
Remember, libproj4 pj_init ignores any options that it does not recognize.
Also, does anyone use the default file or +init? This was one of my mistakes
in the original and continually caused a headache with people calling about
proj not working because it could not find the default file because they had
not set a global. Getting rid of it would get rid of the +no_def's which
haunt so many listings of usage.
I'd be glad to give up the pj_init, pj_fwd and pj_inv names and replace them
with proj_init, proj_forward and proj_inverse in the libproj4 system. Thus
the libdatum could have the pj_* entries and minimize any hassles in changing
application programs. Any of the other less utilized entries would also
prefix with proj_. Note the structure pointer returned by the new pj_init
would have a pointer to PJ returned by proj_init.
Under this scheme a application like GRASS would not have to do anything but
change Makefile to recognize the new libdatum library. "big smiley :-)"
I would go further and change all the PJ_ and pj_ s to proj_ PROJ_ but that is
a lot of work.
Jerry and the low riders:Daisy May and Joshua
"The being cannot be termed rational or virtuous,
who obeys any authority, but that of reason."
---Mary Wollstonecraft 1792
More information about the Proj