[Xastir] Help needed with proj library compatibility
David Ranch
xastir at trinnet.net
Thu Mar 14 20:01:14 PDT 2019
Hello Tom,
So it seems like TIFF-based maps need gdal. Is that correct? You
mentioned that USGS topo maps might be impacted. Any other specific maps?
--David
KI6ZHD
On 03/14/2019 05:14 PM, Tom Russo wrote:
> On Thu, Mar 14, 2019 at 09:57:22AM -0500, we recorded a bogon-computron collision of the <kg4wsv at gmail.com> flavor, containing:
>> If I didn't have a clue if I were using these or not, is there some debug
>> level and message that would tell me?
> If you've got gdal installed, it's using the hacked version of
> GTIFProj4toLatLong. To test out whether the hack is needed, you'd have to
> change the ifdef in map_tif.c so the "else" is never used:
>
> Comment this out at the top:
>
> // Needed for GTIFProj4FromLatLong() replacement below
> #ifdef HAVE_LIBGDAL
> # include "proj_api.h"
> #endif // HAVE_LIBGDAL
>
> and then later:
> #ifndef HAVE_LIBGDAL
> # define my_GTIFProj4FromLatLong GTIFProj4FromLatLong
> #else
>
>
> just change the "ifndef HAVE_GDAL" to "if 1".
>
> If TIFF maps in UTM (e.g. USGS topos) display properly after that change, you
> wouldn't have a problem with removing the hack.
>
>> e.g.:
>> $ xastir -v X >xastir.log 2>&1
>> [poke around until i display all my maps in xastir]
>> $ grep "something" xastir.log
> Nothing here would tell you anything useful. This is entirely an issue of
> TIFF maps not properly being georeferenced, because this "GTIFProj4ToLatLong"
> is used to translate the coordinates stored in the TIFF file into coordinates
> Xastir can work with.
>
>> On Thu, Mar 14, 2019 at 9:25 AM Tom Russo <russo at bogodyn.org> wrote:
>>
>>> We got a bug report on github that Xastir is using a deprecated API for the
>>> proj.4 library. A new API (in "proj.h") has been created in proj.5, the
>>> old
>>> is deprecated in proj.6, and will be removed in proj.7. In keeping with
>>> the
>>> new normal of racing through major versions every 6 months or so, proj.7
>>> is due out in 2020.
>>>
>>> I've looked into it, and it turns out that the only uses of proj.4's API
>>> directly in Xastir source are the result of a hack that was put
>>> in place to deal with a GDAL/libgeotiff issue, and another place where
>>> we're including a "contrib" program for shapelib that the main shapelib
>>> distribution has dropped altogether because it's not very useful.
>>>
>>> I could use a hand figuring out the best path forward here.
>>>
>>> In map_tif.c there is code that conditionally compiles in a substitute
>>> function for GTIFProj4FromLatLong, because some 14 years ago there was
>>> apparently sometimes a problem with this function if one compiled both
>>> gdal
>>> and libgeotiff into Xastir. The reason for this is that both libraries
>>> define
>>> that function, and it was probably possible to compile them in
>>> inconsistent
>>> ways. The question is whether the hack is still necessary, and
>>> if the presence of both libraries still causes problems in the
>>> map_tif.c code if the hack were removed. This will require a lot of
>>> testing using TIFF maps, and probably on multiple systems to make sure
>>> it's safe to remove. I will need a lot of help with that, as I have hardly
>>> any time available to test things like this out myself.
>>>
>>> If this hack is no longer necessary, the easiest path forward to addressing
>>> the future incompatibility with Proj.6 and Proj.7 will be to remove it
>>> altogether. If it is still necessary, then the best path forward might be
>>> to use the GTIFProj4FromLatLong from the upcoming libgeotiff 1.5.0 instead
>>> of the one we have, as the upcoming version has been modified to work with
>>> the new proj.5 API.
>>>
>>> I also propose removing "shpproj" from our ancient "internal" shapelib
>>> library's
>>> contrib directory, because it is mostly useless and there are better tools
>>> to get the job done (e.g. ogr2ogr, from the GDAL/OGR library). Is anybody
>>> depending on this program who would object to it disappearing?
>>>
>>> --
>>> Tom Russo KM5VY
>>> Tijeras, NM
>>>
>>> echo "prpv_a'rfg_cnf_har_cvcr" | sed -e 's/_/ /g' | tr [a-m][n-z]
>>> [n-z][a-m]
More information about the Xastir
mailing list