次の方法で共有


geo_line_length()

適用対象: ✅Microsoft FabricAzure データ エクスプローラーAzure MonitorMicrosoft Sentinel

地球上の線または複数行の合計長を計算します。

構文

geo_line_length(lineString)

構文規則について詳しく知る。

パラメーター

件名 タイプ Required 説明
lineString dynamic ✔️ GeoJSON 形式の LineString または MultiLineString

返品

地球上の線または複数行の合計長 (メートル単位)。 行または複数行が無効な場合、クエリによって null 結果が生成されます。

Note

  • 地理空間座標は、WGS-84 座標参照系によって表されるものとして解釈されます。
  • 地球上での距離の測定に使う測地原点は、球体となっています。 線のエッジは、球体の測地線です。
  • 入力線のエッジが直交直線の場合は、geo_line_densify () を使用して平面のエッジを測地線に変換することを検討してください。
  • 入力が複数行で、複数の行が含まれている場合、結果は行和集合の合計長になります。

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 つの頂点間の最短のエッジが選択されます。

次の例では、線の長さの合計をメートル単位で計算します。

let line = dynamic({"type":"LineString","coordinates":[[-73.95807266235352,40.800426144169315],[-73.94966125488281,40.79691751000055],[-73.97317886352539,40.764486356930334]]});
print length = geo_line_length(line)

出力

length
4922.48016992081

次の例では、複数行の合計長をメートル単位で計算します。

let line = dynamic({"type":"MultiLineString","coordinates":[[[-73.95798683166502,40.800556090021466],[-73.98193359375,40.76819171855746]],[[-73.94940376281738,40.79691751000055],[-73.97317886352539,40.76435634049001]]]});
print length = geo_line_length(line)

出力

length
8262.24339753741

次の例では、無効な行が原因で True を返します。

print is_bad_line = isnull(geo_line_length(dynamic({"type":"LineString","coordinates":[[1, 1]]})))

出力

is_bad_line
True