Categorias:

Funções geoespaciais

ST_GEOMFROMGEOHASH

Retorna um objeto GEOMETRY para o polígono que representa os limites de um geohash.

O número de caracteres em um geohash determina a precisão. A remoção de caracteres do fim de um geohash resulta em um geohash que é menos preciso e que identifica uma área retangular maior.

O argumento opcional precision especifica a precisão a ser usada para o geohash de entrada. Por exemplo, passar 5 para precision especifica que a função usa os 5 primeiros caracteres do geohash de entrada.

Consulte também:

ST_GEOHASH, ST_GEOMPOINTFROMGEOHASH

Sintaxe

ST_GEOMFROMGEOHASH( <geohash> [, <precision> ] )
Copy

Argumentos

Obrigatório:

geohash

O argumento deve ser um geohash.

Opcional:

precision

O número de caracteres a serem utilizados no geohash. Você pode especificar um valor de 1 a 20.

Por padrão, precision é 20, o que produz um geohash com 20 caracteres.

Retornos

Retorna um valor do tipo GEOMETRY.

Exemplos

O exemplo seguinte retorna o objeto GEOMETRY para um geohash:

SELECT ST_GEOMFROMGEOHASH('9q9j8ue2v71y5zzy0s4q')
  AS geometry_from_geohash,
  ST_AREA(ST_GEOMFROMGEOHASH('9q9j8ue2v71y5zzy0s4q'))
  AS area_of_geohash;
Copy
+---------------------------------+-----------------+
| GEOMETRY_FROM_GEOHASH           | AREA_OF_GEOHASH |
|---------------------------------+-----------------|
| {                               | 5.492996255e-26 |
|   "coordinates": [              |                 |
|     [                           |                 |
|       [                         |                 |
|         -1.223061000000001e+02, |                 |
|         3.755416199999996e+01   |                 |
|       ],                        |                 |
|       [                         |                 |
|         -1.223061000000001e+02, |                 |
|         3.755416200000012e+01   |                 |
|       ],                        |                 |
|       [                         |                 |
|         -1.223060999999998e+02, |                 |
|         3.755416200000012e+01   |                 |
|       ],                        |                 |
|       [                         |                 |
|         -1.223060999999998e+02, |                 |
|         3.755416199999996e+01   |                 |
|       ],                        |                 |
|       [                         |                 |
|         -1.223061000000001e+02, |                 |
|         3.755416199999996e+01   |                 |
|       ]                         |                 |
|     ]                           |                 |
|   ],                            |                 |
|   "type": "Polygon"             |                 |
| }                               |                 |
+---------------------------------+-----------------+

O exemplo seguinte retorna o objeto GEOMETRY para um geohash menos preciso. A função utiliza os primeiros 6 caracteres do geohash de entrada:

SELECT ST_GEOMFROMGEOHASH('9q9j8ue2v71y5zzy0s4q', 6)
  AS geometry_from_less_precise_geohash,
  ST_AREA(ST_GEOMFROMGEOHASH('9q9j8ue2v71y5zzy0s4q', 6))
  AS area_of_geohash;
Copy
+------------------------------------+-----------------+
| GEOMETRY_FROM_LESS_PRECISE_GEOHASH | AREA_OF_GEOHASH |
|------------------------------------+-----------------|
| {                                  | 6.034970284e-05 |
|   "coordinates": [                 |                 |
|     [                              |                 |
|       [                            |                 |
|         -1.223107910156250e+02,    |                 |
|         3.755126953125000e+01      |                 |
|       ],                           |                 |
|       [                            |                 |
|         -1.223107910156250e+02,    |                 |
|         3.755676269531250e+01      |                 |
|       ],                           |                 |
|       [                            |                 |
|         -1.222998046875000e+02,    |                 |
|         3.755676269531250e+01      |                 |
|       ],                           |                 |
|       [                            |                 |
|         -1.222998046875000e+02,    |                 |
|         3.755126953125000e+01      |                 |
|       ],                           |                 |
|       [                            |                 |
|         -1.223107910156250e+02,    |                 |
|         3.755126953125000e+01      |                 |
|       ]                            |                 |
|     ]                              |                 |
|   ],                               |                 |
|   "type": "Polygon"                |                 |
| }                                  |                 |
+------------------------------------+-----------------+