Compartilhar via


st_geohash Função

Aplica-se a:check marked yes Databricks SQL check marked yes Databricks Runtime 17.1 and above

Important

Esse recurso está em Visualização Pública.

Observação

Esse recurso não está disponível em databricks SQL Classic warehouses. Para saber mais sobre os sql warehouses do Databricks, consulte os tipos de sql warehouse.

Retorna o geohash do valor de entrada GEOMETRY na precisão especificada. Se a precisão não for especificada, a expressão se comportará como se a precisão especificada fosse -1.

Syntax

st_geohash ( geoExpr [, precisionExpr] )

Arguments

  • geoExpr: valor de GEOMETRY.
  • precisionExpr: a precisão opcional (número de dígitos significativos) do geohash de saída.

Returns

Um valor de tipo STRING, representando o geohash da geometria de entrada.

Mais precisamente:

  • Se a geometria de entrada estiver vazia, a expressão retornará NULL.
  • Se a precisão for 0, a cadeia de caracteres vazia será retornada.
  • Se a precisão for positiva, a expressão retornará o valor geohash do centro da caixa delimitadora da geometria na precisão especificada.
  • Se a precisão for negativa, a expressão retornará o valor de geohash que corresponde ao bucket de grade de geohash de precisão máxima (mas não mais de 12) que cobre totalmente a bounding box da geometria de entrada. Se um bucket de grade de geohash não existir, uma string vazia será retornada.

Consulte a Wikipédia para obter mais detalhes sobre geohashes.

A função retorna NULL se a entrada for NULL.

Condições de erro

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