使用REST/neo4jclient向c#中的空间层添加节点

使用REST/neo4jclient向c#中的空间层添加节点,c#,neo4j,neo4j-spatial,C#,Neo4j,Neo4j Spatial,我正在用c#制作一个基于位置的应用程序,我正在使用neo4j和neo4j空间插件来处理它。为了与spatial插件通信,我必须使用它的RESTAPI,因为neo4jClient目前不支持它。现在我想,我需要所有的neo4j节点id,我的问题是,有没有办法通过它的数据(在本例中,是lat/lon)获得先前插入节点的节点id,或者有没有更好的方法将节点添加到空间层 编辑: 我还将neo4jClient用于其他插入和检索首先,除了通过节点ID将节点添加到空间节点之外,没有其他方法 您可以使用函数has

我正在用c#制作一个基于位置的应用程序,我正在使用neo4j和neo4j空间插件来处理它。为了与spatial插件通信,我必须使用它的RESTAPI,因为neo4jClient目前不支持它。现在我想,我需要所有的neo4j节点id,我的问题是,有没有办法通过它的数据(在本例中,是lat/lon)获得先前插入节点的节点id,或者有没有更好的方法将节点添加到空间层

编辑:
我还将neo4jClient用于其他插入和检索

首先,除了通过节点ID将节点添加到空间节点之外,没有其他方法

您可以使用函数has(n.Property)编写检索所有节点ID的密码查询,例如:

实际上还有另一个REST终点:addMultipleNodesToLayer。但似乎它还没有被推。我已经问过了,希望能很快得到

// cypher-query to retrieve node Ids
client.Cypher
   .Match("(n:SpatialIndex)")
   .Where("has(n.lat)")
   .AndWhere("has(n.lon)")
   .Return(node => node.Id());

// add existing node to SimplePoint-Layer
public void AddNodeToLayer(long nodeId, string layer)
{
    string URINode = string.Format("{0}node/{1}",_client.BaseUrl, nodeId);
    string json = string.Format("{{\"layer\":\"{0}\", \"node\":\"{1}\"}}", layer, URINode);

    string URIAdd = string.Format("{0}ext/SpatialPlugin/graphdb/addNodeToLayer", _client.BaseUrl);
    HTTPCommand(new Uri(URIAdd), json);
 }