搜尋此網誌

2015年10月23日 星期五

Geometry常用的function 3 of 3

延續前一篇

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
希望對大家有幫助

沒有留言:

張貼留言