Thanks for the detailed response! Here is what I'm trying to do and I'm still not sure how to accomplish it:
1. I have a node which is a person 2. I have geo data as that person moves around the world 3. I use the geodata to create a bounding box of where that person has been today 4. I want to say, was this person A near location X today? 5. I do this by seeing if location X is in A's bounding box. >From looking at what you suggest doing, it's not clear how I assign the node person A to a layer? Is it that the bounding box is now in the layer and not in the node? The issue then becomes, how od I associate the two as the RTree relationship seems to establish itself on the bounding box between the node and the layer. Many thanks for your patience as I learn this challenging material. On Tue, Jun 7, 2011 at 4:13 PM, Craig Taverner <[email protected]> wrote: > I think you need to differentiate the bounding boxes of the data in the > layer (stored in the database), and the bounding box of the search query. > The search query is not stored in the database, and will not be seen as a > node or nodes in the database. So if you want to search for data within > some > bounding box or polygon, then express that in the search query, and you do > not need to care about how your nodes are stored in the database. > > So when you say you want to make a larger bounding box, I assume you are > talking about the query itself. The REST API has the method > findGeometriesInLayer, which takes minx, maxx, miny, maxy parameters and > you > can set those to whatever you want for your query. > > The REST API also exposes the CQL query language supported by GeoTools. > This > allows you to perform SQL-like queries on geometries and feature > attributes. > For example, you can search for all objects within a specific polygon (not > just a rectangular bounding box), as well as conforming to certain > attributes. See > http://docs.geoserver.org/latest/en/user/tutorials/cql/cql_tutorial.htmlfor > some examples of CQL. > > However, our current CQL support is not fully integrated with the RTree > index. This means that the CQL itself will not benefit from the index, but > be a raw search. You can, however, still get the benefit of the index by > passing in the bounding box separately. So, for example, you want to search > for data in a polygon. Make the polygon object, get it's bounding box and > also the CQL query string. Then make a 'dynamic layer' using the CQL (which > is a bit like making a prepared statement). Then perform the same > 'findGeometriesInLayer' method mentioned above, using the bounding box and > the dynamic layer (containing the CQL). This has the effect of using the > RTree index for a first approximate search, followed by pure CQL for the > final mile. > > See examples of this in action in the Unit tests in the source code. > > https://github.com/neo4j/neo4j-spatial/blob/master/src/test/java/org/neo4j/gis/spatial/ServerPluginTest.java#L109 > has > examples of CQL queries on the REST API. > > On Tue, Jun 7, 2011 at 5:48 PM, Boris Kizelshteyn <[email protected]> > wrote: > > > Thanks! So it seems you are saying that the bounding box represents a > > single > > point and is the same as the lat/lat lon? What if I make the bounding box > > bigger? What I am trying to do is geo queries against a bounding box made > > of > > a set of points, rather than individual points. So the query is, find the > > nodes where the given point falls inside their bounding boxes. Can I do > > this > > with REST? > > > > Thanks! > > > > On Tue, Jun 7, 2011 at 11:34 AM, Craig Taverner <[email protected]> > wrote: > > > > > Hi, > > > > > > The bounding boxes are used by the RTree index, which is a typical way > to > > > index spatial data. For Point data, the lat/long and the bounding box > are > > > the same thing, but for other shapes (streets/LineString and Polygons), > > the > > > bounding box is quite different to the actual geometry (which is not > just > > a > > > single lat/long, but a set of connected points forming a complex > shape). > > > > > > The RTree does not differentiate between points and other geometries, > > > because it cares only about the bounding box, and therefor we provide > > that > > > even for something as simple as a Point. > > > > > > Does that answer the question? > > > > > > Regards, Craig > > > > > > On Tue, Jun 7, 2011 at 4:57 PM, Boris Kizelshteyn <[email protected]> > > > wrote: > > > > > > > Greetings! > > > > > > > > Perhaps someone using neo4j-spatial can answer this seemingly simple > > > > question. Nodes classified into layers have both lat/lon properties > and > > > > bounding boxes, the bounding box seems to be required to establish > the > > > > relationship between node and layer, however the node is not found if > > the > > > > lat/lon does not match the query. Can someone explain the > relationship > > > > between these two properties on a node? > > > > > > > > Many thanks! > > > > _______________________________________________ > > > > Neo4j mailing list > > > > [email protected] > > > > https://lists.neo4j.org/mailman/listinfo/user > > > > > > > _______________________________________________ > > > Neo4j mailing list > > > [email protected] > > > https://lists.neo4j.org/mailman/listinfo/user > > > > > _______________________________________________ > > Neo4j mailing list > > [email protected] > > https://lists.neo4j.org/mailman/listinfo/user > > > _______________________________________________ > Neo4j mailing list > [email protected] > > _______________________________________________ Neo4j mailing list [email protected] https://lists.neo4j.org/mailman/listinfo/user

