geo_line_densify()
適用対象: ✅Microsoft Fabric✅Azure データ エクスプローラー✅Azure Monitor✅Microsoft Sentinel
中間点を追加して、平面線または複数線エッジを測地線に変換します。
構文
geo_line_densify(
lineString,
tolerance,
[ preserve_crossing ])
構文規則について詳しく知る。
パラメーター
件名 | タイプ | Required | 説明 |
---|---|---|---|
lineString | dynamic |
✔️ | GeoJSON 形式の LineString または MultiLineString。 |
tolerance | int、long、または real | 元の平面エッジと変換された測地エッジ チェーンの間の最大距離をメートル単位で定義します。 サポートされる値の範囲は [0.1, 10000] です。 指定されない場合は、既定値の 10 が使用されます。 |
|
preserve_crossing | bool |
true 場合は、タイムリディアン上のエッジ交差を保持します。 指定されない場合は、既定値の false が使用されます。 |
返品
GeoJSON 形式および動的データ型の密度の高い線。 line または tolerance が無効な場合、クエリは null 値の結果を生成します。
Note
地理空間座標は、WGS-84 座標参照系によって表されるものとして解釈されます。
LineString の定義
dynamic({"type": "LineString","coordinates": [[lng_1,lat_1], [lng_2,lat_2], ..., [lng_N,lat_N]]})
dynamic({"type": "MultiLineString","coordinates": [[line_1, line_2, ..., line_N]]})
- LineString 座標配列には、少なくとも 2 つのエントリが含まれている必要があります。
- 座標 [経度,緯度] が有効である必要があります。 経度は [-180, + 180] の範囲の実数で、緯度は [-90, + 90] の範囲の実数である必要があります。
- エッジの長さは 180 度未満でなければなりません。 2 つの頂点間の最短のエッジが選択されます。
制約
- 密度の高い線内のポイントの最大数は 10485760 に制限されます。
- 動的形式での線の格納にはサイズの制限があります。
動機
- geoJSON 形式 は 2 つの点間のエッジを直線のデカルト線として定義し、
geo_line_densify()
では geodesic を使用します。 - 測地線または平面エッジを使用する決定は、データセットによって行われる場合があり、特に長辺に関連します。
例
次の例では、マンハッタン アイランド内の道路を密度化します。 エッジは短く、平面エッジと、それに対応する測地線の間の距離は、tolerance で指定された距離よりも短いものです。 そのため、結果は変わりません。
print densified_line = tostring(geo_line_densify(dynamic({"type":"LineString","coordinates":[[-73.949247, 40.796860],[-73.973017, 40.764323]]})))
出力
densified_line |
---|
{"type":"LineString","coordinates":[[-73.949247, 40.796860], [-73.973017, 40.764323]]} |
次の例では、長さ約 130 km のエッジを密度化します
print densified_line = tostring(geo_line_densify(dynamic({"type":"LineString","coordinates":[[50, 50], [51, 51]]})))
出力
densified_line |
---|
{"type":"LineString","coordinates":[[50,50],[50.125,50.125],[50.25,50.25],[50.375,50.375],[50.5,50.5],[50.625,50.625],[50.75,50.75],[50.875,50.875],[51,51]]} |
次の例では、座標入力が無効なため、null 値の結果が返されます。
print densified_line = geo_line_densify(dynamic({"type":"LineString","coordinates":[[300,1],[1,1]]}))
出力
densified_line |
---|
次の例では、tolerance の入力が無効であるため、null 値の結果が返されます。
print densified_line = geo_line_densify(dynamic({"type":"LineString","coordinates":[[1,1],[2,2]]}), 0)
出力
densified_line |
---|