MySQL空间数据学习

一、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 primitives

Multipart geometries
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空间数据类型

三、MySQL空间坐标函数

函数描述
GeomCollection()从几何图形构造几何图形集合
GeometryCollection()从几何图形构造几何图形集合
LineString()从点值构造线字符串
MBRContains()一种几何体的MBR是否包含另一种几何体的MBR
MBRCoveredBy()一个MBR是否被另一个MBR覆盖
MBRCovers()一个MBR是否覆盖另一个MBR
MBRDisjoint()两种几何形状的MBR是否不相交
MBREquals()两种几何形状的MBR是否相等
MBRIntersects()两个几何体的MBR是否相交
MBROverlaps()两种几何形状的MBR是否重叠
MBRTouches()两种几何形状的MBR是否接触
MBRWithin()一种几何体的MBR是否在另一种几何体的MBR内
MultiLineString()从行字符串值构造多行字符串
MultiPoint()从点值构造多点
MultiPolygon()从多边形值构造多多边形
Point()从坐标构造点
Polygon()从LineString参数构造多边形
ST_Area()返回多边形或多多边形区域
ST_AsBinary()ST_AsWKB()
ST_AsGeoJSON()从几何体生成GeoJSON对象
ST_AsText()ST_AsWKT()
ST_Buffer()返回距离几何体给定距离内的点的几何体
ST_Buffer_Strategy()ST_Buffer()的生成策略选项
ST_Centroid()返回质心作为一个点
ST_Collect()将空间值聚合到集合中
ST_Contains()一个几何体是否包含另一个几何体
ST_ConvexHull()几何的返回凸包
ST_Crosses()一个几何体是否与另一个几何体相交
ST_Difference()两种几何体的返回点集差
ST_Dimension()几何尺寸
ST_Disjoint()一个几何体与另一个几何体是否不相交
ST_Distance()一个几何体与另一个几何体的距离
ST_Distance_Sphere()地球上两个几何体之间的最小距离
ST_EndPoint()线串的端点
ST_Envelope()几何体的返回MBR
ST_Equals()一个几何体是否等于另一个几何体
ST_ExteriorRing()多边形的返回外环
ST_FrechetDistance()离散Fr茅一个几何体与另一个几何体的切特距离
ST_GeoHash()生成一个geohash值
ST_GeomCollFromText()ST_GeometryCollectionFromText()
ST_GeomCollFromWKB()ST_GeometryCollectionFromWKB()
ST_GeometryN()从几何图形集合返回第N个几何图形
ST_GeometryType()返回几何体类型的名称
ST_GeomFromGeoJSON()从GeoJSON对象生成几何体
ST_GeomFromText()ST_GeometryFromText()
ST_GeomFromWKB()ST_GeometryFromWKB()
ST_HausdorffDistance()一个几何体与另一个几何体之间的离散Hausdorff距离
ST_InteriorRingN()返回多边形的第N个内环
ST_Intersection()两个几何图形的返回点集交点
ST_Intersects()一个几何体是否与另一个几何体相交
ST_IsClosed()几何图形是否闭合且简单
ST_IsEmpty()几何图形是否为空
ST_IsSimple()几何图形是否简单
ST_IsValid()几何图形是否有效
ST_LatFromGeoHash()从geohash值返回纬度
ST_Latitude()返回点纬度
ST_Length()返回行字符串的长度
ST_LineFromText()ST_LineStringFromText()
ST_LineFromWKB()ST_LineStringFromWKB()
ST_LineInterpolatePoint()沿线字符串指定百分比的点
ST_LineInterpolatePoints()沿线字符串指定百分比的点
ST_LongFromGeoHash()从geohash值返回经度
ST_Longitude()返回点经度
ST_MakeEnvelope()围绕两点的矩形
ST_MLineFromText()ST_MultiLineStringFromText()
ST_MLineFromWKB()ST_MultiLineStringFromWKB()
ST_MPointFromText()ST_MultiPointFromText()
ST_MPointFromWKB()ST_MultiPointFromWKB()
ST_MPolyFromText()ST_MultiPolygonFromText()
ST_MPolyFromWKB()ST_MultiPolygonFromWKB()
ST_NumGeometries()返回几何图形集合中的几何图形数
ST_NumInteriorRing()ST_NumInteriorRings()
ST_NumPoints()返回LineString中的点数
ST_Overlaps()一个几何体是否与另一个几何体重叠
ST_PointAtDistance()沿线串指定距离的点
ST_PointFromGeoHash()将geohash值转换为点值
ST_PointFromText()从WKT构造点
ST_PointFromWKB()从WKB构造点
ST_PointN()从LineString返回第N个点
ST_PolyFromText()ST_PolygonFromText()
ST_PolyFromWKB()ST_PolygonFromWKB()
ST_Simplify()返回简化几何体
ST_SRID()返回几何图形的空间参考系统ID
ST_StartPoint()线串的起点
ST_SwapXY()交换X/Y坐标的返回参数
ST_SymDifference()两个几何体的返回点集对称差
ST_Touches()一个几何体是否与另一个几何体接触
ST_Transform()变换几何坐标
ST_Union()两个几何体的返回点集并集
ST_Validate()返回已验证的几何体
ST_Within()一个几何体是否在另一个几何体中
ST_X()返回点的X坐标
ST_Y()返回点的Y坐标

参考链接:https://blog.csdn.net/daizimo/article/details/126382419

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值