適用対象: ✅Microsoft Fabric✅Azure データ エクスプローラー✅Azure Monitor✅Microsoft 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 |
---|
ほんとう |