greatCircleDistance
lon1Deg— Longitude du premier point, en degrés. Intervalle :[-180°, 180°].lat1Deg— Latitude du premier point, en degrés. Intervalle :[-90°, 90°].lon2Deg— Longitude du deuxième point, en degrés. Intervalle :[-180°, 180°].lat2Deg— Latitude du deuxième point, en degrés. Intervalle :[-90°, 90°].
geoDistance
greatCircleDistance, mais calcule la distance sur l’ellipsoïde WGS-84 plutôt que sur la sphère. Il s’agit d’une approximation plus précise du géoïde terrestre.
Les performances sont les mêmes que pour greatCircleDistance (sans perte de performances). Il est recommandé d’utiliser geoDistance pour calculer les distances à la surface de la Terre.
Note technique : pour des points suffisamment proches, nous calculons la distance à l’aide d’une approximation plane, avec la métrique du plan tangent au milieu des coordonnées.
lon1Deg— Longitude du premier point en degrés. Intervalle :[-180°, 180°].lat1Deg— Latitude du premier point en degrés. Intervalle :[-90°, 90°].lon2Deg— Longitude du deuxième point en degrés. Intervalle :[-180°, 180°].lat2Deg— Latitude du deuxième point en degrés. Intervalle :[-90°, 90°].
greatCircleAngle
lon1Deg— Longitude du premier point en degrés.lat1Deg— Latitude du premier point en degrés.lon2Deg— Longitude du deuxième point en degrés.lat2Deg— Latitude du deuxième point en degrés.
geoToUTM
(longitude, latitude) en coordonnées Universal Transverse Mercator (UTM).
L’UTM est un ensemble de 60 projections transverses de Mercator, chacune couvrant une zone longitudinale de 6°, qui convertissent des coordonnées géographiques en une grille plane exprimée en mètres. La zone est sélectionnée automatiquement à partir de la longitude, en appliquant les exceptions standard pour la Norvège et le Svalbard, sauf si une zone explicite est fournie. L’UTM n’est défini que pour les latitudes dans la plage [-80°, 84°] ; les calottes polaires utilisent le système UPS séparé.
longitude— Longitude en degrés. Plage :[-180°, 180°].Float32/Float64.latitude— Latitude en degrés. Plage :[-80°, 84°].Float32/Float64.zone— Facultatif. Force la projection dans cette zone UTM au lieu de la déterminer automatiquement. Plage :[1, 60].(U)Int*.
(easting, northing, zone, band) : easting et northing en mètres (Float64), le numéro de zone UTM zone (UInt8) et la lettre de bande de latitude MGRS band (FixedString(1)). Une valeur de band égale à 'N' ou postérieure indique l’hémisphère nord.
Génère une exception lorsque la latitude est hors de [-80°, 84°] ou la longitude hors de [-180°, 180°].
Exemple
UTMToGeo
(longitude, latitude). Il s’agit de l’opération inverse de geoToUTM.
easting— Coordonnée est en mètres (inclut la fausse abscisse de 500000 m).(U)Int*/Float*.northing— Coordonnée nord en mètres (inclut la fausse ordonnée de 10000000 m dans l’hémisphère sud).(U)Int*/Float*.zone— Numéro de zone UTM. Plage :[1, 60].(U)Int*.is_north— Hémisphère :1pour l’hémisphère nord,0pour l’hémisphère sud.(U)Int*.
(longitude, latitude) en degrés. Tuple(Float64, Float64).
Exemple
geoToMGRS
(longitude, latitude) en chaîne Military Grid Reference System (MGRS).
La chaîne a la forme <zone><band><100km square><easting><northing>, par exemple 31UDQ4825111935. L’argument precision contrôle le nombre de chiffres utilisés pour chacune des composantes est et nord : 5 (par défaut) pour 1 m, 4 pour 10 m, 3 pour 100 m, 2 pour 1 km, 1 pour 10 km et 0 pour le carré de grille de 100 km uniquement. MGRS n’est défini que pour des latitudes dans la plage [-80°, 84°].
longitude— Longitude en degrés. Intervalle :[-180°, 180°].Float32/Float64.latitude— Latitude en degrés. Intervalle :[-80°, 84°].Float32/Float64.precision— Facultatif. Nombre de chiffres pour chacune des coordonnées est et nord. Valeur par défaut :5. Intervalle :[0, 5].(U)Int*.
String.
Exemple
MGRSToGeo
(longitude, latitude). Il s’agit de l’inverse de geoToMGRS.
Le point renvoyé correspond au centre de la maille de grille indiquée ; la précision du résultat correspond donc à celle encodée dans la chaîne. Les espaces dans l’entrée sont ignorés et la casse des lettres n’est pas prise en compte.
mgrs— chaîne de référence MGRS à décoder.String/FixedString.
(longitude, latitude), en degrés. Tuple(Float64, Float64).
Exemple
pointInEllipses
x, y— Coordonnées d’un point dans le plan.xᵢ, yᵢ— Coordonnées du centre de lai-ième ellipse.aᵢ, bᵢ— Axes de lai-ième ellipse, dans les unités des coordonnées x et y.
2+4⋅n, où n est le nombre d’ellipses.
Valeurs renvoyées
1 si le point se trouve à l’intérieur d’au moins une ellipse ; 0 dans le cas contraire.
Exemple
pointInPolygon
(x, y)— Coordonnées d’un point dans le plan. Type de données — Tuple — un tuple de deux nombres, ou un Point.[(a, b), (c, d) ...]— Sommets du polygone. Type de données — Array ou Ring. Chaque sommet est représenté par une paire de coordonnées(a, b). Les sommets doivent être indiqués dans le sens horaire ou antihoraire. Le nombre minimum de sommets est de 3.- La fonction prend également en charge les polygones avec des trous (zones évidées). Type de données — Polygon. Passez soit le
Polygonentier comme deuxième argument, soit l’anneau extérieur d’abord, puis chaque trou comme argument supplémentaire distinct. - La fonction prend également en charge les multipolygones. Type de données — MultiPolygon. Passez soit le
MultiPolygonentier comme deuxième argument, soit chaque polygone qui le compose comme argument distinct. - L’argument polygone peut également être une colonne Geometry contenant des valeurs de type polygonal (
Ring,PolygonouMultiPolygon).
1 si le point est à l’intérieur du polygone, 0 sinon.
Si le point se trouve sur le bord du polygone, la fonction peut renvoyer 0 ou 1.
Exemple
Remarque • Vous pouvez définirvalidate_polygons = 0pour contourner la validation de la géométrie. •pointInPolygonsuppose que chaque polygone est bien formé. Si l’entrée se recoupe, comporte des anneaux mal ordonnés ou des arêtes qui se chevauchent, les résultats deviennent peu fiables, en particulier pour les points situés exactement sur une arête, un sommet ou à l’intérieur d’une auto-intersection, où la notion de “à l’intérieur” ou “à l’extérieur” n’est pas définie. • Lorsque l’argument polygone est constant et que le point est exprimé à l’aide de colonnes de clé indexées (par exemple,pointInPolygon((x, y), constant_polygon)sur une table oùx, yfont partie de laPRIMARY KEYou sont couverts par un indexminmax), ClickHouse peut utiliser à la fois la clé primaire et les index de data-skippingminmaxpour écarter les granules non pertinentes.