2014-11-06 60 views
1

我試圖開發一個應用程序,它接受來自用戶的緯度,經度和方向(手機指向的方向)。我需要使用座標來查找用戶視線中的第一個對象(最有可能是建築物)。該建築物將作爲多邊形存儲在數據庫中。有沒有Neo4j查詢?我試圖回答類似於「查找所有與Capricon相交的國家/地區」的問題。Neo4j空間 - 找到一個多邊形和一條線的交點

感謝您的閱讀。我很感激幫助。

+0

嗨,也許這個答案在堆棧可以幫助你http://stackoverflow.com/questions/24548819/neo4j-spatial-contain-search – 2014-11-06 19:24:01

+0

你將不得不嘗試自己的解決方案。然後回來問一個問題,如果出現問題。 – mihai 2014-11-06 19:24:18

回答

1

如果您的應用程序是用Java編寫與嵌入式API,然後Neo4j的 空間有你所需要的,因爲它利用JTS的內部 ,所以你可以執行任何JTS查詢你想要的工具。但是,要從 RTree索引中受益,以便快速查詢,您需要在一定程度上限制 搜索範圍。如果您有希望 的最大距離的想法進行搜索,你可以通過兩種方式解決這個問題:

  1. 無論是 - 做一個初始距離搜索找到的最大距離內的所有幾何形狀,然後在執行細化得到的數據集只能得到與視線相交的幾何圖形。
  2. 或者 - 爲視線創建LineString,其長度與您的最大距離匹配,然後執行與此LineString相交的所有幾何圖形的交集搜索,並選擇最接近的。

,第二個選項只會Java API中的工作,但將是 以來最快的搜索將只考慮沿視線 在RTREE行對象,所以索引搜索是比距離更具有選擇性 搜索選項(將搜索所有方向)。

相反,如果應用程序要使用REST API,那麼這樣做會很困難,因爲該API只允許搜索點。我建議創建一個非託管擴展,並使用Java進行工作,併爲此功能公開您自己的REST端點。

相關問題