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

Geometry shortest distance

サポートされている形式: Batch, Streaming

2 つの有効なジオメトリが与えられた場合、それらの間の最短(大円)距離をメートル単位で計算します。地球の球面近似を使用します。重複するジオメトリは距離が 0 になります。

式のカテゴリ: Geospatial

宣言された引数

  • Geometry a - Geometry a.
    Expression<Geometry>
  • Geometry b - Geometry b.
    Expression<Geometry>

出力タイプ: Double

例 1: 基本ケース

引数の値:

  • Geometry a: geometry_a
  • Geometry b: geometry_b
geometry_ageometry_b出力
{"type":"LineString","coordinates":[[-40, 0],[-30, 0]]}}{"type":"Polygon","coordinates":[[[-30,-30],[-30, 30],[30, 30],[30, -30],[-30, -30]]]}0.0
{"type":"Point","coordinates":[0,0]}}{"type":"Polygon","coordinates":[[[-30,-30],[-30, 30],[30, 30],[30, -30],[-30, -30]]]}0.0
{"type":"Point","coordinates":[-30,29]}}{"type":"Polygon","coordinates":[[[-30,-30],[-30, 30],[30, 30],[30, -30],[-30, -30]]]}0.0
{"type":"Polygon","coordinates":[[[40,0],[-40,0],[0,40],[40,0]]]}{"type":"Polygon","coordinates":[[[-30,-30],[-30, 30],[30, 30],[30,-30],[-30,-30]]]}0.0
{"type":"Polygon","coordinates":[[[-40,0],[40,0],[0,40],[-40,0]]]}{"type":"Polygon","coordinates":[[[-30,-30],[-30,0],[30,0],[30,-30],[-30,-30]]]}0.0

例 2: 基本ケース

引数の値:

  • Geometry a: geometry_a
  • Geometry b: geometry_b
geometry_ageometry_b出力
{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[87.0,77.0]},{"type":"LineString","coordinates":[[80.0,0],[90.0,0]]}]}{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[70.0,-100.0]},{"type":"Lin...39438.65354637
{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[170,90]},{"type":"LineStri...{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[-87,-73]},{"type":"LineStr...5310295.471462
{"type":"GeometryCollection","geometries":[{"type":"MultiPoint","coordinates":[[170,90],[171,91]]},{...{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[-87,-73]},{"type":"LineStr...5327143.5044855

例 3: 基本ケース

説明: 1 つのジオメトリがポイントで、もう 1 つが任意の GeometryCollection であるケース。式は、ポイントとジオメトリの間の最短距離がポリゴンの辺の中央にあることを特定する必要があります。 引数の値:

  • Geometry a: geometry_a
  • Geometry b: geometry_b
geometry_ageometry_b出力
{"type":"Point","coordinates":[1,24]}{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[70.0,-100.0]},{"type":"Lin...3285803.956493
{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[70.0,-100.0]},{"type":"Lin...{"type":"Point","coordinates":[1.0,-14.0]}1227726.9895314

例 4: 基本ケース

説明: ポイントからラインへの最短経路が、LineString の内部のポイント(端点ではない)への大円線である基本ケース 引数の値:

  • Geometry a: geometry_a
  • Geometry b: geometry_b
geometry_ageometry_b出力
{"type":"Point","coordinates":[1,23]}{"type":"LineString","coordinates":[[51.93,95.6],[-43.7,22.2]]}}4557966.282534

例 5: 基本ケース

説明: ポイントからラインへの最短経路が、LineString の端点へのラインである基本ケース。特に、LineString の最初のポイントまでの距離を評価する必要があります。 引数の値:

  • Geometry a: geometry_a
  • Geometry b: geometry_b
geometry_ageometry_b出力
{"type":"Point","coordinates":[171,23]}{"type":"LineString","coordinates":[[-174,21],[-43.7,22.2]]}1561650.083282

例 6: 基本ケース

引数の値:

  • Geometry a: geometry_a
  • Geometry b: geometry_b
geometry_ageometry_b出力
{"type":"Point","coordinates":[12.3,45.6]}{"type":"Point","coordinates":[3,3.5]}4767896.596327
{"type":"Point","coordinates":[-172.45613,-80]}{"type":"Point","coordinates":[7.54387,-80]}2223902.02355

例 7: 基本ケース

説明: ポイントからラインへの最短経路が、ポリゴンの辺の内部(その角ではない)への大円線である基本ケース 引数の値:

  • Geometry a: geometry_a
  • Geometry b: geometry_b
geometry_ageometry_b出力
{"type":"Point","coordinates":[1,23]}{"type":"Polygon","coordinates":[[[33.969414,27.763400],[20.325411,69.748301],[37.607794,71.926251],[47.741855,42.169452],[33.969414,27.763400]]]}3328300.4609136
{"type":"Point","coordinates":[36.06123680798,52.664515483941]}{"type":"Polygon","coordinates":[[[33.969414,27.7634],[47.741855,42.169452],[37.607794,71.926251],[2...67765.90969341

例 8: 基本ケース

説明: ポイントからラインへの最短経路が、ポリゴンの角へのラインであるケース。 引数の値:

  • Geometry a: geometry_a
  • Geometry b: geometry_b
geometry_ageometry_b出力
{"type":"Point","coordinates":[1,23]}{"type":"Polygon","coordinates":[[[-31.224246,67.357277],[-4.635177,38.608765],[-12.085376,85.774983],[-31.224246,67.357277]]]}1816109.959427

例 9: Null ケース

引数の値:

  • Geometry a: geometry_a
  • Geometry b: geometry_b
geometry_ageometry_b出力
hello, world!{"type":"Point","coordinates":[0.0,0.0]}null

例 10: Null ケース

引数の値:

  • Geometry a: geometry_a
  • Geometry b: geometry_b
geometry_ageometry_b出力
null{"type":"Point","coordinates":[]}null
{}{"type":"Point","coordinates":[]}null
nullnullnull

例 11: エッジケース

引数の値:

  • Geometry a: geometry_a
  • Geometry b: geometry_b
geometry_ageometry_b出力
{"type":"Point","coordinates":[19.409686726843,-10.140156318979]}{"type":"Point","coordinates":[-160.590313273157, 10.140156318979]}2.0015118211947E7
{"type":"Point","coordinates":[69,-90]}{"type":"Point","coordinates":[0,90]}2.0015118211947E7