Hello Jia
Le 15/12/2022 à 02:26, Jia Yu a écrit :
1. I am interested in exploring replacing geotools with Proj4J or
Apache SIS if this replacement can serve this purpose: this library
can be shipped together in Sedona binary (Maven 'compile' scope) and
users no longer need to manually add another dependency like the
geotools-wrapper.
Yes, Apache SIS is of course under Apache license except the EPSG
dataset which needs to be added explicitly by the user. More on it in
item (4).
(1) Compatibility with both Java 8 and Java 11. SIS only works for
Java 11 however many Sedona users are still on Java 8. We have no plan
to get rid of Java 8 support any time soon.
All SIS versions up to SIS 1.3 (to be released soon) are compatible with
Java 8. The next version (SIS 1.4) will indeed require Java 11, but
maybe SIS 1.3 would be sufficient until Sedona can upgrade? If needed,
we can do some patch releases of SIS 1.3 for bug fixes.
(2) Support of ESRI shapefile read.
True, this part is missing. This work started years ago by a contributor
but is not finished.
(3) Support of GeoTiiff read and write. SIS supports GeoTiiff read but
Sedona also writes result to GeoTiiff.
True, GeoTIFF write capability is missing (planed but not done yet).
TIFF World File could be used to mitigate this lack, but I admit it is
not as nice.
(4) Apache SIS also does not ship EPSG dataset in its binary meaning
that the users still have to manually add another dependency.
Yes, but EPSG Terms of Use have been classified as a Category X license
by Apache [1] and no library can ship those data without EPSG Terms of
Use [2] — doing otherwise is called "relicensing", and no-one can do
that except the copyright owner. The libraries that bundle EPSG data
without EPSG terms of use are not legally correct. Proj4J just fixed
this problem recently with a separated JAR, similar to what SIS does
[3]. SIS provides different ways that the user can choose for adding
EPSG data [4].
2. Sedona pom files are kind of very complicated since we have modules
for both Spark and Flink. The core logic is: (…snip…)
Thanks for the explanation. Indeed, I understand a little bit more now.
3. If you think using SIS can serve the purpose mentioned above, you
can create a fork of Sedona and work on it. Then you can create a PR
on Sedona and the CI will automatically test the code.
It is hard to know how well it serves the purpose without trying. With
SIS 1.3 there would be lost of functionalities on one hand (GeoTIFF
writer and Shapefile) but some new functionalities on the other hand.
The coordinate transformation services provided by SIS are more
advanced, and I would also be curious to know how the GeoTIFF reader
compares. But I'm not sure that a CI automatic tests would be successful
without some PMC decision about altered functionalities. What I do not
know is how critical they would be for Sedona.
Martin
[1]https://issues.apache.org/jira/browse/LEGAL-183
[2]https://epsg.org/terms-of-use.html
[3]https://github.com/locationtech/proj4j/issues/90
[4]https://sis.apache.org/epsg.html