+
95
-

回答

POINT(坐标)

代表的是一个坐标,有X,Y坐标 X坐标可以当成是纬度Longitude,Y坐标可以当作为经度Latitude.
X和Y都是 Double (8byte) 浮点类型数值
-- point 类型
mysql>select Point(123,132) from dual;
+----------------+
| Point(123,132) |
+----------------+
| POINT(123 132) |
+----------------+
1 row in set

mysql> select ST_GeomFromText('POINT(15 20)') from dual ;
+---------------------------------+
| ST_GeomFromText('POINT(15 20)') |
+---------------------------------+
| POINT(15 20) |
+---------------------------------+
1 row in set

-- 获取X坐标
mysql> SELECT ST_X(Point(15, 20));
+---------------------+
| ST_X(POINT(15, 20)) |
+---------------------+
| 15 |
+---------------------+

mysql> SELECT ST_Y(Point(15, 20));
+---------------------+
| ST_Y(POINT(15, 20)) |
+---------------------+
| 20|
+---------------------+

LineString

表示一系列坐标连接的线
-- 字符串转成lineString
mysql> select LINESTRING(point(1,1), point(2,1) ) from dual;
+-------------------------------------+
| LINESTRING(point(1,1), point(2,1) ) |
+-------------------------------------+
| LINESTRING(1 1, 2 1) |
+-------------------------------------+
1 row in set

mysql> select ST_MPointFromText('LINESTRING(0 0, 10 10, 20 25, 50 60)') from dual;
+-----------------------------------------------------------+
| ST_MPointFromText('LINESTRING(0 0, 10 10, 20 25, 50 60)') |
+-----------------------------------------------------------+
| LINESTRING(0 0, 10 10, 20 25, 50 60) |
+-----------------------------------------------------------+

1 row in set

Polygon
表示一些列线连接封闭的多边形
mysql> select ST_MPointFromText('POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5))') from dual;
+--------------------------------------------------------------------------------+
| ST_MPointFromText('POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5))') |
+--------------------------------------------------------------------------------+
| POLYGON((0 0, 10 0, 10 10, 0 10, 0 0), (5 5, 7 5, 7 7, 5 7, 5 5)) |
+--------------------------------------------------------------------------------+
1 row in set
-- 非字符串转换 没有,太麻烦

Geometry

能够保存 Point, LineString , Polygon 数据类型,并能完整保存其类型.
具有下面的属性
属性 描述
type 可实例化的基础地理数据类型
SRID 空间参考标识符(spatial reference identifier),描述该对象的坐标空间的 ID,是根据MySQL的空间引用参考系统做唯一的标识 最大值位2^32 -1 ,0 代表无限空间
coordinates 空间坐标,至少一对Point(X,Y) ,它与SRID 有关联,但不能完全代表地球地理位置坐标体系,它有可能是显示器的planar 坐标体系.
MBR 最小边界矩形,或者包络线, 这是由最小和最大的坐标构成 ((左下角坐标,右下角坐标,左上角坐标,右上角坐标))((MINX MINY, MAXX MINY, MAXX MAXY, MINX MAXY, MINX MINY))
empty/nonempty 空或者不空,空或者NULL 维度为0

保存多地理位置集合数据的类型

MultiPoint

多个点
两种生产方式
select ST_MPointFromText('MULTIPOINT (1 1, 2 2, 3 3)') from dual;
select MULTIPOINT(point(1,1), point(2,1) ) from dual;

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)))
1

多个多边形

GeoMetryCollection
能通用保存多地理位置集合类型(MultiPoint , MultiLineString , MultiPolygon)

GEOMETRYCOLLECTION(POINT(10 10), POINT(30 30), LINESTRING(15 15, 20 20))

检测某个点是否在多边形中

SELECT * FROM TableName WHERE MBRContains(POINT(x,y),column)

网友回复

我知道答案,我要回答