Compartir vía


st_geohash Función

Se aplica a:check marcado yes Databricks SQL check marcado yes Databricks Runtime 17.1 y versiones posteriores

Important

Esta característica está en versión preliminar pública.

Nota:

Esta característica no está disponible en almacenes clásicos de Databricks SQL. Para más información sobre los almacenes de SQL de Databricks, consulte Tipos de almacenamiento de SQL.

Devuelve el geohash del valor de entrada GEOMETRY en la precisión especificada. Si no se especifica la precisión, la expresión se comporta como si la precisión especificada fuera -1.

Syntax

st_geohash ( geoExpr [, precisionExpr] )

Arguments

  • geoExpr: Un GEOMETRY valor.
  • precisionExpr: precisión opcional (número de dígitos significativos) de la geohash de salida.

Returns

Valor de tipo STRING, que representa la geohash de la geometría de entrada.

Más precisamente:

  • Si la geometría de entrada está vacía, la expresión devuelve NULL.
  • Si la precisión es 0, se devuelve la cadena vacía.
  • Si la precisión es positiva, la expresión devuelve el valor de geohash del centro del rectángulo de selección de la geometría con la precisión especificada.
  • Si la precisión es negativa, la expresión devuelve el valor de geohash que corresponde al cubo de cuadrícula de geohash con la precisión máxima (pero no superior a 12) que cubre completamente el rectángulo de selección de la geometría de entrada. Si un cubo de la cuadrícula geohash de este tipo no existe, se devuelve la cadena vacía.

Consulta Wikipedia para obtener más información sobre geohashes.

La función devuelve NULL si la entrada es NULL.

Condiciones de error

Examples

-- Returns the geohash of a point at default precision.
> SELECT st_geohash(st_geomfromtext('POINT(-122.4261475 37.77374268)'));
  9q8yyhebpbpb
-- Returns the geohash of a point at precision 6.
> SELECT st_geohash(st_geomfromtext('POINT(-122.4261475 37.77374268)'), 6);
  9q8yyh
-- Returns the geohash of a linestring at default precision.
> SELECT st_geohash(st_geomfromtext('LINESTRING(-122.43 37.77,-122.42 37.78)'));
  9q8yy
-- Returns the geohash of a linestring at precision 9.
> SELECT st_geohash(st_geomfromtext('LINESTRING(-122.43 37.77,-122.42 37.78)'), 9);
  9q8yyhsz6
-- Returns empty string for a large geometry that doesn't fit in any geohash bucket.
> SELECT length(st_geohash(st_geomfromtext('LINESTRING(0 0,60 60)')));
  0