簡體   English   中英

使用REST / neo4jclient將節點添加到C#中的空間層

[英]adding nodes to spatial layer in c# using REST /neo4jclient

我正在用C#創建一個基於位置的應用程序,並且正在使用neo4j和neo4j空間插件來處理它。 為了與空間插件進行通信,我必須使用其REST API,因為neo4jClient當前不支持它。 現在我想將所有節點(帶有位置數據,即lat,lon)添加到空間層 ,為此我需要所有neo4j節點ID,我的問題是有沒有辦法通過其數據獲取先前插入的節點的節點ID(在這種情況下,是經緯度),還是有更好的方法將節點添加到空間層?

編輯:我還使用neo4jClient進行其他插入和檢索

首先,除了通過節點的ID將節點添加到空間外,沒有其他方法。

您可以編寫一個Cypher查詢,通過使用has(n.Property)函數來檢索所有節點ID,例如:

// 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);
 }

因此,還有一個其他的REST端點:addMultipleNodesToLayer。 但是似乎還沒有推送。 我已經問過這個問題,並希望不久后可以使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM