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

並び替えられた GeoPoint の行からシンプルなジオメトリを作成する

対応環境: Batch

GeoPoint の列と順序が指定されている場合、指定された順序で GeoPoint を接続してポリゴンまたはラインストリングを返します。この関数は、データが表形式であり、1 行がラインストリングまたはポリゴンのシェル内の個々の GeoPoint を表していると仮定します。また、そのポイントの順序を指定する列も含まれます。ポリゴンの場合、この順序はシェルの周りを反時計回りに移動するポイントを特定する必要があります。これらのポイントの順序とパーティション(グループ化)を指定すると、関数は order-by 列の昇順で GeoPoint を接続することでそのパーティションの必要なジオメトリを構築します。

式のカテゴリ: Geospatial

引数

  • GeoPoint - ジオメトリが構築される GeoPoint の列。データセットの各行は個々の GeoPoint を表す必要があります。null 値がある場合、それらの行は無視されます。
    Expression<GeoPoint>
  • Order by (ascending) - ラインストリングまたは目的のポリゴンのシェルを構築するために GeoPoint が並び替えられる値の列。グループ内で値が同一の場合、順序はランダムです。null 値がある場合、それらの行は無視されます。
    Expression<Byte | Date | Decimal | Double | Float | Integer | Long | Short | Timestamp>
  • Output geometry type - 出力がポリゴンかラインストリングかを指定します。
    Enum<LineString, Polygon>

出力タイプ: Geometry

例 1: 基本ケース

引数の値:

  • GeoPoint: geo_point
  • Order by (ascending): order
  • Output geometry type: LINE_STRING

入力テーブル:

geo_pointorder
{
 latitude -> 0.0,
 longitude -> 0.0,
}
0
{
 latitude -> 1.0,
 longitude -> 0.0,
}
1
{
 latitude -> 1.0,
 longitude -> 1.0,
}
2

出力: {"type":"LineString","coordinates": [[0.0,0.0],[0.0, 1.0],[1.0,1.0]]}


例 2: 基本ケース

引数の値:

  • GeoPoint: geo_point
  • Order by (ascending): order
  • Output geometry type: POLYGON

入力テーブル:

geo_pointorder
{
 latitude -> 0.0,
 longitude -> 0.0,
}
0
{
 latitude -> 1.0,
 longitude -> 0.0,
}
3
{
 latitude -> 1.0,
 longitude -> 1.0,
}
2
{
 latitude -> 0.0,
 longitude -> 0.0,
}
4
{
 latitude -> 0.0,
 longitude -> 1.0,
}
1

出力: {"type":"Polygon","coordinates": [[[0.0, 0.0], [1.0, 0.0], [1.0, 1.0], [0.0, 1.0], [0.0, 0.0]]]}


例 3: 基本ケース

引数の値:

  • GeoPoint: geo_point
  • Order by (ascending): order
  • Output geometry type: LINE_STRING

入力テーブル:

geo_pointorder
{
 latitude -> 0.0,
 longitude -> 0.0,
}
0.0
null1.0
null2.0
{
 latitude -> 0.0,
 longitude -> 1.0,
}
2.0

出力: {"type":"LineString","coordinates": [[0.0,0.0],[1.0, 0.0]]}


例 4: 基本ケース

引数の値:

  • GeoPoint: geo_point
  • Order by (ascending): order
  • Output geometry type: LINE_STRING

入力テーブル:

geo_pointorder
{
 latitude -> 0.0,
 longitude -> 0.0,
}
0.0

出力: null


例 5: 基本ケース

引数の値:

  • GeoPoint: geo_point
  • Order by (ascending): order
  • Output geometry type: POLYGON

入力テーブル:

geo_pointorder
{
 latitude -> 0.0,
 longitude -> 0.0,
}
0
{
 latitude -> 1.0,
 longitude -> 1.0,
}
2
{
 latitude -> 1.0,
 longitude -> 0.0,
}
3
{
 latitude -> 0.0,
 longitude -> 1.0,
}
1

出力: {"type":"Polygon","coordinates": [[[0.0, 0.0], [1.0, 0.0], [1.0, 1.0], [0.0, 1.0], [0.0, 0.0]]]}


例 6: 基本ケース

引数の値:

  • GeoPoint: geo_point
  • Order by (ascending): order
  • Output geometry type: POLYGON

入力テーブル:

geo_pointorder
{
 latitude -> 0.0,
 longitude -> 0.0,
}
0
{
 latitude -> 1.0,
 longitude -> 0.0,
}
1

出力: null


例 7: Null ケース

引数の値:

  • GeoPoint: geo_point
  • Order by (ascending): order
  • Output geometry type: POLYGON

入力テーブル:

geo_pointorder
null0

出力: null


例 8: Null ケース

引数の値:

  • GeoPoint: geo_point
  • Order by (ascending): order
  • Output geometry type: LINE_STRING

入力テーブル:

geo_pointorder
{
 latitude -> 0.0,
 longitude -> 0.0,
}
0
{
 latitude -> 1.0,
 longitude -> 1.0,
}
null
{
 latitude -> 1.0,
 longitude -> 0.0,
}
1

出力: {"type":"LineString","coordinates": [[0.0,0.0],[0.0, 1.0]]}