neo4j-contrib / spatial

Neo4j Spatial is a library of utilities for Neo4j that faciliates the enabling of spatial operations on data. In particular you can add spatial indexes to already located data, and perform spatial operations on the data like searching for data within specified regions or within a specified distance of a point of interest. In addition classes are provided to expose the data to geotools and thereby to geotools enabled applications like geoserver and uDig.
http://neo4j-contrib.github.io/spatial
Other
780 stars 192 forks source link

RoadMap of neo4j-spatial? #53

Closed ventlam closed 5 years ago

ventlam commented 12 years ago

I found the http://components.neo4j.org/neo4j-spatial/ page have been remove ,so i can't to reach the road map of this project.Is there any idea about it?

peterneubauer commented 12 years ago

Hi there, we are trying to get Neo4j Spatial to a 1.0 release but need some more testing for it. After that, the plan is to integrate it better with the Neo4j indexing system in order to expose this functionality to the whole of neo4j. Is there something specia you are looking for?

thomasfr commented 11 years ago

This issue was opened 11 months ago. Are there plans to release a 1.0 release soon? Maybe integrate it in neo4j 2.0?

peterneubauer commented 11 years ago

@thomasfr we recently integrated the Spatial manual to run on http://neo4j.github.io/spatial/, so we could start mapping out a roadmap there? Any help in bringing in more development to actually make it happen is hugely appreciated. We have a number of items we want to push, I can add them.

thomasfr commented 11 years ago

Hi, that would be great. I am interested, if it will be possible to maintain (create, modify, delete) spatial indexes with cypher in the future. I have read here http://blog.neo4j.org/2013/01/2013-whats-coming-next-in-neo4j.html that with 2.0 cypher is the way to go and it should be possible to work and maintain your graphdb with neo4j server with cypher only. I am asking because i would really like to use the spatial plugin but i just want to use neo4j server (over HTTP) and not embedded.

peterneubauer commented 11 years ago

Yes. @jexp and I are right now trying to find a good way to refactor the indexing to fit the label indexes, that must not modify the existing graph structure in order to be idempotent. we also might end up writing a legacy-index adapter for things like spatial, but that is not the best solution.

Also, I could add a sample documentation of the existing REST endpoints and point you to it, so you can add the others, looking like http://docs.neo4j.org/chunked/snapshot/rest-api.html ?

On Wed, Jun 12, 2013 at 10:52 AM, Thomas Fritz notifications@github.comwrote:

Hi, that would be great. I am interested, if it will be possible to maintain (create, modify, delete) spatial indexes with cypher in the future. I have read here http://blog.neo4j.org/2013/01/2013-whats-coming-next-in-neo4j.html that with 2.0 cypher is the way to go and it should be possible to work and maintain your graphdb with neo4j server with cypher only. I am asking because i would really like to use the spatial plugin but i just want to use neo4j server (over HTTP) and not embedded.

— Reply to this email directly or view it on GitHubhttps://github.com/neo4j/spatial/issues/53#issuecomment-19313411 .

thomasfr commented 11 years ago

That would be very helpful. Can i ask you to provide a very short step by step guide for:

Thanks for pointing me to the rest-api doc.

mneedham commented 11 years ago

Hey Thomas,

I wrote a blog post about some stuff I did with football stadiums/spatial a few months ago.

I think it covers each of the points you mentioned - http://www.markhneedham.com/blog/2013/03/10/neo4jcypher-finding-football-stadiums-near-a-city-using-spatial/

Mark

On 12 June 2013 10:11, Thomas Fritz notifications@github.com wrote:

That would be very helpful. Can i ask you to provide a very short step by step guide for:

  • creating a SpatialIndex for existing data with long, lat properties for instance
  • adding new nodes and properties with long, lat
  • query them via cypher with a bounding box query for instance all over http rest.

Thanks for pointing me to the rest-api doc.

— Reply to this email directly or view it on GitHubhttps://github.com/neo4j/spatial/issues/53#issuecomment-19314209 .

thomasfr commented 11 years ago

hi @mneedham Thanks. I have read it already. Good example for using neo4j spatial. But as i have seen you were importing data via java in neo4j embedded. I just want to use neo4j server over HTTP. regards Thomas

peterneubauer commented 11 years ago

