3

私は Neo4j 2.0 用の空間サーバー プラグインを使用しており、http://neo4j.github.io/spatial/のガイドに従ってStockholm という名前のノードを追加しました。

:POST http://localhost:7475/db/data/ext/SpatialPlugin/graphdb/addSimplePointLayer
{
  "layer" : "geom",
  "lat" : "lat",
  "lon" : "lon"
}
:POST http://localhost:7475/db/data/index/node/
{
  "name" : "geom",
  "config" : {
    "provider" : "spatial",
    "geometry_type" : "point",
    "lat" : "lat",
    "lon" : "lon"
  }
}
:POST http://localhost:7475/db/data/node
{
  "lat" : 60.1,
  "lon" : 15.2,
  "name" : "Stockholm"
}
:POST http://localhost:7475/db/data/ext/SpatialPlugin/graphdb/addNodeToLayer
{
  "layer" : "geom",
  "node" : "http://localhost:7475/db/data/node/4"
}

次のコマンドを使用して、REST 経由でノードを取得できます。

:POST http://localhost:7475/db/data/ext/SpatialPlugin/graphdb/findGeometriesWithinDistance
{
  "layer" : "geom",
  "pointX" : 15.0,
  "pointY" : 60.0,
  "distanceInKm" : 100
}

ただし、以下のサイファークエリではありません。何故ですか?ここで明らかな間違いをしていますか?

START n=node:geom('withinDistance:[60.0,15.0, 100.0]') RETURN n;
4

2 に答える 2

2

Cypher を使用してクエリを実行するには、各ノードをインデックスに追加する必要があります。

    :POST http://localhost:7474/db/data/index/node/geom
    {
      'value': 'dummy', 
      'key': 'dummy', 
      'uri': 'http://localhost:7474/db/data/node/NODE_ID_HERE'
    }

私は最近、 Neo4j Spatial を使い始めることについてブログ記事を書きました。

于 2014-03-15T14:21:57.120 に答える