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.
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.[(a, b), (c, d) ...]— Sommets du polygone. Type de données — Array. 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. Le polygone doit être constant.- 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.
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.