ST Geometry常見用法

2021-10-22 06:37:22 字數 1724 閱讀 7684

1、兩點距離計算(兩種方法換算km都需要除常量0.0097656)

1.st_geometry

--sde.st_distance(a.shape, b.shape)

--查詢距離a表某一條結果最近的三個b表中的點及距離

select rownum dis, a, c.b, distance

from

(select a.l_id a,

b.l_id b,

min(sde.st_distance(a.shape,b.shape)

/0.0097656

) distance

from hxtt_station_2g a, hxtt_chl_servicehall b

where a.l_id =

'993725952'

and b.city =

'湛江市'

group

by b.l_id, a.l_id

order

by distance) c

where rownum <=

32.勾股定理

--經度、緯度之差的平方和開根號

--sqrt(power(c.longitude-b.longitude,2)+power(c.latitude-b.latitude,2))

注:st_geometry在空間索引正常情況下速度比勾股定理數字運算快

2、包含(點在麵內,面在麵內),多用於給點賦予面資訊

--定義:如果第乙個 st_geometry 物件完全位於第二個 st_geometry 物件的範圍內則 st_within 返回 1

--a點資料,b面資料,更新a所屬面資訊

update hxtt_station_2g a

set(a.county, a.county_code, a.city_code, a.city)=(

select county, county_code, city_code, city

from hxtt_country_py b

where sde.st_within(a.shape, b.shape)=1

)where a.county is

null

;commit

;注:st_geometry提供多個判斷圖形關係函式,但st_within是利用索引查詢,效率高

3、面交集的部分(單表示例)

--sde.st_intersects (a.shape, b.shape) =1 判斷是否有交集

--sde.st_intersection (a.shape,b.shape) 交集的圖形

--查詢麵中所有記錄的交集部分(相交但不相同)

select rownum, sde.st_intersection(a.shape, b.shape) shape

from hxtt_station_4g_buffer a, hxtt_station_4g_buffer b

where sde.st_intersects(a.shape, b.shape)=1

and a.shape <> b.shape ;

mysql 常見用法 mysql常見用法

檢視慢日誌 show variables like slow query log show variables like long query time 設定慢日誌記錄什麼樣的sql,預設10s log queries not using indexes 未使用索引的查詢也被記錄到慢查詢日誌中,一般...

ST Geometry效率的測試與分析

測試環境 資料庫 oracle11g r1 11.1.0.6 64bit 中介軟體 arcsde10 64bit 資料情況 點資料 point,231772條記錄 面資料 poly,12條記錄 如下圖所示 1 st geometry操作符的選擇 測試內容 測試面狀要素所包含的點狀要素的數量以及內容 ...

ST Geometry 的空間運算函式

空間運算利用幾何函式來接收輸入的空間資料,對其進行分析,然後生成輸出資料,輸出資料為針對輸入資料執行分析的派生結果。完成以下操作可從輸入資料建立新資料。st buffer 函式通過在指定距離圈定幾何生成乙個幾何。緩衝主要幾何時或者當某個集合的緩衝多邊形相距足夠近會重疊時,將生成單獨的多邊形。當被緩衝...