次の方法で共有


geo_line_interpolate_point()

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

地球上の線の分数の値でポイントを計算します。

構文

geo_line_interpolate_point( lineString,端数)

構文規則の詳細について説明します。

パラメーター

名前 タイプ 必須 説明
lineString dynamic ✔️ GeoJSON 形式の LineString。
端数 real ✔️ 分数の値は、0 (行の先頭) から 1 (行の終わり) の間である必要があります。

返品ポリシー

GeoJSON 形式のポイント座標値と、特定の分数値の行文字列上の動的データ型。 行または分数の値が無効な場合、クエリは null 結果を生成します。

  • 地理空間座標は 、WGS-84 座標参照システムによって表されるものとして解釈されます。
  • 地球の距離を測定するために使用される 測地基準系 は球です。 ライン エッジは、球上 の測地線 です。
  • 入力ライン エッジが直線デカルト線の場合は、平面エッジを測地線に変換するために geo_line_densify() を使用することを検討してください。
  • 入力に複数の行文字列を含めないようにする必要があります。
  • 分数の値を計算するには、geo_line_locate_point() を使用します。

LineString の定義と制約

dynamic({"type": "LineString","coordinates": [[lng_1,lat_1], [lng_2,lat_2], ..., [lng_N,lat_N]]})

  • LineString 座標配列には、少なくとも 2 つのエントリが含まれている必要があります。
  • 座標 [経度,緯度] は有効である必要があります。経度は範囲 [-180, +180] の実数で、緯度は範囲 [-90, +90] の実数です。
  • エッジの長さは 180 度未満にする必要があります。 2 つの頂点間の最短エッジが選択されます。

例示

次の例では、行の開始位置から 25% 位置の点を計算します。

let line = dynamic({"type":"LineString","coordinates":[[-73.95796, 40.80042], [-73.97317, 40.764486]]});
print point = geo_line_interpolate_point(line, 0.25);

出力

ポイント
{"type": "Point", "coordinates": [-73.961764043218281, 40.791436687257232]}

次の例では、線の開始から 90% のポイント経度を計算します。

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 point = geo_line_interpolate_point(line, 0.9)
| project lng = point.coordinates[0]

出力

結果
-73.96556545832799

次の例では、マップ上のポイントを視覚化します。

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 point = geo_line_interpolate_point(line, 0.9)
| render scatterchart with (kind = map)

ニューヨーク市中央公園の補間ポイントのスクリーンショット。

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

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

出力

is_bad_line
ほんとう