Skip to content

Gdal 2.2.3 #146

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 12 commits into from
Closed

Gdal 2.2.3 #146

wants to merge 12 commits into from

Conversation

gbburkhardt
Copy link
Contributor

Note: Filling out this template is required. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the
maintainer's discretion.

Description of the Change

Update the GDAL native libraries to version 2.2.3. Modify GDAL library loader to support loading of multiple native libraries, instead of the previous fixed single library 'gdalalljni'. Include facility for overriding list of native libraries in configuration files.

All source used for the build is included, save the MrSID libraries. Instructions for replicating the build are included.

Why Should This Be In Core?

The current GDAL 1.7.2 version was released in April 2010. Numerous improvements in the library have been made since then

Benefits

Make current technology available to users.

Potential Drawbacks

Only 64 bit libraries for Windows and Linux are included. Previously, a custom build was used to create a single JNI native library, and changes were made to the GDAL JNI interface to allow use of a custom loader. I've dispensed with that so that future maintenance is minimized. The standard GDAL build produces 4 or 5 native libraries, and the MrSID libraries are kept separate. This creates more files, but it also allows the possiblity of using stock binary GDAL releases by changing the configuration file to set the "gov.nasa.worldwind.avkey.GDAL.Libs" property.

Applicable Issues

Obsolete GDAL library

gbburkhardt and others added 11 commits October 25, 2017 21:21
…nd build instructions. Change GDAL native library loader to work with multiple JNI native libraries, as is produced by the standard GDAL build.
…wig/java/makefile.vc to delete 'org' directory during clean since it's a build product; confusion can result if it's not deleted when switching between swig versions
… previous didn't match Linux because different swig versions were used. Update source and javadoc files using source generated by Swig 3.
@caller
Copy link

caller commented May 12, 2018

PLEASE MERGE THIS... It would be awsome to have this in the main codeline
-Marco

@gbburkhardt
Copy link
Contributor Author

Thanks for the vote of confidence. However, with 30+ pull requests outstanding, and the last update to the code having been on Nov 8, 2017, I get the feeling that NASA has diverted resources to other projects. It looks to me as though their current focus is WebWorldWind, and, possibly the Android edition.

@wcmatthysen
Copy link

Jip, they don't merge any external pull requests. That is why I tried to push for a community edition a while ago: #81

@wcmatthysen wcmatthysen mentioned this pull request Apr 5, 2019
@wcmatthysen
Copy link

Hi @gbburkhardt. Can you rebase these changes on the latest version of the development branch. We would like to merge these changes in the community edition of WorldWind located at: https://github.com/WorldWindEarth/WorldWindJava

@gbburkhardt
Copy link
Contributor Author

gbburkhardt commented Apr 7, 2019 via email

@wcmatthysen
Copy link

We don't have any time-frames for anything yet. We should probably plan a road-map of sort. I think the JOGL and GDAL upgrades would be nice to get in (especially the JOGL upgrade seeing as we require it for newer versions of Java). A couple of the bug-fixes (like your MGRS fix) and a couple of the other more serious ones that have been lying around unmerged for ages would be nice to get in as well.

I think Windows and Linux 64-bit is fine for now (but that is just my view on this). If anyone wants Mac support they should contact you and help out to get it working.

If you are interested, I think you should be added to the WorldWindEarth/worldwindjava team seeing as you made quite a bit of contributions already (just contact Bruce regarding this).

@gbburkhardt
Copy link
Contributor Author

I've been thinking about how to minimize long term maintenance of the GDAL support. What I've been doing isn't viable - it's been taking days to accumulate the source code, and build it. And some packages (e.g., librasterlite2) don't build easily on Windows, and depend on lots of other packages. One thing I've tried to do is build only static libraries, thinking that having it all in one place is an advantage, but I'm beginning to think that I should give that up. It certainly made the loadLibrary stuff easier.

It would seem that if we rely on existing binary builds, updating is likely to be a lot easier in the future. I just checked the 'gisinternals' (http://www.gisinternals.com/release.php) releases, and the current one includes the JNI interface. Ubuntu also includes the JNI interface in the 'libgdal-java' package. Both have a fairly full set of formats supported. I have no idea what minimal set the community needs. Ubuntu is lacking the MrSID and ECW formats out of the box, presumably because those are released in binary only, read only packages without source, with some licensing restrictions.

So for Windows, I'm leaning toward grabbing the DLLs from GisInternals and the gdal.jar file, and for Linux, relying on the distributor to supply the packages, and assume that 'gdal.jar' and libgdalalljni.so will be available.

How does that sound?

@caller
Copy link

caller commented Apr 11, 2019 via email

@wcmatthysen
Copy link

Great, that sounds good.

If we can rely on an externally maintained source for the JNI bindings then it will make our lives a lot easier. The restrictions with MrSID and ECW should definitely be something that we take into consideration. The fact that they are left out of the Ubuntu builds should tell us that we couldn't just blindly go forward and include them.

Are the JNI interfaces from Ubuntu and GisInternals relatively similar? Would you be able to provide a single Java API class that links through to the underlying native library?

@ghost ghost mentioned this pull request Apr 11, 2019
@ghost
Copy link

ghost commented Apr 11, 2019

Moved the discussion to WorldWindEarth/WorldWindJava.

@gbburkhardt
Copy link
Contributor Author

Obsolete now. See more recent code in https://github.com/WorldWindEarth/WorldWindJava
commits:
9e6e504
81731e8
6225f20
63a0346

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

3 participants