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
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)
网友回复