greatCircleDistance
lon1Deg— Longitude do primeiro ponto em graus. Intervalo:[-180°, 180°].lat1Deg— Latitude do primeiro ponto em graus. Intervalo:[-90°, 90°].lon2Deg— Longitude do segundo ponto em graus. Intervalo:[-180°, 180°].lat2Deg— Latitude do segundo ponto em graus. Intervalo:[-90°, 90°].
geoDistance
greatCircleDistance, mas calcula a distância no elipsoide WGS-84 em vez de na esfera. Esta é uma aproximação mais precisa do geoide da Terra.
O desempenho é o mesmo de greatCircleDistance (sem perda de desempenho). Recomenda-se usar geoDistance para calcular distâncias na Terra.
Nota técnica: para pontos suficientemente próximos, calculamos a distância usando uma aproximação planar com a métrica no plano tangente ao ponto médio das coordenadas.
lon1Deg— Longitude do primeiro ponto em graus. Intervalo:[-180°, 180°].lat1Deg— Latitude do primeiro ponto em graus. Intervalo:[-90°, 90°].lon2Deg— Longitude do segundo ponto em graus. Intervalo:[-180°, 180°].lat2Deg— Latitude do segundo ponto em graus. Intervalo:[-90°, 90°].
greatCircleAngle
lon1Deg— Longitude do primeiro ponto em graus.lat1Deg— Latitude do primeiro ponto em graus.lon2Deg— Longitude do segundo ponto em graus.lat2Deg— Latitude do segundo ponto em graus.
geoToUTM
(longitude, latitude) em coordenadas Universal Transverse Mercator (UTM).
UTM é um conjunto de 60 projeções transversas de Mercator, cada uma cobrindo uma zona longitudinal de 6°, que mapeia coordenadas geográficas para uma grade plana em metros. A zona é selecionada automaticamente com base na longitude, aplicando as exceções padrão para a Noruega e Svalbard, a menos que uma zone explícita seja informada. UTM só é definido para latitudes no intervalo [-80°, 84°]; as calotas polares usam o sistema UPS separado.
longitude— Longitude em graus. Intervalo:[-180°, 180°].Float32/Float64.latitude— Latitude em graus. Intervalo:[-80°, 84°].Float32/Float64.zone— Opcional. Força o uso desta zona UTM na projeção, em vez de selecioná-la automaticamente. Intervalo:[1, 60].(U)Int*.
(easting, northing, zone, band): easting e northing em metros (Float64), o número da zone UTM (UInt8) e a letra da band de latitude MGRS (FixedString(1)). Uma band igual a 'N' ou superior indica o hemisfério norte.
Gera uma exceção quando a latitude está fora de [-80°, 84°] ou a longitude está fora de [-180°, 180°].
Exemplo
UTMToGeo
(longitude, latitude). Esta é a função inversa de geoToUTM.
easting— Coordenada leste em metros (inclui o false easting de 500000 m).(U)Int*/Float*.northing— Coordenada norte em metros (inclui o false northing de 10000000 m no hemisfério sul).(U)Int*/Float*.zone— Número da zona UTM. Intervalo:[1, 60].(U)Int*.is_north— Hemisfério:1para o hemisfério norte,0para o hemisfério sul.(U)Int*.
(longitude, latitude) em graus. Tuple(Float64, Float64).
Exemplo
geoToMGRS
(longitude, latitude) como uma string do Military Grid Reference System (MGRS).
A string tem o formato <zone><band><100km square><easting><northing>, por exemplo 31UDQ4825111935. O argumento precision controla o número de dígitos usados para cada um de easting e northing: 5 (padrão) para 1 m, 4 para 10 m, 3 para 100 m, 2 para 1 km, 1 para 10 km e 0 somente para o quadrado da grade de 100 km. O MGRS é definido apenas para latitudes no intervalo [-80°, 84°].
longitude— Longitude em graus. Intervalo:[-180°, 180°].Float32/Float64.latitude— Latitude em graus. Intervalo:[-80°, 84°].Float32/Float64.precision— Opcional. Número de dígitos para cada coordenada leste e norte. Padrão:5. Intervalo:[0, 5].(U)Int*.
String.
Exemplo
MGRSToGeo
(longitude, latitude). Esta é a operação inversa de geoToMGRS.
O ponto retornado é o centro do quadrado da grade referenciado, portanto a precisão do resultado corresponde à precisão codificada na string. Os espaços em branco na entrada são ignorados, e as letras não diferenciam maiúsculas de minúsculas.
mgrs— string de referência MGRS a ser decodificada.String/FixedString.
(longitude, latitude) em graus. Tuple(Float64, Float64).
Exemplo
pointInEllipses
x, y— Coordenadas de um ponto no plano.xᵢ, yᵢ— Coordenadas do centro dai-ésima elipse.aᵢ, bᵢ— Eixos dai-ésima elipse nas unidades das coordenadasxey.
2+4⋅n, em que n é o número de elipses.
Valores retornados
1 se o ponto estiver dentro de pelo menos uma das elipses; 0 se não estiver.
Exemplo
pointInPolygon
(x, y)— Coordenadas de um ponto no plano. Tipo de dado — Tuple — uma tupla de dois números, ou um Point.[(a, b), (c, d) ...]— Vértices do polígono. Tipo de dado — Array ou Ring. Cada vértice é representado por um par de coordenadas(a, b). Os vértices devem ser especificados em sentido horário ou anti-horário. O número mínimo de vértices é 3.- A função oferece suporte a polígonos com furos (áreas vazadas). Tipo de dado — Polygon. Passe o
Polygoninteiro como segundo argumento ou passe primeiro o anel externo e, em seguida, cada furo como argumento adicional separado. - A função também oferece suporte a multipolígonos. Tipo de dado — MultiPolygon. Passe o
MultiPolygoninteiro como segundo argumento ou liste cada polígono componente como um argumento separado. - O argumento do polígono também pode ser uma coluna Geometry que contenha valores em formato de polígono (
Ring,PolygonouMultiPolygon).
1 se o ponto estiver dentro do polígono, 0 se não estiver.
Se o ponto estiver na borda do polígono, a função poderá retornar 0 ou 1.
Exemplo
Nota • Você pode definirvalidate_polygons = 0para ignorar a validação da geometria. •pointInPolygonpressupõe que todo polígono esteja bem formado. Se a entrada tiver auto-interseções, anéis em ordem incorreta ou arestas sobrepostas, os resultados se tornam pouco confiáveis — especialmente para pontos que ficam exatamente sobre uma aresta, um vértice ou dentro de uma auto-interseção, onde a noção de “dentro” vs. “fora” é indefinida. • Quando o argumento do polígono é constante e o ponto é expresso usando colunas-chave indexadas (por exemplo,pointInPolygon((x, y), constant_polygon)em uma tabela em quex, yfazem parte daPRIMARY KEYou são cobertos por um índiceminmax), o ClickHouse pode usar tanto a chave primária quanto os índices de data-skippingminmaxpara descartar grânulos irrelevantes.