一、使用
- 存放:st_geomfromtext(‘POINT(longitude latitude)’)
-- 用于将几何数据从可读的`文本类型`转换成`内部存储`的`二进制类型`。
INSERT INTO gxdc_company_park (location) VALUES(ST_GeomFromText(#{location,jdbcType=VARCHAR}));
- 获取:st_astext(column_name)
-- 将几何数据转换成可读的文本类型
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;`
-- ST_PolygonFromText;
二、数据类型
类型 | 含义 | 说明 | 示例 |
---|---|---|---|
Geometry | 间数据 | 任意一种空间类型 | |
Point | 点 | 坐标值 | POINT(121.474 31.2329) |
LineString | 线 | 线,由一系列点连接而成 | LINESTRING(3 0, 3 3, 3 5) |
Polygon | 多边形 | 由多条线组成 | POLYGON((1 1, 2 1, 2 2, 1 2, 1 1)) |
MultiPoint | 点集合 | 集合类,包含多个点 | MULTIPOINT(0 0, 20 20, 60 60) |
MultiLineString | 线集合 | 集合类,包含多条线 | MULTILINESTRING((10 10, 20 20), (15 15, 30 15)) |
MultiPolygon | 多边形集合 | 集合类,包含多个多边形 | MULTIPOLYGON(((0 0, 10 0, 10 10, 0 10, 0 0)), ((5 5, 7 5, 7 7, 5 7, 5 5))) |
GeometryCollection | 空间数据集合 | 集合类,可以包括多个点、线、多边形 | GEOMETRYCOLLECTION(POINT(10 10), POINT(30 30), LINESTRING(15 15, 20 20)) |
三、Mysql 中存放的结构
最初由Open Geospatial Consortium(OGC)组织定义,遵循该标准,MYSQL对其中SQL with Geomtry Types环境下的一个子集实现了空间扩展
- WKT (Well-known text, WKT) 空间几何对象坐标文本表示
- WKB (Well-known Binary, WKB) 二进制格式
- MYSQLSELF 数据库内部存储的几何格式
POINT (30 10)
LINESTRING (30 10, 10 30, 40 40)
POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))
POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10), (20 30, 35 35, 30 20, 20 30))
PS: 度格式 =度+分/60 +秒/3600;(数据为度分秒)
CASE: 30°33.1786(度分格式) = (度格式) 30 +33.1786/60= 30.552976666666666666666666666667(度格式);