次の方法で共有


geo_line_centroid()

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

地球上の線または複数線の重心を計算します。

構文

geo_line_centroid(lineString)

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

パラメーター

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

返品

GeoJSON 形式で、動的データ型の重心座標値。 行または複数行が無効な場合、クエリは 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.95796, 40.80042], [-73.97317, 40.764486]]});
print centroid = geo_line_centroid(line);

出力

centroid
{"type": "Point", "coordinates": [-73.965567057230942, 40.782453249627416]}

次の例では、線の重心経度を計算します。

let line = dynamic({"type":"LineString","coordinates":[[-73.95807266235352,40.800426144169315],[-73.94966125488281,40.79691751000055],[-73.97317886352539,40.764486356930334],[-73.98210525512695,40.76786669510221],[-73.96004676818848,40.7980870753293]]});
print centroid = geo_line_centroid(line)
| project lng = centroid.coordinates[0]

出力

lng
-73.9660675626837

次の例では、線の重心をマップ上に視覚化します。

let line = dynamic({"type":"MultiLineString","coordinates":[[[-73.95798683166502,40.800556090021466],[-73.98193359375,40.76819171855746]],[[-73.94940376281738,40.79691751000055],[-73.97317886352539,40.76435634049001]]]});
print centroid = geo_line_centroid(line)
| render scatterchart with (kind = map)

ニューヨーク市中央公園線の重心のスクリーンショット。

次の例では、無効な行が原因で true が返されます。

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

出力

is_bad_line
true