Поделиться через


Функция st_geohash

Применяется к:check помеченный да флажок Databricks SQL помечен да Databricks Runtime 17.1 и более поздних версий

Important

Эта функция доступна в общедоступной предварительной версии.

Замечание

Эта функция недоступна в классических хранилищах Databricks SQL. Дополнительные сведения о хранилищах SQL Databricks см. в разделе "Типы хранилища SQL".

Возвращает геохашку входного GEOMETRY значения с заданной точностью. Если точность не указана, выражение ведет себя так, как если бы указанная точность была -1.

Syntax

st_geohash ( geoExpr [, precisionExpr] )

Arguments

  • geoExpr: GEOMETRY значение.
  • precisionExpr: необязательная точность (число значимых цифр) выходного геохаша.

Returns

Значение типа STRING, представляющее геохеш входной геометрии.

Точнее:

  • Если входная геометрия пуста, выражение возвращается NULL.
  • Если точность равна 0, возвращается пустая строка.
  • Если точность положительна, выражение возвращает геохашное значение центра ограничивающего прямоугольника геометрии с указанной точностью.
  • Если точность является отрицательной, выражение возвращает значение геохаширования, соответствующее контейнеру сетки геохаша максимальной точности (но не более 12), которое полностью охватывает ограничивающий прямоугольник входной геометрии. Если такой контейнер сетки геохаширования не существует, возвращается пустая строка.

Дополнительные сведения о геохашах см. в Википедии .

Функция возвращается NULL , если входные данные являются NULL.

Условия ошибок

  • Если входные данные содержат координаты долготы за пределами диапазона [-180, 180], функция возвращает ST_INVALID_ARGUMENT. LONGITUDE_OUT_OF_BOUNDS.
  • Если входные данные содержат координаты широты за пределами диапазона [-90, 90], функция возвращает ST_INVALID_ARGUMENT. LATITUDE_OUT_OF_BOUNDS.

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