2016-08-16 28 views
1

我是新來的ArangoDB。我使用它與地理空間數據(geoJSON)。獨特的地理索引ArangoDB

數據庫允許分別具有相同經度和緯度的點的重複頂點。我假設,爲了消除重複的頂點,我必須將地理索引的唯一屬性設置爲true。我提到以前關於這個問題的討論,其中提出了改變約束屬性,而不是唯一屬性(對於版本1.3)。我嘗試了兩種方式。我將屬性的值更改爲true,對於它們中的每一個以及它們都是如此。我使用「ensureIndex」方法從arangosh做到了這一點。創建的索引仍然顯示爲唯一的錯誤。

我使用的是ArangoDB 3.0.4,文檔顯示該屬性的唯一性僅支持散列和跳過列表索引。關於如何繼續前進併爲唯一緯度&經度創建頂點的任何建議?

回答

1

長時間以來沒有獨特的選擇。我認爲這可以這樣解釋:

如果要防止將重複的座標存儲在數據庫中,則一個簡單的唯一選項可能不夠充分,因爲最小的偏差會使座標再次唯一 - 只需將其移動1英寸或cm任意方向。這個其他的座標應該也可以像重複一樣對待,但數字是不同的。我們必須計算到附近頂點的距離,看看它是否小於某個閾值纔會認爲它是重複的。

由於每個項目的期望設置可能不同(包括如何計算距離),因此應該在應用程序層進行管理。您可以編寫一個可以與之通話的Foxx服務來存儲新的座標。所有需要的計算和數據庫事務都可以在那裏完成。

+0

謝謝!我去做。 –