Thanks Chris for getting Zest and SIS in touch. I just finished reading the thread. There is some tips for information purpose:
Niclas Hedhman wrote: > So, IF SIS are primarily based around interfaces, then that would be > great and we can possibly leverage quite a bit, especially at what we > call "Library" level, i.e. not part of the Core runtime itself, which > we try to keep free of dependencies The core part of SIS is defined by a set of interfaces provided by a separated project: http://www.geoapi.org/. GeoAPI consists of only interfaces, except some classes for Exception, Enum and "CodeList" (similar to Enum but extensible). GeoAPI is based on some international standards published jointly by the Open Geospatial Consortium (OGC) and International Organization for Standardization (ISO). It currently covers only a small part of OGC standards, but this includes map projections. Apache SIS is a GeoAPI 3.0 implementation. The GeoAPI project provides also implementations as wrappers around Proj.4 (the C/C++ library used by GDAL) and the UCAR NetCDF library. All those projects have advantages and inconvenient (e.g. Proj.4 supports a wider range of map projections than SIS, but SIS is more compliant with OGC/ISO standards). But if Zest depends directly on only GeoAPI interfaces you would have the freedom to change implementation. However I do not know if Spatial4J would be interested to implement GeoAPI interfaces. On geometry and indexing, there is no satisfying solution on GeoAPI side yet. In particular, geometries are defined by the ISO 19107 international standard, which is currently under revision. This will have a deep impact on GeoAPI once the ISO revision will be completed. Please let us know if you would like to explore further (e.g. how to apply a map projection using the API defined by GeoAPI). Martin