I've just set the Neo4j Spatial plugin on my server and I'm using SDN 3.1.2 to create my wkt index:
@Indexed(indexName = "CarsLocation", indexType = IndexType.POINT) var wkt: String
The whole works great and I can make queries involving withinDistance
using the HTTP console like this, returning my matched node:
POST /db/data/ext/SpatialPlugin/graphdb/findGeometriesWithinDistance {"layer":"CarsLocation","pointX":48.892501,"pointY":2.373140,"distanceInKm":100.0}
However, I want to query using Cypher like this:
start n = node:CarsLocation("withinDistance:[48.892501,2.373140,100.0]") return n
It just returns 0 rows, no matter the values are.
I came across this post, advising to manually add the Car node to the spatial index: CarsLocation.
So I executed this command:
POST /db/data/index/node/CarsLocation {"value":"dummy","key":"dummy", "uri":"http://localhost:7474/db/data/node/30"} //30 being the Car node I want to index
but it also doesn't make the cypher query works.
I also try executing Cypher through an http call:
POST /db/data/cypher {"query" : "start n = node:CarsLocation({indexQuery}) return n", "params": {"indexQuery": "withinDistance:[48.892067, 2.373140, 10.0]"}}
Doesn't work either.
However, when I specify a huge amount of kilometers (IMO exceeding the limit), this one passes:
start n = node:CarsLocation("withinDistance:[48.892501,2.373140,10000.0]") return n
(Returning my Car node 30).
Did I miss something important?
I don't figure out where could be the mistake, preventing Cypher query to work.
I'm pointing out I'm using Neo4j 2.1.2.
Mik378,
The problem here is pretty simple. The 'withinDistance' Cypher spatial index query has a quirk (a bug, as far as I'm concerned). You must specify latitude first, then longitude. I'm not familiar with SDN, so I don't know if you also need to do the explicit spatial index creation commands.
Grace and peace,
Jim