メインコンテンツまでスキップ
メインコンテンツまでスキップ

Geohash を扱うための関数

Geohash

Geohash は、地球の表面をグリッド状のバケットに分割し、各セルを短い文字列にエンコードするジオコードシステムです。これは階層型データ構造であり、geohash 文字列が長くなるほど、地理的な位置がより正確になります。

地理的座標を手動で geohash 文字列に変換する必要がある場合は、geohash.org を使用できます。

geohashEncode

緯度と経度を geohash 文字列としてエンコードします。

構文

入力値

  • longitude — エンコードしたい座標の経度部分。範囲は [-180°, 180°] の浮動小数点数です。Float
  • latitude — エンコードしたい座標の緯度部分。範囲は [-90°, 90°] の浮動小数点数です。Float
  • precision(オプション) — 結果のエンコードされた文字列の長さ。デフォルトは 12 です。範囲は [1, 12] の整数です。Int8
注記
  • すべての座標パラメータは同じ型でなければなりません:Float32 または Float64 のいずれか。
  • precision パラメータについては、1 未満または 12 超のいかなる値も静かに 12 に変換されます。

返される値

  • エンコードされた座標の英数字文字列(base32 エンコーディングアルファベットの修正版が使用されます)。String

クエリ:

結果:

geohashDecode

任意の geohash エンコードされた文字列を経度と緯度にデコードします。

構文

入力値

  • hash_str — Geohash エンコードされた文字列。

返される値

  • 経度と緯度の Float64 値のタプル (longitude, latitude)Tuple(Float64)

geohashesInBox

指定された精度の geohash エンコード文字列の配列を返します。これは、指定されたボックスの境界の内側および交差するものを含み、基本的には2D グリッドを配列にフラット化したものです。

構文

引数

  • longitude_min — 最小経度。範囲: [-180°, 180°]Float
  • latitude_min — 最小緯度。範囲: [-90°, 90°]Float
  • longitude_max — 最大経度。範囲: [-180°, 180°]Float
  • latitude_max — 最大緯度。範囲: [-90°, 90°]Float
  • precision — Geohash の精度。範囲: [1, 12]UInt8
注記

すべての座標パラメータは同じ型でなければなりません:Float32 または Float64 のいずれか。

返される値

  • 提供された領域をカバーする geohash ボックスの精度を持つ文字列の配列。アイテムの順序に依存しないでください。Array(String)。
  • 最小緯度と経度の値が対応する最大値未満でない場合、[](空の配列)。
注記

結果の配列が 10,000,000 アイテムを超える場合、関数は例外をスローします。

クエリ:

結果: