14 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | d734a8e46d |
62 | 地理座標の操作 |
地理座標を操作するための関数
グレートサークル距離
を使用して、地球の表面上の二つの点の間の距離を計算します 大円式.
greatCircleDistance(lon1Deg, lat1Deg, lon2Deg, lat2Deg)
入力パラメータ
lon1Deg
— Longitude of the first point in degrees. Range:[-180°, 180°]
.lat1Deg
— Latitude of the first point in degrees. Range:[-90°, 90°]
.lon2Deg
— Longitude of the second point in degrees. Range:[-180°, 180°]
.lat2Deg
— Latitude of the second point in degrees. Range:[-90°, 90°]
.
正の値は北緯と東経に対応し、負の値は南緯と西経に対応します。
戻り値
メートルで、地球の表面上の二つの点の間の距離。
入力パラメーター値が範囲外になったときに例外を生成します。
例えば
SELECT greatCircleDistance(55.755831, 37.617673, -55.755831, -37.617673)
┌─greatCircleDistance(55.755831, 37.617673, -55.755831, -37.617673)─┐
│ 14132374.194975413 │
└───────────────────────────────────────────────────────────────────┘
pointInEllipses
ポイントが楕円の少なくとも一つに属するかどうかをチェックします。 座標は、デカルト座標系ではジオメトリです。
pointInEllipses(x, y, x₀, y₀, a₀, b₀,...,xₙ, yₙ, aₙ, bₙ)
入力パラメータ
x, y
— Coordinates of a point on the plane.xᵢ, yᵢ
— Coordinates of the center of thei
-番目の省略記号。aᵢ, bᵢ
— Axes of thei
-x、y座標の単位で番目の省略記号。
入力パラ 2+4⋅n
、どこ n
楕円の数です。
戻り値
1
ポイントは、楕円の少なくとも一つの内側にある場合; 0
そうでない場合。
例えば
SELECT pointInEllipses(10., 10., 10., 9.1, 1., 0.9999)
┌─pointInEllipses(10., 10., 10., 9.1, 1., 0.9999)─┐
│ 1 │
└─────────────────────────────────────────────────┘
pointInPolygon
るかどうかを判の点に属する多角形の面。
pointInPolygon((x, y), [(a, b), (c, d) ...], ...)
入力値
(x, y)
— Coordinates of a point on the plane. Data type — タプル — A tuple of two numbers.[(a, b), (c, d) ...]
— Polygon vertices. Data type — 配列. 各頂点は、座標のペアで表されます(a, b)
. 頂点は、時計回りまたは反時計回りの順序で指定する必要があります。 頂点の最小数は3です。 多角形は一定でなければなりません。- この機能は、穴(切り取られた部分)を持つ多角形もサポートします。 この場合、関数の追加の引数を使用してカットアウトセクションを定義するポリゴンを追加します。 この関数は、単純接続以外のポリゴンをサポートしません。
戻り値
1
ポイントがポリゴンの内側にある場合, 0
そうでない場合。
ポイントがポリゴン境界上にある場合、関数は0または1を返します。
例えば
SELECT pointInPolygon((3., 3.), [(6, 0), (8, 4), (5, 8), (0, 2)]) AS res
┌─res─┐
│ 1 │
└─────┘
geohashEncode
緯度と経度をgeohash-stringとしてエンコードします。http://geohash.org/,https://en.wikipedia.org/wiki/geohash).
geohashEncode(longitude, latitude, [precision])
入力値
- 経度-エンコードしたい座標の経度の部分。 範囲の浮遊
[-180°, 180°]
- latitude-エンコードする座標の緯度部分。 範囲の浮遊
[-90°, 90°]
- precision-オプション、結果としてエンコードされる文字列の長さ。
12
. 範囲の整数[1, 12]
. より小さい任意の値1
またはより大きい12
に変換される。12
.
戻り値
- 英数字
String
エンコードされた座標(base32エンコードアルファベットの修正版が使用されます)。
例えば
SELECT geohashEncode(-5.60302734375, 42.593994140625, 0) AS res
┌─res──────────┐
│ ezs42d000000 │
└──────────────┘
geohashDecode
Geohashでエンコードされた文字列を経度と緯度にデコードします。
入力値
- エンコードされた文字列-geohashエンコードされた文字列。
戻り値
- (経度、緯度)-2-のタプル
Float64
経度と緯度の値。
例えば
SELECT geohashDecode('ezs42') AS res
┌─res─────────────────────────────┐
│ (-5.60302734375,42.60498046875) │
└─────────────────────────────────┘
geoToH3
を返します H3 点指数 (lon, lat)
指定決断を使って。
H3 地理的指標システムであり、地球の表面は六角形のタイルに分割されています。 トップレベルの各六角形は、より小さいものに分割することができます。
このインデックスは、主にバケットの場所やその他の地理空間の操作に使用されます。
構文
geoToH3(lon, lat, resolution)
パラメータ
lon
— Longitude. Type: Float64.lat
— Latitude. Type: Float64.resolution
— Index resolution. Range:[0, 15]
. タイプ: UInt8.
戻り値
- 六角形のインデックス番号。
- エラーの場合は0。
タイプ: UInt64
.
例えば
クエリ:
SELECT geoToH3(37.79506683, 55.71290588, 15) as h3Index
結果:
┌────────────h3Index─┐
│ 644325524701193974 │
└────────────────────┘
geohashesInBox
与えられたボックスの内側にあり、境界と交差する、与えられた精度のgeohashエンコードされた文字列の配列を返します。
入力値
- longitude_min-最小経度、範囲内の浮動小数点数
[-180°, 180°]
- latitude_min-最小緯度、範囲内の浮動小数点数
[-90°, 90°]
- longitude_max-最高の経度、範囲の浮遊価値
[-180°, 180°]
- latitude_max-最大緯度、範囲内の浮動小数点数
[-90°, 90°]
- 精密-geohashの精密,
UInt8
範囲内[1, 12]
すべての座標パラメータは同じタイプである必要があります。 Float32
または Float64
.
戻り値
- 提供された領域をカバーするgeohash-ボックスの精度の長い文字列の配列、あなたはアイテムの順序に頼るべきではありません。
-
結果の配列が10'000'000項目を超える場合、関数は例外をスローすることに注意してください。
例えば
SELECT geohashesInBox(24.48, 40.56, 24.785, 40.81, 4) AS thasos
┌─thasos──────────────────────────────────────┐
│ ['sx1q','sx1r','sx32','sx1w','sx1x','sx38'] │
└─────────────────────────────────────────────┘
h3GetBaseCell
インデックスの基本セル番号を返します。
構文
h3GetBaseCell(index)
パラメータ
index
— Hexagon index number. Type: UInt64.
戻り値
- 六角形ベースセル番号。 タイプ: UInt8.
例えば
クエリ:
SELECT h3GetBaseCell(612916788725809151) as basecell
結果:
┌─basecell─┐
│ 12 │
└──────────┘
h3HexAreaM2
与えられた解像度で平方メートルの平均六角形の面積。
構文
h3HexAreaM2(resolution)
パラメータ
resolution
— Index resolution. Range:[0, 15]
. タイプ: UInt8.
戻り値
- Area in m². Type: Float64.
例えば
クエリ:
SELECT h3HexAreaM2(13) as area
結果:
┌─area─┐
│ 43.9 │
└──────┘
h3IndexesAreNeighbors
指定されたh3indexesが近傍であるかどうかを返します。
構文
h3IndexesAreNeighbors(index1, index2)
パラメータ
戻り値
- を返します
1
インデックスが隣接している場合,0
そうでなければ タイプ: UInt8.
例えば
クエリ:
SELECT h3IndexesAreNeighbors(617420388351344639, 617420388352655359) AS n
結果:
┌─n─┐
│ 1 │
└───┘
h3ToChildren
指定したインデックスの子インデックスを持つ配列を返します。
構文
h3ToChildren(index, resolution)
パラメータ
index
— Hexagon index number. Type: UInt64.resolution
— Index resolution. Range:[0, 15]
. タイプ: UInt8.
戻り値
- 子h3インデックスを持つ配列。 タイプの配列: UInt64.
例えば
クエリ:
SELECT h3ToChildren(599405990164561919, 6) AS children
結果:
┌─children───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ [603909588852408319,603909588986626047,603909589120843775,603909589255061503,603909589389279231,603909589523496959,603909589657714687] │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
h3親
を返します(粗)インデックスを含むとして指定されたインデックス.
構文
h3ToParent(index, resolution)
パラメータ
index
— Hexagon index number. Type: UInt64.resolution
— Index resolution. Range:[0, 15]
. タイプ: UInt8.
戻り値
- 親のh3インデックス。 タイプ: UInt64.
例えば
クエリ:
SELECT h3ToParent(599405990164561919, 3) as parent
結果:
┌─────────────parent─┐
│ 590398848891879423 │
└────────────────────┘
h3ToString
インデックスのh3index表現を文字列表現に変換します。
h3ToString(index)
パラメータ
index
— Hexagon index number. Type: UInt64.
戻り値
- H3インデックスの文字列表現。 タイプ: 文字列.
例えば
クエリ:
SELECT h3ToString(617420388352917503) as h3_string
結果:
┌─h3_string───────┐
│ 89184926cdbffff │
└─────────────────┘
stringToH3
文字列表現をh3index(uint64)表現に変換します。
stringToH3(index_str)
パラメータ
index_str
— String representation of the H3 index. Type: 文字列.
戻り値
- 六角形のインデックス番号。 エラー時に0を返します。 タイプ: UInt64.
例えば
クエリ:
SELECT stringToH3('89184926cc3ffff') as index
結果:
┌──────────────index─┐
│ 617420388351344639 │
└────────────────────┘
h3GetResolution
インデックスの解像度を返します。
構文
h3GetResolution(index)
パラメータ
index
— Hexagon index number. Type: UInt64.
戻り値
- インデックスの解決。 範囲:
[0, 15]
. タイプ: UInt8.
例えば
クエリ:
SELECT h3GetResolution(617420388352917503) as res
結果:
┌─res─┐
│ 9 │
└─────┘