在MySQL中,Geometry等几何对象可以用来表示地理位置,即用几何对象表示地理空间数据。
在MySQL中支持的几何数据类型包括Geometry、Point、LineString、Polygon以及集合类型的MultiPoint、MultiLineString、MultiPolygon、GeometryCollection。其中Geometry可以表示任意一种几何类型,即在MySQL中,如果一个字段类型是Geometry,则可以存储Point、LineString等其它几何类型的值。其他的几种则需要固定有效的表示格式。
一、数据格式
在MySQL中有3种表达几何对象的格式:
•WKT(文本格式)•WKB(二进制格式)•MySQL内部存储格式 WKT是文本格式,因此可以直接使用文本来表示几何数据,实现数据的插入与编辑。
二、常用函数ST_GEOMFROMTEXT
用于将几何数据从可读的文本类型转换成内部存储的二进制类型。
示例:
INSERT INTO `t_geo_test2` (id,name,geometry_1)VALUES (1, 'G1', geomFromText('POINT(121.474103 31.232862)'));ST_ASTEXT
将几何数据转换成可读的文本类型。
示例:
SELECT ST_ASTEXT(linestring_1) from t_geo_test2;
ST_GEOHASH
可以将一个地理位置(Point)转换为一个指定长度的字符串,只有Point中存储的是经纬度即第一第二坐标范围分别在(-180,180)与[-90,90]内时才可以转换成功。
SELECT ST_GeoHash(geometry_1,8) FROM t_geo_test2 where id =1;
Geohash官网:https://en.wikipedia.org/wiki/Geohash 在PG中使用的是postgis,相关对比见:https://yq.aliyun.com/articles/73995
三、数据SQL
/* Navicat Premium Data Transfer Source Server :