

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# ST\$1GeoSquare
<a name="ST_GeoSquare-function"></a>

ST\$1GeoSquare subdivide recursivamente o domínio ([-180, 180], [-90, 90]) em regiões quadradas iguais chamadas *quadrados geográficos* até uma profundidade especificada. A subdivisão é baseada na localização de um ponto fornecido. Um dos quadrados geográficos contendo o ponto é subdividido em cada etapa até atingir a profundidade máxima. A seleção desse quadrado geográfico é estável, ou seja, o resultado da função depende somente dos argumentos de entrada. A função retorna um valor exclusivo que identifica o quadrado geográfico final no qual o ponto está localizado.

O ST\$1GeoSquare aceita um PONTO em que a coordenada x representa a longitude e a coordenada y representa a latitude. A longitude e a latitude são limitadas a [-180, 180] e [-90, 90], respectivamente. A saída de ST\$1GeoSquare pode ser usada como entrada para a função [ST\$1GeomFromGeoSquare](ST_GeomFromGeoSquare-function.md).

Há 360° ao redor do arco da circunferência equatorial da Terra que são divididos em dois hemisférios (leste e oeste), cada um com 180° de linhas longitudinais (meridianos) a partir do meridiano 0°. Por convenção, as longitudes orientais são coordenadas “\$1” (positivas) quando projetadas em um eixo x em um plano cartesiano e as longitudes ocidentais são coordenadas “-” (negativas) quando projetadas em um eixo x em um plano cartesiano. Há 90° de linhas latitudinais ao norte e ao sul da circunferência equatorial de 0° da Terra, cada uma paralela à circunferência equatorial de 0° da Terra. Por convenção, as linhas latitudinais do norte cruzam o eixo y “\$1” (positivo) quando projetadas em um plano cartesiano, e as linhas latitudinais do sul cruzam o eixo y “-” (negativo) quando projetadas em um plano cartesiano. A grade esférica formada pela interseção de linhas longitudinais e linhas latitudinais é convertida em uma grade projetada em um plano cartesiano com coordenadas x positivas e negativas padrão e coordenadas y positivas e negativas no plano cartesiano.

O objetivo do ST\$1GeoSquare é marcar pontos próximos com valores de código iguais. Os pontos localizados no mesmo quadrado geográfico recebem o mesmo valor de código. Um quadrado geográfico é usado para codificar coordenadas geográficas (latitude e longitude) em um número inteiro. Uma região maior é dividida em grades para delinear uma área em um mapa com diferentes resoluções. Um quadrado geográfico pode ser usado para indexação espacial, agrupamento espacial, pesquisas de proximidade, pesquisa de localização e criação de identificadores de locais exclusivos. A função [ST\$1GeoHash](ST_GeoHash-function.md) segue um processo similar de divisão de uma região em grades, mas tem uma codificação diferente.

## Sintaxe
<a name="ST_GeoSquare-function-syntax"></a>

```
ST_GeoSquare(geom)
```

```
ST_GeoSquare(geom, max_depth)
```

## Argumentos
<a name="ST_ST_GeoSquare-function-arguments"></a>

 *geom*   
Um valor POINT de tipo de dados `GEOMETRY` ou uma expressão que é avaliada como um subtipo POINT. A coordenada x (longitude) do ponto deve estar dentro do intervalo de `-180` a `180`. A coordenada y (latitude) do ponto deve estar dentro do intervalo de `-90` a`90`. 

 *max\$1depth*   
Um valor de de tipo de dados `INTEGER`. O número máximo de vezes que o domínio contendo o ponto é subdividido recursivamente. O valor deve ser um número inteiro de 1 a 32. O padrão é 32. O número final real das subdivisões é menor ou igual ao *max\$1depth* especificado. 

## Tipo de retorno
<a name="ST_GeoSquare-function-return"></a>

`BIGINT`

A função retorna um valor exclusivo que identifica o quadrado geográfico final no qual o ponto de entrada está localizado. 

Se a entrada *geom* não for um ponto, a função retornará um erro. 

Se o ponto de entrada estiver vazio, o valor de retorno não será uma entrada válida para a função [ST\$1GeomFromGeoSquare](ST_GeomFromGeoSquare-function.md). Use a função [ST\$1IsEmpty](ST_IsEmpty-function.md) para evitar chamadas para ST\$1GeoSquare com um ponto vazio. 

Se o ponto de entrada não estiver no intervalo, a função retornará um erro. 

Se a entrada *max\$1depth* estiver fora do intervalo, a função retornará um erro. 

## Exemplos
<a name="ST_ST_GeoSquare-function-examples"></a>

O SQL a seguir retorna um quadrado geográfico de um ponto de entrada. 

```
SELECT ST_GeoSquare(ST_Point(13.5, 52.5));
```

```
  st_geosquare
-----------------------
 -4410772491521635895
```

O SQL a seguir retorna um quadrado geográfico de um ponto de entrada com uma profundidade máxima de `10`. 

```
SELECT ST_GeoSquare(ST_Point(13.5, 52.5), 10);
```

```
 st_geosquare
--------------
 797852
```