一、MySQL空间数据形式
MKT
已知文本(WKT)格式。用已知文本(WKT)表示几何值是为用ASCII格式交换几何数据而设计的。OpenGIS规范提供了一个BackusNaur语法,它指定了写入WKT值的正式生成规则。
MKB
已知二进制(WKB)格式。用已知二进制(WKB)表示的几何值,用于交换二进制流格式的几何数据,用包含几何WKB信息的BLOB值表示。该格式由OpenGIS规范定义。ISO SQL/MM第3部分:空间标准中也对其进行了定义。WKB使用1字节无符号整数、4字节无符号整数和8字节双精度数字(IEEE 754格式)。一个字节有八位
GEOJSON
GeoJSON 是用于描述地理空间信息的数据格式。GeoJSON 不是一种新的格式,其语法规范是符合 JSON
格式的,只不过对其名称进行了规范,专门用于表示地理信息。GeoJSON 的最外层是一个单独的对象(object)。这个对象可表示:
- 几何体(Geometry)。
- 特征(Feature)。
- 特征集合(FeatureCollection)。
最外层的 GeoJSON 里可能包含有很多子对象,每一个 GeoJSON 对象都有一个 type 属性,表示对象的类型,type 的值必须是下面之一:
- Point:点。
- MultiPoint:多点。
- LineString:线。
- MultiLineString:多线。
- Polygon:面。
- MultiPolygon:多面。
- GeometryCollection:几何体集合。
- Feature:特征。
- FeatureCollection:特征集合。
每一个对象都有一个成员变量 coordinates。如果 type 的值为 Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon之一,则该对象必须有变量 coordinates。
如果 type 的值为 GeometryCollection(几何体集合),那么该对象必须有变量geometries,其值是一个数组,数组的每一项都是一个 GeoJSON 的几何对象。
二、MySQL空间数据类型
MySQL的空间数据类型(Spatial Data Type)对应于OpenGIS类,包括单值类型:GEOMETRY、POINT、LINESTRING、POLYGON以及集合类型:MULTIPOINT、MULTILINESTRING、MULTIPOLYGON、GEOMETRYCOLLECTION 。
GEOMETRY
Geometry是所有空间集合类型的基类,其他类型如POINT、LINESTRING、POLYGON都是Geometry的子类。
POINT
Point,顾名思义就是点,有一个坐标值。例如POINT(121.213342 31.234532),POINT(30 10),坐标值支持DECIMAL类型,经度(longitude)在前,维度(latitude)在后,用空格分隔。
LINESTRING
LineString,线,由一系列点连接而成。如果线从头至尾没有交叉,那就是简单的(simple);如果起点和终点重叠,那就是封闭的(closed)。例如LINESTRING(30 10,10 30,40 40),点与点之间用逗号分隔,一个点中的经纬度用空格分隔,与POINT格式一致。
POLYGON
Polygon,多边形。可以是一个实心平面形,即没有内部边界,也可以有空洞,类似纽扣。最简单的就是只有一个外边界的情况,例如POLYGON((0 0,10 0,10 10, 0 10))。
MULTIPOINT
MultiPoint是由Point(点)元素组成的几何集合。这些点没有以任何方式连接或排序。MultiPoint的用法:在世界地图上,MultiPoint可以代表一连串的小岛。 MultiPoint属性:MultiPoint是零维几何。如果MultiPoint的两个Point值都不相等(坐标值相同),则它很简单。 MultiPoint的边界是空集。
MULTILINESTRING
MultiLineString是由LineString元素组成的MultiCurve几何集合。 MultiLineString的用法:在区域地图上,MultiLineString可以表示河流系统或高速公路系统。MultiSurface类型:MultiSurface是由表面元素组成的几何集合。 MultiSurface是不可实例化的类。它唯一的可实例化子类是MultiPolygon。两个MultiSurface曲面没有相交的内部。两个MultiSurface元素的边界最多在有限数量的点处相交。
MULTIPOLYGON
MultiPolygon是一个由Polygon元素组成的MultiSurface对象MultiPolygon的用法:MultiPolygon可以代表区域地图上的湖泊系统。MultiPolygon没有两个内部相交的Polygon元素。MultiPolygon没有两个相交的Polygon元素(上一个断言也禁止相交)或在无数个点处接触。MultiPolygon可能没有切割线,尖峰或穿孔。 MultiPolygon是常规的封闭点集。具有多个多边形的MultiPolygon的内部未连接。 MultiPolygon内部的连接组件数等于MultiPolygon中的Polygon值数。MultiPolygon是二维几何。 MultiPolygon边界是一组与其Polygon元素的边界相对应的闭合曲线(LineString值)。MultiPolygon边界中的每条曲线都恰好在一个Polygon元素的边界中。多边形元素边界中的每个曲线都在MultiPolygon的边界中。
GEOMETRYCOLLECTION
GeometryCollection是一种几何,它是任何类的一个或多个几何的集合。 GeometryCollection中的所有元素必须位于同一空间参考系统中。
三、MySQL空间坐标函数
参考链接:https://blog.csdn.net/daizimo/article/details/126382419