

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del 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 el dominio ([-180, 180], [-90, 90]) en regiones cuadradas iguales llamadas *geosquares* hasta una profundidad especificada. La subdivisión se basa en la ubicación de un punto proporcionado. Uno de los geosquares que contiene el punto se subdivide en cada paso hasta alcanzar la profundidad máxima. La selección de este geosquare es estable, es decir, el resultado de la función depende solo de los argumentos de entrada. La función devuelve un valor único que identifica el geosquare final en el que se encuentra el punto.

ST\$1GeoSquare acepta un PUNTO en el que la coordenada “x” representa la longitud y la coordenada “y” representa la latitud. La longitud y la latitud están limitadas a [-180, 180] y [-90, 90], respectivamente. La salida de ST\$1GeoSquare se puede utilizar como entrada para la función [ST\$1GeomFromGeoSquare](ST_GeomFromGeoSquare-function.md).

Hay 360° alrededor del arco de la circunferencia ecuatorial de la Tierra que se dividen en dos hemisferios (oriental y occidental), cada uno con 180° de líneas longitudinales (meridianos) desde el meridiano 0°. Por convención, las longitudes orientales son coordenadas “\$1” (positivas) cuando se proyectan en un eje x sobre un plano cartesiano y las longitudes occidentales son coordenadas “-” (negativas) cuando se proyectan en un eje x sobre un plano cartesiano. Hay 90° de líneas de latitud al norte y al sur de la circunferencia ecuatorial de 0° de la Tierra, cada una de ellas paralela a dicha circunferencia. Por convención, las líneas de latitud norte intersecan el eje y "\$1" (positivo) cuando se proyectan en un plano cartesiano y las líneas de latitud sur intersecan el eje y "-" (negativo) cuando se proyectan en un plano cartesiano. La cuadrícula esférica formada por la intersección de las líneas longitudinales y las líneas de latitud se convierte en una cuadrícula proyectada sobre un plano cartesiano con coordenadas “x” positivas “y” negativas estándar y coordenadas “y” positivas “y” negativas en el plano cartesiano.

El propósito de ST\$1GeoSquare es etiquetar o marcar puntos cercanos con valores de código iguales. Los puntos que se encuentran en el mismo geosquare reciben el mismo valor de código. Un geosquare se utiliza para codificar las coordenadas geográficas (latitud y longitud) en un número entero. Una región más amplia se divide en cuadrículas para delimitar un área en un mapa con resoluciones variables. Un geosquare se puede utilizar para la indexación espacial, la agrupación espacial, las búsquedas de proximidad, la búsqueda de ubicaciones y la creación de identificadores de lugares únicos. La función [ST\$1GeoHash](ST_GeoHash-function.md) sigue un proceso similar de dividir una región en cuadrículas, pero tiene una codificación diferente.

## Sintaxis
<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*   
Un valor POINT de tipo de datos `GEOMETRY` o una expresión que toma el valor de un tipo POINT. La coordenada “x” (longitud) del punto debe estar dentro del intervalo: `-180` a `180`. La coordenada “y” (latitud) del punto debe estar dentro del intervalo: `-90` a `90`. 

 *max\$1depth*   
Un valor de tipo de datos `INTEGER`. Número máximo de veces que el dominio que contiene el punto se subdivide de forma recursiva. El valor debe ser un número entero entre 1 y 32. El valor predeterminado es 32. El número final real de las subdivisiones es inferior o igual al valor *max\$1depth* especificado. 

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

`BIGINT`

La función devuelve un valor único que identifica el geosquare final en el que se encuentra el punto de entrada. 

Si la *geometría* de entrada no es un punto, la función devuelve un error. 

Si el punto de entrada está vacío, el valor devuelto no es una entrada válida para la función [ST\$1GeomFromGeoSquare](ST_GeomFromGeoSquare-function.md). Utilice la función [ST\$1IsEmpty](ST_IsEmpty-function.md) para evitar las llamadas a ST\$1GeoSquare con un punto vacío. 

Si la geometría de entrada no está dentro del intervalo, la función devuelve un error. 

Si la entrada *max\$1depth* está fuera del intervalo, la función devuelve un error. 

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

El siguiente código SQL devuelve un geosquare a partir de un punto de entrada. 

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

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

El siguiente código SQL devuelve un geosquare a partir de un punto de entrada con una profundidad máxima de `10`. 

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

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