mysql 空间查询_MYSQL空间查询函数
数据写入
插入时使用ST_GeomFromText,也可使用GeomFromText
INSERT INTOt_customers ( lon_lat_point )VALUES( GeomFromText ('POINT(123 123)' ) )
查询数据
查询空间数据
SELECTastext ( lon_lat_point )FROM`t_customers`
空间查询函数
包含相关
MBRContains(A,B) –> A包含B
MBRWithin(A,B) –> A在B中
注意:包含关系中,所要验证的集合必须全部包含在指定的集合中。如果只有部分在其中,应该使用相交
覆盖相关
MBRCoveredBy(A,B) –> A被B覆盖
MBRCovers(A,B) –> A覆盖B
相交相关
MBRDisjoint(A,B) –> A、B不相交
MBRIntersects(A,B) –> A、B相交
接触
MBRTouches(A,B) –> A、B接触,接触的概念类似于相切
重叠
MBROverlaps(A,B) –> A、B重叠
相同
MBREquals(A,B) –> A、B相同
空间数据相关方法
点独有
开始、结束点
ST_StartPoint(A)
ST_EndPoint(A)
获取x或y
ST_X(A)
ST_Y(A)
凸包
ST_ConvexHull(A) –> 多点A的凸包面
返回矩形
ST_MakeEnvelope(A,B) –> A、B为对角点
线独有
线是否闭合
ST_IsClosed(A)
线中点数量
ST_NumPoints
线中第n个点
ST_PointN(A,n)
线长度
ST_Length(A)
生成矩形
ST_Envelope(A) –> A只有两个点,且不是水平或竖直线
面积
ST_Area(A)
面的内外边界
ST_ExteriorRing(A) –> 获取A面外环边界,返回值为LineString
ST_InteriorRingN(A,num) –> 获取A面中第num个内环边界,返回值为LineString。num从1开始。
ST_NumInteriorRings(A) –> 获取A面内环数量(5.7.8后添加ST_NumInteriorRing,效果一样)
部分geo对象可用
集合
交集
ST_Intersection(A,B)
异或
ST_SymDifference(A,B) –> A、B中独有的
并集
ST_Union(A,B)
质心
ST_Centroid(A)
距离
ST_Distance(A,B) –> A和B距离
ST_Distance_Sphere(A,B) –> A和B的球面距离
不同
ST_Difference(A,B) –> 返回A中有B中没有的
抽稀
ST_Simplify(A,mix_distance) –> 将A抽稀,简化A中两点距离小于max的值(用起来有点迷。。待研究)
缓冲区
ST_Buffer(A,length) –> 通过A几何体,生成他周边范围为length距离的面
5.7.7后可以添加策略影响缓冲区的计算,设置的语句是ST_Buffer_Strategy()
point策略
point_circle –> 点的缓冲区是一个圆(默认)
point_square –> 点的缓冲区是一个正方形,length是点到其中一边的距离
join策略
join_round –> 连接处缓冲区边界为圆弧(默认)
join_miter –> 连接处缓冲区边界为尖角
end策略
end_round –> 在结束处缓冲区为圆弧(默认)
end_flat –> 在结束处缓冲区为平坦的直线
举例生成缓冲区
ST_Buffer(point, 5, ST_Buffer_Strategy('point_square'))
ST_Buffer(line, 5, ST_Buffer_Strategy('join_miter', 10), ST_Buffer_Strategy('end_flat'))
相交
ST_Intersects(A,B) –> A和B是否相交
ST_Crosses(A,B) –> A和B是否相交(相交部分不等于A或B)
ST_Disjoint(A,B) –> A和B是否不相交
重叠
ST_Overlaps(A,B)
接触
ST_Touches(A,B)
包含
ST_Contains(A,B) –> A是否包含B
ST_Within(A,B) –> A是否在B中
验证数据是否合法
ST_IsValid(A)
ST_Validate(A)
geo对象返回格式
ST_AsText(字段名) –> 以文本形式返回
ST_AsBinary(字段名) –> 以二进制形式返回
包含、覆盖、重叠三个方法不清楚具体的区别
注意:每个方法前的MBR、ST可要可不要,在mysql5.7.6之后,不带MBR、ST的方法开始弃用
查询样例:
- 查询在指定面中的点
sql
select * from test where MBRContains(ST_GeomFromText('Polygon((0 0,0 5,5 5,5 0,0 0))'),point)
- 查询所有point点的x坐标
sql
SELECT ST_X(point) FROM test
mysql 空间查询_MYSQL空间查询函数相关推荐
- mysql空间计算_MySQL 空间计算 空间查询
一.前言 MySQL实施了OGC建议的具有Geometry类型的SQL环境的一个子集.该术语指的是用一组集合类型扩展的环境.具有几何值的SQL列是作为拥有集合类型的列实施的.该规范描述了SQL几何类型 ...
- mysql商品查询_mysql的查询、子查询及连接查询(商城查询常用)
一.mysql查询的五种子句 where(条件查询).having(筛选).group by(分组).order by(排序).limit(限制结果数) 1.where常用运算符: 比较运算符 > ...
- 简单mysql 查询_MySQL简单查询详解
MySQL的查询操作 单表查询:简单查询 多表查询:连接查询 联合查询 布尔条件表达式操作符= 等值比较 <=>:跟空值比较不会产生额外信息的等值比较 <>:不等值 <: ...
- mysql 组合查询_MySQL组合查询教程
#MYSQL#这是我MySQL的第八篇教程.本篇主要介绍的是MySQL的组合查询的用法.在大多数的SQL查询中都只包含从一个或者多个表中返回数据的单条SELECT语句,MySQL其实也支持允许执行多条 ...
- mysql续型_mysql续集(查询部分)
mysql> select goods_name,goods_id, concat("HTC",substring(goods_name,4)) as name from g ...
- mysql查找 提速_MySQL加速查询速度的独门武器:查询缓存
[导读] 与朋友或同事谈到mysql查询缓存功能的时候,个人喜欢把Query Cache比作荔枝,是非常营养的东西,但是一次性吃太多了,就容易导致上火而流鼻血,虽然不是特别恰当的比喻,但是有很多相似的 ...
- mysql lambda查询_MySQL高级查询和编程基础
学习概述 随着数据库管理信息系统的日益复杂和庞大,软件应用系统对数据库设计.数据存储.数据查询和数据维护等提出了更高的要求.本书主要介绍数据库设计的方法和技术.子查询技术.MySQL编程基础知识和存储 ...
- mysql查询_MySQL常用查询
单表查询 ①查询所有 * mysql> select * from student; ②查询选中字段记录 mysql> select s_name from student; ③条 ...
- MySQL实验四数据库的查询_MySQL数据库查询(实验四)
MySQL数据库查询 准备工作:脚本文件xkgl.sql下载:xkgl脚本.sql 1.执行脚本xkgl.sql (创建xkgl库.表及插入数据),观察有无错误,如有记录错误信息,并解决. (1) 执 ...
最新文章
- 如何找出应用程序未使用绑定变量
- 浅析自助式商城网站的制作步骤——简单易上手
- 雷林鹏分享:Lua 数据库访问
- js改变iframe链接
- HTML IFRAME 用法小总结
- pytorch实现简易分类模型
- windows故障转移群集和mysql_Windows 2016 无域故障转移群集部署方法 超详细图文教程...
- c语言long a什么意思啊,英文long的中文是什么意思
- 《scikit-learn》交叉验证
- [linux 日常]修改ls目录的颜色
- sql server 缓存_了解SQL Server查询计划缓存
- visualbox 网页服务器,无法看到VirtualBox NGINX站点
- c语言里变量要求,c语言中要求对变量作强制定义的主要理由是什么?
- 浅谈EM算法的两个理解角度
- 【python中级】linux系统获得计算机网卡流量
- 使用tf.image.resize() 和tf.image.resize_with_pad()调整图像大小
- 大局观有多重要?如何拥有大局观?
- torch.nn.functional.normalize详解
- Unity3d TextMeshPro教程
- NS-3网络仿真平台搭建及可视化