次の方法で共有


geo_line_densify()

適用対象: ✅Microsoft FabricAzure データ エクスプローラーAzure MonitorMicrosoft 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