10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 41.2 mb
PDF (A4)- 41.3 mb
PDF (RPM)- 39.5 mb
HTML下载(TGZ)- 9.3 mb
HTML下载(Zip)- 9.3 mb
HTML下载(RPM)- 7.8 mb
手册页(TGZ)- 260.6 kb
手册页(Zip)- 371.8 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

12.17.10空间Geohash函数

Geohash是一种将任意精度的纬度和经度坐标编码到文本字符串中的系统。Geohash值是只包含从中选择的字符的字符串“0123456789 bcdefghjkmnpqrstuvwxyz”

本节中的函数支持对geohash值的操作,这为应用程序提供了导入和导出geohash数据以及索引和搜索geohash值的功能。

除非另有说明,本节中的函数以如下方式处理它们的几何参数:

  • 如果任何参数是,返回值为

  • 如果任何参数无效,就会发生错误。

  • 如果任何参数具有超出范围的经度或纬度,则会发生错误:

    范围以度为单位。由于浮点运算,精确的范围限制略有偏差。

  • 如果任何点参数没有SRID 0或4326,则anER_SRS_NOT_FOUND发生错误。不检查SRID的有效性。

  • 如果任何SRID参数引用一个未定义的空间参考系统(SRS),则一个ER_SRS_NOT_FOUND发生错误。

  • 如果任何SRID参数不在32位无符号整数的范围内,则使用ER_DATA_OUT_OF_RANGE发生错误。

  • 否则返回值为non-

这些geohash函数是可用的:

  • ST_GeoHash (经度纬度max_lengthST_GeoHash (max_length

    返回连接字符集和排序规则中的geohash字符串。

    对于第一个语法,使用经度必须为[−180,180]范围内的数字,且纬度必须为[- 90,90]范围内的数字。对于第二个语法,a值,其中X和Y坐标分别在经度和纬度的有效范围内。

    生成的字符串不大于max_length字符,上限为100个。字符串可能比max_length字符,因为创建geohash值的算法将继续执行,直到它创建了一个字符串,该字符串要么是位置的精确表示,要么是位置的精确表示max_length字符,以先出现的为准。

    ST_GeoHash ()按照本节介绍中的描述处理其参数。

    mysql> SELECT ST_GeoHash(180,0,10), ST_GeoHash(-180,-90,15);+----------------------+-------------------------+ | ST_GeoHash (180 0, 10) | ST_GeoHash(-180、-90、15 ) | +----------------------+-------------------------+ | xbpbpbpbpb | 000000000000000  | +----------------------+-------------------------+
  • ST_LatFromGeoHash (geohash_str

    从geohash字符串值返回纬度,作为范围[- 90,90]的双精度数字。

    ST_LatFromGeoHash ()函数中读取不超过433个字符geohash_str论点。表示坐标值的内部表示中信息的上限。超过第433个字符将被忽略,即使它们是非法的并产生错误。

    ST_LatFromGeoHash ()按照本节介绍中的描述处理其参数。

    mysql> SELECT ST_LatFromGeoHash(ST_GeoHash(45,-20,10));+------------------------------------------+ | ST_LatFromGeoHash (ST_GeoHash (-20, 10 )) | +------------------------------------------+ | - 20  | +------------------------------------------+
  • ST_LongFromGeoHash (geohash_str

    从geohash字符串值返回经度,作为范围[−180,180]的双精度数字。

    的描述中的备注ST_LatFromGeoHash ()处理的最大字符数geohash_str论点也适用于ST_LongFromGeoHash ()

    ST_LongFromGeoHash ()按照本节介绍中的描述处理其参数。

    mysql> SELECT ST_LongFromGeoHash(ST_GeoHash(45,-20,10));+-------------------------------------------+ | ST_LongFromGeoHash (ST_GeoHash (-20, 10 )) | +-------------------------------------------+ | 45  | +-------------------------------------------+
  • ST_PointFromGeoHash (geohash_strsrid

    返回一个值,包含已解码的geohash值,给定geohash字符串值。

    该点的X坐标和Y坐标分别是[−180,180]范围内的经度和[−90,90]范围内的纬度。

    srid参数为32位无符号整数。

    的描述中的备注ST_LatFromGeoHash ()处理的最大字符数geohash_str论点也适用于ST_PointFromGeoHash ()

    ST_PointFromGeoHash ()按照本节介绍中的描述处理其参数。

    mysql> SET @gh = ST_GeoHash(45,-20,10);mysql> SELECT ST_AsText(ST_PointFromGeoHash(@gh,0));+---------------------------------------+ | ST_AsText (ST_PointFromGeoHash (@gh 0 )) | +---------------------------------------+ | 点(45 -20 ) | +---------------------------------------+