Sounds good to me. +1 On Jul 29, 2024 at 16:12:09, Suryaa Charan Shivakumar <sshiv...@ucr.edu> wrote:
> Hello AsterixDB Dev Community, > > I hope this message finds you well. I am excited to share a proposal aimed > at advancing our geometric processing capabilities in AsterixDB. The > proposal, identified with JIRA epic *ASTERIXDB-3412*, is targeted for the > 9.10.0 release and involves transitioning from the current > com.esri.core.geometry.ogc.OGCGeometry to the Java Topology Suite (JTS) > library. > > Key Motivations: > > 1. Enhanced Compatibility & Maintainability: Transitioning to JTS > offers a more robust support for geometric operations, allowing > extensibility and custom implementation over spatial functions. > 2. Potential Performance Improvements: JTS is expected to provide not > only compatibility but also performance enhancements over the existing > geometry library. > > Proposed Changes Include: > > 1. Comprehensive Research & Documentation of current OGCGeometry use > and dependencies. > 2. Thorough Evaluation of JTS Library to ensure it meets our needs > and integrates well with the existing codebase. > 3. Implementation and Testing across the codebase to ensure seamless > functionality and performance. > 4. Updates and Revisions in Documentation to reflect the new changes. > 5. Performance Benchmarking to confirm and enhance the benefits of JTS > integration. > > Known Limitations and Considerations: > > 1. CRS and Dimensionality Support: Address JTS’s native limitations on > CRS and higher-dimensional (3d,4d) geometries through custom > implementations or additional libraries. > 1. JTS does not consider or support CRS while doing geometric > operations. However, CRS is important to ensure precision and > correctness. > We may have to evaluate the integration of CRS functionalities through > libraries like GeoTools, minimizing dependencies while ensuring robust > support for varied CRS applications. > 2. Issues with JTS while handling 3D or 4D geometry, > Does not have some function implementations for Z, eg. Finding min > z or max z coordinate in a given geometry. Solution - To implement this > is > fairly easy. Other known documented issues in JTS w.r.t dimensions are > listed below, > https://github.com/locationtech/jts/issues/733 > > <https://urldefense.com/v3/__https://github.com/locationtech/jts/issues/733__;!!CzAuKJ42GuquVTTmVmPViYEvSg!PiGdnbM37SsJM5MdFI4o05dsJmQQjNbeKfB04azc7-SO85bhaS0Vj3T6RwCeRXOYOajJFvWWw1duH8tT$> > https://locationtech.github.io/jts/jts-faq.html#B4 > > <https://urldefense.com/v3/__https://locationtech.github.io/jts/jts-faq.html*B4__;Iw!!CzAuKJ42GuquVTTmVmPViYEvSg!PiGdnbM37SsJM5MdFI4o05dsJmQQjNbeKfB04azc7-SO85bhaS0Vj3T6RwCeRXOYOajJFvWWwx1gF13X$> > 2. Dependency Management: Carefully manage new dependencies to > prevent over-complexity in the system architecture. > > We invite you to review the detailed proposal, provide your insights, and > discuss any potential impacts or improvements. Your feedback is invaluable > as we refine and move forward with this initiative. > > Thank you for your continued support and collaboration. > > Best, > Suryaa Charan >