1.8.2 用の Neo4j Spatial 0.9 で Neo4j 1.8.2 を使用しています ( http://m2.neo4j.org/content/repositories/releases/org/neo4j/neo4j-spatial/0.9-neo4j-1.8.2/ )
ここからのサンプルコードに従ってくださいhttp://architects.dzone.com/articles/neo4jcypher-finding-football
次のクエリを実行するまで、すべてが正常に機能します。
START n=node:stadiumsLocation('withinDistance:[53.489271,-2.246704, 5.0]')
RETURN n.name, n.wkt;
n.name がヌルです。グラフを調べたところ、次のデータが見つかりました。
Node[80]{lon:-2.20024,lat:53.483,id:79,gtype:1,bbox:-2.20024,53.483,-2.20024,53.483]}
Node[168]{lon:-2.29139,lat:53.4631,id:167,gtype:1,bbox:-2.29139,53.4631,-2.29139,53.4631]}
返されたノード 80 の場合、これは空間レコード用に作成されたノードであり、プロパティ ID:79 が含まれているようです。ノード 79 は、この例の実際のスタジアム レコードです。
IndexProviderTestのソースによると、コメント //これはもう必要ありません。返されるノードはすでに「実」ノードなので // Node node = db.getNodeById( (Long) spatialRecord.getProperty( "id" ) ); この機能は、私が使用しているバージョンでは利用できないことを示しているようです。
私の質問は、他の一致条件で withinDistance を使用するための推奨される方法は何ですか? 他にも満たすべき条件がいくつかありますが、実際のノードを実際に一致させるためのハンドルを取得できないようです。リレーションを明示的に作成する必要がありますか? Cypher を使用せず、コア API を使用してトラバーサルを行いますか? クエリを分割しますか?