jiayuasu commented on pull request #482: URL: https://github.com/apache/incubator-sedona/pull/482#issuecomment-700532690
@netanel246 I am currently working on this issue. I have created a new branch called jtsplus and am implementing my code there. My plan is as follows: 1. Create a git submodule named jts which links to https://github.com/jiayuasu/jts, namely **JTS fork** 2. Sedona Maven project adds the jts/module/core folder as a Maven module. So Sedona can directly use the source files in this folder. 3. Push changes to both Sedona and JTS fork. Several notes: 1. Move JTSplus codes to Sedona sources as much as possible 2. Only add the minimum changes to JTS fork 4. Make a PR from JTS fork to LocationTech JTS. Depending on whether the PR can be fully accepted by LocationTech JTS, two options are available: 1. If the PR is completely accepted, we re-direct the git submodule to LocationTech JTS repo. Once a new JTS release is out in the future, we can remove the git submodule completely and simply add LocationTech JTS as a Maven dependency. Note that, this option most likely won't happen because JTS contributors have clearly said they try to avoid some changes such as leverage "UserData" and change "TreeNode" from private to public. 2. If the PR is only partially accepted, we can keep the git submodule to JTS fork forever in the future. I will periodically pull the latest change in LocationTech JTS back to JTS fork. In the future, I can publish JTS fork to the Maven Central. But this won't happen until JTS fork reaches a stable status. This way, 1. We can easily track the code diff and progresses by comparing JTS fork and LocationTech JTS. 2. **Another advantage is that this will make the development of Sedona independent on whether the PR gets accepted to LocationTech JTS or not. Currently, the development of Sedona is kind of blocked by this issue and I am keen to fix this ASAP. Once I finish Step 3, the development of Sedona can move on.** 3. If the PR is not accepted, any future users of Sedona can remove the LocationTech JTS packaged by their other dependencies, and simply use JTS fork in the dependency. I am working on Step 3 right now, it requires some new algorithm work in the JTS STR Tree and Quad Tree because I want to "Only add the minimum changes to JTS fork". This will take a week or two. I will keep you guys posted. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected]
