このトピックでは、ST_ShadowRatio関数について説明します。 この関数は、ある期間またはある時点での単一のポイントまたは複数のポイントの影の比率を計算します。
構文
ジオメトリST_ShadowRatio (シーンsc、ジオメトリポイント、cstring日光);
ジオメトリST_ShadowRatio (シーンsc、ジオメトリポイント、ジオメトリ位置、cgring時間); Parameters
パラメーター | 説明 |
sc | シーンオブジェクト。 |
ポイント | 影の比率を計算するために使用されるポイントデータ。 値はGeometry型です。 |
日光 | 日光情報。 値はJSON形式です。 |
場所 | 影解析のシーンの経度と緯度。 値はGeometry型です。 |
時間 | シャドウ比が分析される時間。 |
次の表に、JSON形式のsunlightパラメーターのフィールドを示します。
フィールド | 説明 | 補足 |
場所 | 影の比率が分析されるシーンの経度と緯度。 例えば、中国北京のコミュニティの影の比率を分析する場合、コミュニティの経度と緯度の座標が使用されます。 | 欧州石油調査グループ (EPSG) の4326座標系を使用する必要があります。 シーンオブジェクト内の座標はローカル座標である。 このフィールドは、太陽光の方向を計算するためにシーンオブジェクトの経度と緯度を指定するために必要です。 |
start_time | シャドウ比分析の開始時間。 | 値は有効な時間形式である必要があります。 |
end_time | シャドウ比分析の終了時間。 | 値は有効な時間形式である必要があります。 |
time_interval | シャドー比が分析されるサンプリング間隔。 | 値は0にできません。 |
次の例では、sunlightパラメーターについて説明します。
{
sunlight = {
"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" // サンプリング間隔。
}説明
方法1: この関数は、指定された間隔でデータをサンプリングし、入力された太陽光情報に基づいて1つ以上の点の影の比率を計算します。 次に、関数は、1つ以上の点のm座標における影の比率を記録する。
方法2: この関数は、影が指定された時間に1つ以上のポイントをカバーするかどうかをチェックします。 影が1つ以上のポイントをカバーする場合、影の比率は1です。 影が1つ以上の点を覆わない場合、影の比率は0です。 この関数は、1つ以上の点のm座標における影の比率を記録する。
例
方法 1
SELECT ST_AsText(ST_ShadowRatio(the_scene, 'MULTIPOINT(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; --------- マルチポイントZM ((0 0 -2 0.636363636363636) 、(1 2 8 0) 、(-70 -400 1330 0))方法 2
SELECT ST_AsText(ST_ShadowRatio(the_scene, 'MULTIPOINT(-2 0 0, 0 0 0, 2 0 0, 0 2)) ': geometry, 'srid=4326; POINT(120 30)'::geometry, '2021-07-12 12:00:00 + 0800 ') からt_scene; --------- マルチポイントZM ((-2 0 0 0) 、(0 0 0 1) 、(2 0 0 0) 、(0 0 2 0))