ST_ShadowRatio
計算給定點(單個點或多個點)在某段時間內(nèi)或給定時刻的陰影率。
語法
geometry ST_ShadowRatio(scene sc, geometry points, cstring sunlight);
geometry ST_ShadowRatio(scene sc, geometry points, geometry location, cstring time);
參數(shù)
參數(shù)名稱 | 描述 |
sc | Scene對象。 |
points | 計算陰影率的點數(shù)據(jù),Geometry類型。 |
sunlight | 光照信息,JSON格式。 |
location | 陰影率分析場景所在的經(jīng)緯度信息,Geometry類型。 |
time | 陰影率分析的時間。 |
JSON格式的sunlight字段含義:
參數(shù)名稱 | 描述 | 備注 |
location | 陰影率分析場景所在的經(jīng)緯度信息,如對北京市的某個小區(qū)做陰影率分析,則為該小區(qū)對應的經(jīng)緯度坐標。 | 必須為EPSG:4326 坐標系。由于Scene對象中的坐標都是局部坐標,因此需要該參數(shù)來指定Scene對象所在經(jīng)緯度,用于計算光照方向。 |
start_time | 陰影率分析的開始時間。 | 必須為有效的時間格式。 |
end_time | 陰影率分析的結(jié)束時間。 | 必須為有效的時間格式。 |
time_interval | 陰影率分析的時間采樣間隔。 | 時間采樣間隔不得為0。 |
sunlight的示例如下:
{
sunlight = {
"location": "srid=4326; POINT(120 30)", //經(jīng)緯度信息
"start_time": "2021-07-12 08:00:00 +0800", //開始時間
"end_time": "2021-07-12 18:00:00 +0800", //結(jié)束時間
"time_interval": "01:00:00" //時間采樣間隔
}
描述
方式一:根據(jù)輸入的光照信息,從開始時間到結(jié)束時間,按照指定的時間間隔進行采樣,計算給定點(單個點或多個點)的陰影率,并將陰影率記錄在點的m坐標中。
方式二:計算給定點(單個點或多個點)在指定時刻是否被陰影所覆蓋,如果被陰影覆蓋陰影率則為1,否則為0。并將陰影率記錄在點的m坐標中。
示例
方式一:
SELECT ST_AsText(ST_ShadowRatio(the_scene, 'MULTIPOINT(0 0 -2, 1 2 8, -70 -400 1330)'::geometry, '{"location": "srid=4326; POINT(120 30)", "start_time": "2021-07-12 08:00:00 +0800", "end_time":"2021-07-12 18:00:00 +0800", "time_interval": "01:00:00"}')) from t_scene; -------- MULTIPOINT ZM ((0 0 -2 0.636363636363636),(1 2 8 0),(-70 -400 1330 0))
方式二:
SELECT ST_AsText(ST_ShadowRatio(the_scene, 'MULTIPOINT(-2 0 0, 0 0 0, 2 0 0, 0 0 2)'::geometry, 'srid=4326; POINT(120 30)'::geometry, '2021-07-12 12:00:00 +0800')) from t_scene; -------- MULTIPOINT ZM ((-2 0 0 0),(0 0 0 1),(2 0 0 0),(0 0 2 0))
文檔內(nèi)容是否對您有幫助?