注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

ラインストリングに沿ったジオポイントの補間

サポートされている環境: Batch, Streaming

ラインに沿って補間されたポイントを返します。実装は、地球の球面近似を使用して、ラインを最短経路として解釈します。

式カテゴリ: ジオスペーシャル

引数

  • Fraction - ラインストリングの全長のうち、ジオポイントを取得する位置を示す割合。ラインストリングの開始点から始まります。0 から 1 までのフロートでなければなりません。
    Expression<Decimal | Double | Float>
  • Linestring - ジオポイントを補間するラインストリング。
    Expression<Geometry>

出力タイプ: GeoPoint

例 1: 基本ケース

引数の値:

  • Fraction: fraction
  • Linestring: linestring
linestringfraction出力
{"type":"LineString","coordinates":[[0.0,2.0],[30.0,0.0]]}0.5{
latitude: 1.0352686301676643,
longitude: 15.004677545504547,
}
{"type":"LineString","coordinates":[[30.0,2.0],[50.0,3.0]]}0.8{
latitude: 2.8256098405656185,
longitude: 45.99752305664789,
}
{"type":"LineString","coordinates":[[45.0,9.0],[90.0,4.0]]}0.2{
latitude: 8.363732883448177,
longitude: 54.073497456494955,
}

例 2: 基本ケース

引数の値:

  • Fraction: fraction
  • Linestring: linestring
linestringfraction出力
{"type":"LineString","coordinates":[[0.0,2.0],[30.0,0.0]]}0.5{
latitude: 1.0352686301676643,
longitude: 15.004677545504547,
}
{"type":"LineString","coordinates":[[30.0,2.0],[50.0,3.0]]}0.8{
latitude: 2.8256098405656185,
longitude: 45.99752305664789,
}
{"type":"LineString","coordinates":[[45.0,9.0],[90.0,4.0]]}0.2{
latitude: 8.363732883448177,
longitude: 54.073497456494955,
}

例 3: 基本ケース

引数の値:

  • Fraction: fraction
  • Linestring: linestring
linestringfraction出力
{"type":"LineString","coordinates":[[0.0,2.0],[30.0,0.0]]}0.5{
latitude: 1.0352686301676643,
longitude: 15.004677545504547,
}
{"type":"LineString","coordinates":[[30.0,2.0],[50.0,3.0]]}0.8{
latitude: 2.825609851378893,
longitude: 45.99752329517703,
}
{"type":"LineString","coordinates":[[45.0,9.0],[90.0,4.0]]}0.2{
latitude: 8.363732872387065,
longitude: 54.0734975914614,
}

例 4: Null ケース

引数の値:

  • Fraction: fraction
  • Linestring: linestring
linestringfraction出力
{"type":"LineString","coordinates":[[10.0,4.0],[75.0,0.0]]}nullnull
{"type":"LineString","coordinates":[[10.0,8.0],[35.0,0.0]]}-0.5null
{"type":"LineString","coordinates":[[10.0,8.0],[35.0,0.0]]}1.6null
{"type":"MultiLineString","coordinates":[[[100.0,0.0]], [[102.0,2.0]]]}0.4null
{"type":"GeometryCollection","geometries":{"type":"LineString","coordinates":[[10.0,4.0]]}}0.5null
null1.0null

例 5: エッジケース

説明: Fraction の値が 0 の場合は開始点の GeoPoint を返し、1 の場合は終了点の GeoPoint を返します。浮動小数点の誤差は存在しますが、ほとんどのユースケースには十分な精度があります。 引数の値:

  • Fraction: fraction
  • Linestring: linestring
linestringfraction出力
{"type":"LineString","coordinates":[[10.0,4.0],[75.0,0.0]]}0.0{
latitude: 4.0,
longitude: 9.999999999999998,
}
{"type":"LineString","coordinates":[[10.0,8.0],[35.0,0.0]]}1.0{
latitude: 0.0,
longitude: 35.0,
}
{"type":"LineString","coordinates":[[10.0,8.4],[35.0,0.0],[163.0,67.9]]}1.0{
latitude: 67.90000000000002,
longitude: 163.0,
}
{"type":"LineString","coordinates":[[10.0,8.4],[35.0,0.0],[163.0,67.9]]}0.0{
latitude: 8.400000000000002,
longitude: 9.999999999999998,
}