[Incubator] Application to add PROJ-JNI as an OSGeo Community Project

Will Cohen wwcohen at gmail.com
Fri May 28 17:26:20 PDT 2021


Hello and thanks for the reply!

My osgeo id is wcohen.

Re proj4j -- very much, I've made a few small contributions to it, and it
serves the JVM community well. However, in the last few years, a few issues
have come up with proj4j that make an alternative (and complementary)
project make sense, from my perspective:

1. First, the changes to PROJ from version 5 and above (the pipeline
operator, and so on) require a pretty fundamental change to how proj4j's
object model is structured (https://github.com/locationtech/proj4j/issues/12).
This would be a pretty heavy lift to rewrite entirely in Java, and has
largely kept proj4j based on version 4. It is a goal of proj4j to stay
purely written in Java, which would generally require that keeping up with
upstream continue to be a full port to Java.
2. Related to the first point, the fact that PROJ has adopted SQLite means
that the only way to use it on the JVM would be either to use sqlite-jdbc
(which requires native bindings, since the pure Java implementation is no
longer maintained), or to fully port the SQLite database to h2, derby, or
hsqldb (https://github.com/locationtech/proj4j/issues/53), which do have
pure Java implementations. Since proj4j is not interested in using
sqlite-jdbc, and maintaining an accurate parallel database file is a
significant maintenance burden, it seems like PROJ-JNI would provide a
useful alternative to proj4j for users who don't mind jumping to some
native code.

Most fundamentally, to be able to handle the full range of projections via
shapefiles or other data sources that extend beyond what proj4j can handle,
the only current option for JVM users is GeoTools. It seems logical to
provide some level of project handling that's a little more lightweight for
simpler use cases, so it seems reasonable to have a library that binds
right to PROJ and piggybacks off of that project's hard work without
reinventing all those particular wheels!

Work that's still a little to-be-determined is how best to simplify this
process for the end user, and create .jars for PROJ-JNI that include enough
native versions of PROJ (plus the grid files etc), that using PROJ-JNI
should be as seamless as proj4j for the majority of platforms that support
SQLite (and, by extension, modern versions of PROJ).

And finally, no logo yet, but we can work on that!

Will

On Fri, May 28, 2021 at 8:03 PM Jody Garnett <jody.garnett at gmail.com> wrote:

> Will:
>
> Thanks for contacting osgeo, and the clear presentation of your project.
>
> Let's see if we can work on the website page - what is your osgeo userid?
> And do you have a logo :)
>
> Aside: Are you aware of proj4j ?
> --
> Jody Garnett
>
>
> On Thu, 27 May 2021 at 06:12, Will Cohen <wwcohen at gmail.com> wrote:
>
>> Hello,
>>
>> I'm writing to request that the incubation committee consider PROJ-JNI (
>> https://github.com/Kortforsyningen/PROJ-JNI) for inclusion as an OSGeo
>> Community Project. This project's goal is to provide a JVM ecosystem set of
>> native bindings to upstream PROJ, an increasingly important task given the
>> increased development speed of PROJ in recent years, starting with the
>> changes post PROJ 6. In particular, PROJ's shift to SQLite requires that
>> JVM users of PROJ eventually interoperate with native libraries, making
>> native bindings to PROJ itself a logical next step.
>>
>> One very tangible benefit of inclusion, in addition to helping build
>> community support for the project, would be the potential use of the
>> org.osgeo/proj or org.proj/proj Maven coordinates as a home for project
>> releases. The project has an initial 1.0 functional release tagged on
>> GitHub, but artifacts haven’t yet been released to Maven Central given the
>> placeholder group ID so far.
>>
>> Please let me know if you have any questions!
>>
>> Will
>>
>> - [X] Be geospatial
>>    - [X] Confirm by checking README or project description (
>> https://github.com/Kortforsyningen/PROJ-JNI/blob/master/README.md)
>>    - [ ] project page on the osgeo website (this we do not yet have)
>>    - [x] We ask projects have some user documentation, for example an
>> OSGeo Live quickstart (linked from the README)
>> - [X] Have a free license or an open source license. (MIT,
>> https://github.com/Kortforsyningen/PROJ-JNI/blob/master/LICENSE)
>>    - [X] The license must be OSI approved (MIT)
>>    - [X] We ask that the project team check the file headers and double
>> check the license has been appropriately applied (it appears on all code
>> files)
>> - [X] Welcome participation and new contributors (certainly looking for
>> contributors and participation, which is part of why we seek to be a
>> community project!)
>>    - [X] We look for a clear contribution policy (see README, we will
>> work through github)
>>    - [X] We ask that the project demonstrate collaboration, perhaps with
>> a history of bug report or pull requests (github)
>>    - [X] Projects are required to have a code of conduct (contributor
>> covenant,
>> https://github.com/Kortforsyningen/PROJ-JNI/blob/master/CODE_OF_CONDUCT.md
>> )
>> _______________________________________________
>> Incubator mailing list
>> Incubator at lists.osgeo.org
>> https://lists.osgeo.org/mailman/listinfo/incubator
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/incubator/attachments/20210528/1d2760ad/attachment-0001.html>


More information about the Incubator mailing list