14 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | 72537a2d52 |
62 | Travailler avec des coordonnées géographiques |
Fonctions pour travailler avec des coordonnées géographiques
greatCircleDistance
Calculer la distance entre deux points sur la surface de la Terre en utilisant la formule du grand cercle.
greatCircleDistance(lon1Deg, lat1Deg, lon2Deg, lat2Deg)
Les paramètres d'entrée
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°]
.
Les valeurs positives correspondent à la latitude nord et à la longitude Est, et les valeurs négatives à la latitude Sud et à la longitude ouest.
Valeur renvoyée
La distance entre deux points sur la surface de la Terre, en mètres.
Génère une exception lorsque les valeurs des paramètres d'entrée se situent en dehors de la plage.
Exemple
SELECT greatCircleDistance(55.755831, 37.617673, -55.755831, -37.617673)
┌─greatCircleDistance(55.755831, 37.617673, -55.755831, -37.617673)─┐
│ 14132374.194975413 │
└───────────────────────────────────────────────────────────────────┘
pointInEllipses
Vérifie si le point appartient à au moins une des ellipses. Coordonnées géométriques sont dans le système de coordonnées Cartésiennes.
pointInEllipses(x, y, x₀, y₀, a₀, b₀,...,xₙ, yₙ, aₙ, bₙ)
Les paramètres d'entrée
x, y
— Coordinates of a point on the plane.xᵢ, yᵢ
— Coordinates of the center of thei
-ème points de suspension.aᵢ, bᵢ
— Axes of thei
- e ellipse en unités de coordonnées x, Y.
Les paramètres d'entrée doivent être 2+4⋅n
, où n
est le nombre de points de suspension.
Valeurs renvoyées
1
si le point est à l'intérieur d'au moins l'un des ellipses; 0
si elle ne l'est pas.
Exemple
SELECT pointInEllipses(10., 10., 10., 9.1, 1., 0.9999)
┌─pointInEllipses(10., 10., 10., 9.1, 1., 0.9999)─┐
│ 1 │
└─────────────────────────────────────────────────┘
pointtinpolygon
Vérifie si le point appartient au polygone sur l'avion.
pointInPolygon((x, y), [(a, b), (c, d) ...], ...)
Les valeurs d'entrée
(x, y)
— Coordinates of a point on the plane. Data type — Tuple — A tuple of two numbers.[(a, b), (c, d) ...]
— Polygon vertices. Data type — Tableau. Chaque sommet est représenté par une paire de coordonnées(a, b)
. Les sommets doivent être spécifiés dans le sens horaire ou antihoraire. Le nombre minimum de sommets est 3. Le polygone doit être constante.- La fonction prend également en charge les polygones avec des trous (découper des sections). Dans ce cas, ajoutez des polygones qui définissent les sections découpées en utilisant des arguments supplémentaires de la fonction. La fonction ne prend pas en charge les polygones non simplement connectés.
Valeurs renvoyées
1
si le point est à l'intérieur du polygone, 0
si elle ne l'est pas.
Si le point est sur la limite du polygone, la fonction peut renvoyer 0 ou 1.
Exemple
SELECT pointInPolygon((3., 3.), [(6, 0), (8, 4), (5, 8), (0, 2)]) AS res
┌─res─┐
│ 1 │
└─────┘
geohashEncode
Encode la latitude et la longitude en tant que chaîne geohash, voir (http://geohash.org/, https://en.wikipedia.org/wiki/Geohash).
geohashEncode(longitude, latitude, [precision])
Les valeurs d'entrée
- longitude longitude partie de la coordonnée que vous souhaitez encoder. Flottant dans la gamme
[-180°, 180°]
- latitude latitude partie de la coordonnée que vous souhaitez encoder. Flottant dans la gamme
[-90°, 90°]
- precision-facultatif, longueur de la chaîne codée résultante, par défaut
12
. Entier dans la gamme[1, 12]
. Toute valeur inférieure à1
ou supérieure à12
silencieusement converti à12
.
Valeurs renvoyées
- alphanumérique
String
de coordonnées codées (la version modifiée de l'alphabet de codage base32 est utilisée).
Exemple
SELECT geohashEncode(-5.60302734375, 42.593994140625, 0) AS res
┌─res──────────┐
│ ezs42d000000 │
└──────────────┘
geohashDecode
Décode toute chaîne codée geohash en longitude et latitude.
Les valeurs d'entrée
- chaîne codée-chaîne codée geohash.
Valeurs renvoyées
- (longitude, latitude) - 2-n-uplet de
Float64
les valeurs de longitude et de latitude.
Exemple
SELECT geohashDecode('ezs42') AS res
┌─res─────────────────────────────┐
│ (-5.60302734375,42.60498046875) │
└─────────────────────────────────┘
geoToH3
Retourner H3 point d'indice (lon, lat)
avec une résolution spécifiée.
H3 est un système d'indexation géographique où la surface de la Terre divisée en carreaux hexagonaux même. Ce système est hiérarchique, c'est-à-dire que chaque hexagone au niveau supérieur peut être divisé en sept, même mais plus petits, etc.
Cet indice est principalement utilisé pour les emplacements de bucketing et d'autres manipulations géospatiales.
Syntaxe
geoToH3(lon, lat, resolution)
Paramètre
lon
— Longitude. Type: Float64.lat
— Latitude. Type: Float64.resolution
— Index resolution. Range:[0, 15]
. Type: UInt8.
Valeurs renvoyées
- Numéro d'indice hexagonal.
- 0 en cas d'erreur.
Type: UInt64
.
Exemple
Requête:
SELECT geoToH3(37.79506683, 55.71290588, 15) as h3Index
Résultat:
┌────────────h3Index─┐
│ 644325524701193974 │
└────────────────────┘
geohashesInBox
Renvoie un tableau de chaînes codées geohash de précision donnée qui tombent à l'intérieur et croisent les limites d'une boîte donnée, essentiellement une grille 2D aplatie en tableau.
Les valeurs d'entrée
- longitude_min-longitude min, valeur flottante dans la plage
[-180°, 180°]
- latitude_min-latitude min, valeur flottante dans la plage
[-90°, 90°]
- longitude_max-longitude maximale, valeur flottante dans la plage
[-180°, 180°]
- latitude_max-latitude maximale, valeur flottante dans la plage
[-90°, 90°]
- précision - geohash précision,
UInt8
dans la gamme[1, 12]
Veuillez noter que tous les paramètres de coordonnées doit être du même type: soit Float32
ou Float64
.
Valeurs renvoyées
- gamme de précision de longues chaînes de geohash-boîtes couvrant la zone, vous ne devriez pas compter sur l'ordre des éléments.
-
Veuillez noter que la fonction lancera une exception si le tableau résultant a plus de 10'000'000 éléments.
Exemple
SELECT geohashesInBox(24.48, 40.56, 24.785, 40.81, 4) AS thasos
┌─thasos──────────────────────────────────────┐
│ ['sx1q','sx1r','sx32','sx1w','sx1x','sx38'] │
└─────────────────────────────────────────────┘
h3GetBaseCell
Renvoie le numéro de cellule de base de l'index.
Syntaxe
h3GetBaseCell(index)
Paramètre
index
— Hexagon index number. Type: UInt64.
Valeurs renvoyées
- Numéro de cellule de base hexagonale. Type: UInt8.
Exemple
Requête:
SELECT h3GetBaseCell(612916788725809151) as basecell
Résultat:
┌─basecell─┐
│ 12 │
└──────────┘
h3HexAreaM2
Surface hexagonale Moyenne en mètres carrés à la résolution donnée.
Syntaxe
h3HexAreaM2(resolution)
Paramètre
resolution
— Index resolution. Range:[0, 15]
. Type: UInt8.
Valeurs renvoyées
- Area in m². Type: Float64.
Exemple
Requête:
SELECT h3HexAreaM2(13) as area
Résultat:
┌─area─┐
│ 43.9 │
└──────┘
h3IndexesAreNeighbors
Renvoie si les H3Indexes fournis sont voisins ou non.
Syntaxe
h3IndexesAreNeighbors(index1, index2)
Paramètre
Valeurs renvoyées
- Retourner
1
si les index sont voisins,0
autrement. Type: UInt8.
Exemple
Requête:
SELECT h3IndexesAreNeighbors(617420388351344639, 617420388352655359) AS n
Résultat:
┌─n─┐
│ 1 │
└───┘
h3enfants
Retourne un tableau avec les index enfants de l'index donné.
Syntaxe
h3ToChildren(index, resolution)
Paramètre
index
— Hexagon index number. Type: UInt64.resolution
— Index resolution. Range:[0, 15]
. Type: UInt8.
Valeurs renvoyées
- Tableau avec les index H3 enfants. Tableau de type: UInt64.
Exemple
Requête:
SELECT h3ToChildren(599405990164561919, 6) AS children
Résultat:
┌─children───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ [603909588852408319,603909588986626047,603909589120843775,603909589255061503,603909589389279231,603909589523496959,603909589657714687] │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
h3ToParent
Renvoie l'index parent (plus grossier) contenant l'index donné.
Syntaxe
h3ToParent(index, resolution)
Paramètre
index
— Hexagon index number. Type: UInt64.resolution
— Index resolution. Range:[0, 15]
. Type: UInt8.
Valeurs renvoyées
- Parent H3 index. Type: UInt64.
Exemple
Requête:
SELECT h3ToParent(599405990164561919, 3) as parent
Résultat:
┌─────────────parent─┐
│ 590398848891879423 │
└────────────────────┘
h3ToString
Convertit la représentation H3Index de l'index en représentation de chaîne.
h3ToString(index)
Paramètre
index
— Hexagon index number. Type: UInt64.
Valeurs renvoyées
- Représentation en chaîne de l'index H3. Type: Chaîne.
Exemple
Requête:
SELECT h3ToString(617420388352917503) as h3_string
Résultat:
┌─h3_string───────┐
│ 89184926cdbffff │
└─────────────────┘
stringToH3
Convertit la représentation de chaîne en représentation H3Index (UInt64).
stringToH3(index_str)
Paramètre
index_str
— String representation of the H3 index. Type: Chaîne.
Valeurs renvoyées
- Numéro d'indice hexagonal. Renvoie 0 en cas d'erreur. Type: UInt64.
Exemple
Requête:
SELECT stringToH3('89184926cc3ffff') as index
Résultat:
┌──────────────index─┐
│ 617420388351344639 │
└────────────────────┘
h3grésolution
Retourne la résolution de l'index.
Syntaxe
h3GetResolution(index)
Paramètre
index
— Hexagon index number. Type: UInt64.
Valeurs renvoyées
- L'indice de la résolution. Gamme:
[0, 15]
. Type: UInt8.
Exemple
Requête:
SELECT h3GetResolution(617420388352917503) as res
Résultat:
┌─res─┐
│ 9 │
└─────┘