1 介绍
Mysql不仅支持普通的数据类型,还支持几何数据类型,并且能对几何数据类型进行查询(感觉好厉害!),该几何类型为geometry,下面就让我们从geometry开始学习!
2 Geometry
该类为几何数据类型的基类
子类(常用):
Point: 点,两个坐标确定一点。
数据格式: POINT(113.64258 21.57715)
经度(longitude)在前,维度(latitude)在后,用空格分隔。
LineString: 线,由一系列点连接而成。
数据格式: LINESTRING(113.64258 21.57715,113.63159 21.9397)
点与点之间用逗号分隔;一个点中的经纬度用空格分隔。
Polygon:多边形。可以是一个实心平面形,即没有内部边界,也可以有空洞,类似纽扣。
数据格式: POLYGON((0 0,5 0,5 5, 0 5,0 0))
点与点之间的线连成一个多边形。
注意:第一个点和最后一个点必须一样,形成一个封闭的图形。
POLYGON() 中可以有多个多边形,例如一个大正方形内一个小正方形,就会形成一个空洞。 POLYGON((0 0,5 0,5 5,0 5,0 0),(1 1,4 1,4 4,1 4,1 1))
3 创建几何对象
ST_GeomFromText() 推荐使用
该函数可以创建任意几何体 SET @p1 = ST_GeomFromText('POINT(3 3)');
SET @p2 = ST_GeomFromText('LINESTRING(1 1,2 2)');
SET @p3 = ST_GeomFromText('POLYGON((0 0,5 0,5 5, 0 5,0 0))');
SET @p4 = ST_GeomFromText('POLYGON((0 0,5 0,5 5,0 5,0 0),(1 1,4 1,4 4,1 4,1 1))');
SELECT ST_ASTEXT(@p1),ST_ASTEXT(@p2),ST_ASTEXT(@p3),ST_ASTEXT(@p4);
ST_ASTEXT()将Geometry对象转换成文本
效果:
ST_Poi