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

ジオポイントの順序付けられた行からシンプルなジオメトリを作成する

対応している処理方法:バッチ

ジオポイントの行と順序が与えられた場合、指定された順序でジオポイントを接続することによって、ポリゴンまたはラインストリングを返します。この関数では、データが表形式であり、ラインストリングやポリゴンのシェル内の個々のジオポイントを表す単一の行があり、それらのポイントの順序を指定する行があることが前提となっています。ポリゴンの場合、この順序はシェルの周りを反時計回りに移動するようにポイントを識別する必要があります。これらのポイントの順序とパーティション(グループ化)が与えられた場合、関数は順序付け列の昇順でジオポイントを接続することで、そのパーティションに必要なジオメトリを構築します。 式のカテゴリ:ジオスペーシャル

宣言された引数

  • GeoPoint - ジオメトリが構築されるジオポイントの行。データセット内の各行は個々のジオポイントを表す必要があります。null 値がある場合、これらの行は無視されます。
    Expression<Geo-point>
  • Order by (ascending) - ジオポイントがラインストリングまたは目的のポリゴンのシェルを構築するために順序付けされる値の行。グループ内で値が同一である場合、順序はランダムです。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]]}