Skip to main content

greatCircleDistance

Calcula a distância entre dois pontos na superfície da Terra com base na fórmula do círculo máximo.
Parâmetros de entrada
  • 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°].
Valores positivos correspondem à latitude norte e à longitude leste, e valores negativos correspondem à latitude sul e à longitude oeste. Valor retornado A distância entre dois pontos na superfície da Terra, em metros. Gera uma exceção quando os valores dos parâmetros de entrada estão fora do intervalo. Exemplo

geoDistance

Semelhante a 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.
Parâmetros de entrada
  • 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°].
Valores positivos correspondem à latitude norte e à longitude leste, e valores negativos correspondem à latitude sul e à longitude oeste. Valor retornado A distância entre dois pontos na superfície da Terra, em metros. Gera uma exceção quando os valores dos parâmetros de entrada estão fora do intervalo. Exemplo

greatCircleAngle

Calcula o ângulo central entre dois pontos na superfície terrestre usando a fórmula do círculo máximo.
Parâmetros de entrada
  • 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.
Valor retornado O ângulo central entre dois pontos, em graus. Exemplo

geoToUTM

Converte coordenadas geográficas WGS84 (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.
Argumentos
  • 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*.
Valor retornado Uma tupla nomeada (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

Converte coordenadas UTM em coordenadas geográficas WGS84 (longitude, latitude). Esta é a função inversa de geoToUTM.
Argumentos
  • 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: 1 para o hemisfério norte, 0 para o hemisfério sul. (U)Int*.
Valor retornado Uma tupla nomeada (longitude, latitude) em graus. Tuple(Float64, Float64). Exemplo

geoToMGRS

Codifica coordenadas geográficas WGS84 (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°].
Argumentos
  • 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*.
Valor retornado A cadeia de referência MGRS. String. Exemplo

MGRSToGeo

Decodifica uma string MGRS em coordenadas geográficas WGS84 (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.
Argumentos Valor retornado Uma tupla nomeada (longitude, latitude) em graus. Tuple(Float64, Float64). Exemplo

pointInEllipses

Verifica se o ponto pertence a pelo menos uma das elipses. As coordenadas são geométricas no sistema de coordenadas cartesiano.
Parâmetros de entrada
  • x, y — Coordenadas de um ponto no plano.
  • xᵢ, yᵢ — Coordenadas do centro da i-ésima elipse.
  • aᵢ, bᵢ — Eixos da i-ésima elipse nas unidades das coordenadas x e y.
O número de parâmetros de entrada deve ser 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

Verifica se o ponto está contido no polígono no plano.
Valores de entrada
  • (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 Polygon inteiro 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 MultiPolygon inteiro 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, Polygon ou MultiPolygon).
Os tipos em formato de polígono (Ring, Polygon, MultiPolygon e Geometry) podem ser passados tanto como constantes quanto como colunas regulares (não constantes) da tabela. Quando o polígono é fornecido em vários argumentos separados (um anel externo seguido por furos, ou vários polígonos de um multipolígono), todos esses argumentos devem ser constantes. Valores retornados 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
O polígono também pode ser fornecido usando os tipos de dados geométricos nomeados, inclusive como coluna de uma tabela:
Nota • Você pode definir validate_polygons = 0 para ignorar a validação da geometria. • pointInPolygon pressupõ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 que x, y fazem parte da PRIMARY KEY ou são cobertos por um índice minmax), o ClickHouse pode usar tanto a chave primária quanto os índices de data-skipping minmax para descartar grânulos irrelevantes.
Última modificação em 23 de julho de 2026