[Dev] FW: What to do with Spatial4j?

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[Dev] FW: What to do with Spatial4j?

dsmiley@mitre.org
Administrator
FYI I sent this to the JTS list but if anyone is listening here then I would appreciate your input as well.
The JTS list archive has this thread here: http://sourceforge.net/mailarchive/forum.php?thread_name=CE69C4DF.19836%25dsmiley%40mitre.org&forum_name=jts-topo-suite-user

There's also a 3rd option I'm exploring with Martin on wether Spatial4j might be merged into JTS.

From: <Smiley>, "Smiley, David W." <[hidden email]>
Date: Wednesday, September 25, 2013 7:06 PM
To: "[hidden email]" <[hidden email]>
Cc: Ryan McKinley <[hidden email]>
Subject: What to do with Spatial4j?

Hello JTS list,

I'm writing to solicit the opinions of the folks on the JTS list on the direction I should take with Spatial4j — a ~2 year old open-source project I run with Ryan McKinley.  

Background:
Spatial4j came about as a subset of a body of Java spatial code in support of spatial information-retrieval for Apache Lucene and Solr. Spatial4j is the subset that deals solely with defining shapes, computing distances, shape intersection, and parsing and writing shape strings. To my knowledge, it is only used by Lucene's new spatial module. Spatial4j is an independent part of Lucene spatial for two reasons: Most importantly, it uses (albeit optionally) the 3rd party JTS library which is LGPL licensed. The Apache Software Foundations forbids a dependency, even an optional one, on LGPL licensed software. The second reason is that Spatial4j should be independently useful on its own. I don't know of the geodetic shape intersection algorithms it has existing in any other open-source software. Perhaps I didn't look hard enough but that is to the best of my knowledge.

Some specific features of note to the list here:
 * A circle implementation, both in euclidean 2D mode and geodetic surface-of-sphere mode
 * computs intersection cases (disjoint, contains, within, intersects) between the shapes it has and points and rectangles (either euclidean 2D or geodetic)
 * Rewrites JTS geometries of lat & lon coordinates to support dateline crossing.  No pole wrap support yet.
There are extensive randomized tests, by the way.

So there's useful code here for sure, but it's only used by Lucene's Spatial module (which I work on a great deal).  With JTS about to be re-licesned in a way compatible with ASF projects, it is no longer required that Spatial4j's code exist outside of Lucene spatial.

I'm thinking of taking one of two paths:
 (A) Merge it into Apache Lucene's spatial module.  I'm a committer there.  Spatial4j as an independent project would be effectively dead but the code would live on co-located where it is used.  It would always be in sync with Lucene (no separate releases).
 (B) Join LocationTech.  This approach will only be deemed successful, as far as I'm concerned, if "eventually" people start using it.

What do you guys think of Spatial4j and what I should do with it?

~ David Smiley

_______________________________________________
dev mailing list
[hidden email]
http://lists.spatial4j.com/listinfo.cgi/dev-spatial4j.com
Reply | Threaded
Open this post in threaded view
|

Re: [Dev] FW: What to do with Spatial4j?

Chris Male
If you want to see broad use and control then I think keeping away from Lucene is your best solution.  But that'll come at a cost and it'll be the challenge of keeping whatever new spatial project and lucene marching towards in the same direction.


On Fri, Sep 27, 2013 at 8:05 AM, Smiley, David W. <[hidden email]> wrote:
FYI I sent this to the JTS list but if anyone is listening here then I would appreciate your input as well.

There's also a 3rd option I'm exploring with Martin on wether Spatial4j might be merged into JTS.

From: <Smiley>, "Smiley, David W." <[hidden email]>
Date: Wednesday, September 25, 2013 7:06 PM
To: "[hidden email]" <[hidden email]>
Cc: Ryan McKinley <[hidden email]>
Subject: What to do with Spatial4j?

Hello JTS list,

I'm writing to solicit the opinions of the folks on the JTS list on the direction I should take with Spatial4j — a ~2 year old open-source project I run with Ryan McKinley.  

Background:
Spatial4j came about as a subset of a body of Java spatial code in support of spatial information-retrieval for Apache Lucene and Solr. Spatial4j is the subset that deals solely with defining shapes, computing distances, shape intersection, and parsing and writing shape strings. To my knowledge, it is only used by Lucene's new spatial module. Spatial4j is an independent part of Lucene spatial for two reasons: Most importantly, it uses (albeit optionally) the 3rd party JTS library which is LGPL licensed. The Apache Software Foundations forbids a dependency, even an optional one, on LGPL licensed software. The second reason is that Spatial4j should be independently useful on its own. I don't know of the geodetic shape intersection algorithms it has existing in any other open-source software. Perhaps I didn't look hard enough but that is to the best of my knowledge.

Some specific features of note to the list here:
 * A circle implementation, both in euclidean 2D mode and geodetic surface-of-sphere mode
 * computs intersection cases (disjoint, contains, within, intersects) between the shapes it has and points and rectangles (either euclidean 2D or geodetic)
 * Rewrites JTS geometries of lat & lon coordinates to support dateline crossing.  No pole wrap support yet.
There are extensive randomized tests, by the way.

So there's useful code here for sure, but it's only used by Lucene's Spatial module (which I work on a great deal).  With JTS about to be re-licesned in a way compatible with ASF projects, it is no longer required that Spatial4j's code exist outside of Lucene spatial.

I'm thinking of taking one of two paths:
 (A) Merge it into Apache Lucene's spatial module.  I'm a committer there.  Spatial4j as an independent project would be effectively dead but the code would live on co-located where it is used.  It would always be in sync with Lucene (no separate releases).
 (B) Join LocationTech.  This approach will only be deemed successful, as far as I'm concerned, if "eventually" people start using it.

What do you guys think of Spatial4j and what I should do with it?

~ David Smiley

_______________________________________________
dev mailing list
[hidden email]
http://lists.spatial4j.com/listinfo.cgi/dev-spatial4j.com



_______________________________________________
dev mailing list
[hidden email]
http://lists.spatial4j.com/listinfo.cgi/dev-spatial4j.com