数据库
首页 > 数据库> > MySQL Geometry的使用 —— 地理空间类型Geometry

MySQL Geometry的使用 —— 地理空间类型Geometry

作者:互联网

注意:在投影坐标系中不同的投影标准有不同的单位,如常用到的投影标准:3857以米为单位,4326以度为单位

目录

一、Geometry数据类型有哪些?

1.Geometry介绍
2.Geometry类型

注意:数据中间不能有多余的空格

名称 类型 例如
Point 点坐标 POINT(103 35)
LineString 线坐标 LINESTRING(103 35,103 36,104 36,105 37)
Polygon 面坐标 POLYGON(103 35,104 35,104 36,103 36,103 35)
MultiPoint 多点 MULTIPOINT(103 35, 104 34,105 35)
MultiLineString 多线 MULTILINESTRING((103 35, 104 35), (105 36, 105 37))
MultiPolygon 多面 MULTIPOLYGON(((103 35,104 35,104 36,103 36,103 35)),((103 36,104 36,104 37,103 36)))
GeometryCollection 混合类型 GEOMETRYCOLLECTION(POINT(103 35), LINESTRING(103 35, 103 37))

二、Geometry数据格式

三、Geometry的常用函数

1.构造函数

构造函数会获取一种几何类型或几何的文本说明,然后创建一个几何

2.存取器函数

函数都采用一个或多个几何作为输入,并返回关于几何的特定信息

3.关系函数

关系函数将几何作为输入并确定各几何之间是否存在特定关系

4.几何函数

函数利用空间数据并对其执行分析,然后返回新的空间数据

更多相关函数可参考:ArcMap

四、使用实例

1.从Geometry字段获得信息
select ST_AsText(wzxx) as geometry, ST_X(wzxx) as x, ST_Y(wzxx) as y,
	ST_AsGeoJSON(wzxx) as wzxx, ST_AsText(sydwfw) as sydwfw
from tb_sydw
2.搜索指定范围之内的数据
select * from tb_sydw
where st_distance_sphere(ST_POINTFROMTEXT('POINT(103,36)'), wzxx) < 2000
3.搜索指定范围之内的数据(Geohash算法提速)

GeoHash是一种地址编码方法。他能够把二维的空间经纬度数据编码成一个字符串,然后通过编码前多少位,直接进行匹配,从而快速的锁定一个较小范围

select * from tb_sydw
where st_geohash(wzxx,5) like concat(st_geohash(ST_POINTFROMTEXT('POINT(103,36)'),5),'%')
4.获得路径多大范围内的面坐标

具体可参考:ST_Buffer

SELECT ST_AsText(
		 ST_Buffer(
			ST_GeomFromText('LINESTRING(103 35,103 36,104 36)'), 0.04,
					ST_Buffer_Strategy('end_round',4),ST_Buffer_Strategy('join_round',4)
         )
       )

函数后两个参数,影响箭头处圆滑程度,精度越高,构造出来的面越圆滑,消耗也更大

标签:Geometry,MySQL,36,35,ST,地理,几何,103
来源: https://www.cnblogs.com/changge333/p/15378276.html