2015-09-10 89 views
2

從我所看到的,沒有辦法有效地確定DocumentDb中的多邊形和圓相交。事實上,這甚至可以用兩個多邊形來完成嗎?DocumentDb:多邊形交集?

Intersection

+0

請舉例的這些東西在你的數據庫如何表示?如果它們是地理空間的,那麼Doc​​umentDB有一些可能有用的功能,但沒有一個功能完全符合你的需求。最接近的是ST_WITHIN,它表示一個點是否在多邊形內。如果不是地理空間的,那麼你需要寫一些UDF或存儲過程來計算它。關於你想要完成什麼和你的數據結構的更多細節可能會讓某人爲你提供更具體的答案。 –

回答

1

目前 - DocumentDB的地理空間查詢支持不支持查找兩個多邊形之間的交叉點。

它支持查詢多邊形內的點。示例查詢看起來是這樣的:

-- Find all volcanoes within the state boundary 
-- of Washington (represented as a polygon) 
SELECT * 
FROM volcanoes v 
WHERE ST_WITHIN(v.Location, 
{ "type": "Polygon", "coordinates": [[ 
    [-124.63, 48.36], [-123.87, 46.14], 
    [-122.23, 45.54], [-119.17, 45.95], 
    [-116.92, 45.96], [-116.99, 49.00], 
    [-123.05, 49.02], [-123.15, 48.31], 
    [-124.63, 48.36]]]} 
) 
+0

請注意,您可以在類似於http://www.kevlindev.com/gui/math/intersection/Intersection.js的JavaScript中實現UDF以擴展DocumentDB的功能。這將是一個掃描。 –