Geometry常用的function 2 of 3
繼續介紹其他 Geometry 的 function
- .STRelate() - 判斷幾何圖形與另一個幾何圖形是不是某種幾何關係
DECLARE @g geometry;
DECLARE @h geometry;
SET @g = geometry::STGeomFromText('LINESTRING(0 2, 2 0, 4 2)', 0);
SET @h = geometry::STGeomFromText('POINT(5 5)', 0);
SELECT @g.STRelate(@h, 'FF*FF****');
這裡可以指定某種的幾何關係
然後若是回傳1,否回傳0
在指定各種幾何關係的方法是用 DE-9IM
Dimensionally Extended nine-Intersection Model (DE-9IM)
- .STSymDifference() - 無前後順序的差集
DECLARE @a geometry;
DECLARE @b geometry;
set @a= (select geom from 大里區太平區);
set @b= (select geom from 大里區);
select @b.STDifference (@a);
之前在做差集的時候
若 b - a,會是空值
但若想取得沒有前後順序的差集
select @b.STSymDifference (@a);
就可以用 STSymDifference
如此一來 a - b or b - a 就一樣了
- .STTouches() - 檢查兩個幾何圖形是否有共邊
DECLARE @a geometry= (select geom from 太平區);
DECLARE @b geometry= (select geom from 沙鹿區);
DECLARE @c geometry= (select geom from 大里區);
SELECT @a.STTouches(@b); --> 回傳0
SELECT @a.STTouches(@c); --> 回傳1
- .STX - 取得某個點幾何的X值
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('POINT(3 8)', 0);
SELECT @g.STX;
--> 回傳3
- .STY - 取得某個點幾何的Y值
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('POINT(3 8)', 0);
SELECT @g.STX;
--> 回傳8
以上就是比較常用的 geometry 的 function
希望對大家有幫助
沒有留言:
張貼留言