Thomas, Neo4j Spatial exposes the whole GIS functionality in the Java work through the Geotools, JTS and other spatial APIs. Replicating that in a generic REST API seems kinda wasteful. It might be better to write your importer as a Server Plugin, and then send your files there over REST, see http://docs.neo4j.org/chunked/snapshot/server-plugins.html

What we are thinking about breaking apart spatial a bit, so that we can move the basic functionality with just points, Lon/Lat and bounding boxes search into the Neo4j 2.0 Label Indexing infrastructure and make it be there by default, and the more advanced spatial functionality stays in neo4j Spatial. That said, we still need to find time and - more time to do it :)

/peter

On Thu, Jun 13, 2013 at 4:17 PM, Thomas Fritz notifications@github.comwrote:

hi @mneedham https://github.com/mneedham Thanks. I have read it already. Good example for using neo4j spatial. But as i have seen you were importing data via java in neo4j embedded. I just want to use neo4j server over HTTP. regards Thomas

— Reply to this email directly or view it on GitHubhttps://github.com/neo4j/spatial/issues/53#issuecomment-19394531 .

songololo commented 10 years ago

I am curious if there is any updated news on integrating basic spatial (lon / lat / bounding boxes) directly into Neo4j?

Thanks.

craigtaverner commented 10 years ago

We're putting together plans for that now. In fact we even have a branch where we're trying it out, but no idea yet when this will make it to production. We hope the plans formalize through the summer so we can make a more solid statement by the autumn. In a perfect world we'd even make a test release in the autumn. On Jun 6, 2014 1:20 PM, "shongololo" notifications@github.com wrote:

I am curious if there is any updated news on integrating basic spatial (lon / lat / bounding boxes) directly into Neo4j?

Thanks.

— Reply to this email directly or view it on GitHub https://github.com/neo4j-contrib/spatial/issues/53#issuecomment-45326444 .

songololo commented 10 years ago

Good news. Any way to tinker with a pre-release version?

thomasfr commented 10 years ago

imho basic spatial functions is a must nowadays. So :+1: for integrating some functionality with nice cypher integration

craigtaverner commented 10 years ago

The plans are definitely driven by current Cypher integration work. So in fact the components of spatial that are being ported into the core (and refined, refactored or rewritten as appropriate) are being selected largely based on what is needed to support a decent Cypher API.

Also, as Peter indicated last year, the port of Spatial to core kind-of required the existence of schema indexes (2.0 and later). It was very hard to make it a core database feature before that.

It is still too early for any tinkering with a pre-release version, but hopefully sometime during the summer we'll start asking for external feedback.

thomasfr commented 10 years ago

:heart: This sounds great!! So in the future, extra spatial index creation, and adding, removing nodes to this index will be unnecessary, right? This will be my personal favorite feature! Thanks

songololo commented 10 years ago

In the interim, are there any hacks or advice for basic spatial indexing without having to implement the full spatial package? I recall seeing somewhere on neo4j that prior to the spatial package, people used to 'roll their own' solutions. Would be great to know a little more about this if possible. Thanks.

craigtaverner commented 10 years ago

Shongololo, the current Neo4j Spatial is based on the concept of an in-graph index. Previous 'role your own' solutions were often the same. I wrote a kind of kd-tree index in 2009 for this. The RTree in Neo4j Spatial is simply a better index, but still in-graph. But if you go this way, you are really treating the index as part of of your data model. That can be very useful, but it does require you manage everything yourself.

If you are thinking of 'rolling your own' solution, why not simply use Neo4j Spatial as a library of tools for doing just that? It comes with the RTree, and utilities for working with Geometries. Of course, this is assuming you use the Java API for everything.

Thomasfr, you are correct. The future support will be similar to the schema indexes, in that you only need to conform to specific label+property patterns when making the nodes and they will be indexed automatically. The idea is to remove the need to manage the indexing yourself completely. And give Cypher complete access.

ehx-v1 commented 8 years ago

oh wow, that means WKT layers will be auto-indexed too? sounds awesome!

craigtaverner commented 5 years ago

I've just stumbled across this old discussion. Things sure worked out differently than planned. We did finally get real spatial support in Neo4j, including automatic indexeing, in the 3.4 release in 2018, but it was for points only. There certainly are plans for more spatial work going forward, but just as was the case with this discussion back in 2014, we really do not know which releases will support which features. Last year I gave a few presentations geared towards showing what 3.4 can do, and what you need to build yourself if you want go beyond that. Please refer to those presentations or the posts on community.neo4j.com for more information on roadmap.