数据写入

插入时使用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空间查询函数相关推荐

  1. mysql空间计算_MySQL 空间计算 空间查询

    一.前言 MySQL实施了OGC建议的具有Geometry类型的SQL环境的一个子集.该术语指的是用一组集合类型扩展的环境.具有几何值的SQL列是作为拥有集合类型的列实施的.该规范描述了SQL几何类型 ...

  2. mysql商品查询_mysql的查询、子查询及连接查询(商城查询常用)

    一.mysql查询的五种子句 where(条件查询).having(筛选).group by(分组).order by(排序).limit(限制结果数) 1.where常用运算符: 比较运算符 > ...

  3. 简单mysql 查询_MySQL简单查询详解

    MySQL的查询操作 单表查询:简单查询 多表查询:连接查询 联合查询 布尔条件表达式操作符= 等值比较 <=>:跟空值比较不会产生额外信息的等值比较 <>:不等值 <: ...

  4. mysql 组合查询_MySQL组合查询教程

    #MYSQL#这是我MySQL的第八篇教程.本篇主要介绍的是MySQL的组合查询的用法.在大多数的SQL查询中都只包含从一个或者多个表中返回数据的单条SELECT语句,MySQL其实也支持允许执行多条 ...

  5. mysql续型_mysql续集(查询部分)

    mysql> select goods_name,goods_id, concat("HTC",substring(goods_name,4)) as name from g ...

  6. mysql查找 提速_MySQL加速查询速度的独门武器:查询缓存

    [导读] 与朋友或同事谈到mysql查询缓存功能的时候,个人喜欢把Query Cache比作荔枝,是非常营养的东西,但是一次性吃太多了,就容易导致上火而流鼻血,虽然不是特别恰当的比喻,但是有很多相似的 ...

  7. mysql lambda查询_MySQL高级查询和编程基础

    学习概述 随着数据库管理信息系统的日益复杂和庞大,软件应用系统对数据库设计.数据存储.数据查询和数据维护等提出了更高的要求.本书主要介绍数据库设计的方法和技术.子查询技术.MySQL编程基础知识和存储 ...

  8. mysql查询_MySQL常用查询

    单表查询 ①查询所有     * mysql> select * from student; ②查询选中字段记录 mysql> select s_name from student; ③条 ...

  9. MySQL实验四数据库的查询_MySQL数据库查询(实验四)

    MySQL数据库查询 准备工作:脚本文件xkgl.sql下载:xkgl脚本.sql 1.执行脚本xkgl.sql (创建xkgl库.表及插入数据),观察有无错误,如有记录错误信息,并解决. (1) 执 ...

最新文章

  1. 如何找出应用程序未使用绑定变量
  2. 浅析自助式商城网站的制作步骤——简单易上手
  3. 雷林鹏分享:Lua 数据库访问
  4. js改变iframe链接
  5. HTML IFRAME 用法小总结
  6. pytorch实现简易分类模型
  7. windows故障转移群集和mysql_Windows 2016 无域故障转移群集部署方法 超详细图文教程...
  8. c语言long a什么意思啊,英文long的中文是什么意思
  9. 《scikit-learn》交叉验证
  10. [linux 日常]修改ls目录的颜色
  11. sql server 缓存_了解SQL Server查询计划缓存
  12. visualbox 网页服务器,无法看到VirtualBox NGINX站点
  13. c语言里变量要求,c语言中要求对变量作强制定义的主要理由是什么?
  14. 浅谈EM算法的两个理解角度
  15. 【python中级】linux系统获得计算机网卡流量
  16. 使用tf.image.resize() 和tf.image.resize_with_pad()调整图像大小
  17. 大局观有多重要?如何拥有大局观?
  18. torch.nn.functional.normalize详解
  19. Unity3d TextMeshPro教程
  20. NS-3网络仿真平台搭建及可视化

热门文章

  1. Webpack4 学习笔记六 多页面配置和devtool
  2. C#代码实现矢量画图
  3. Qt-网易云音乐界面实现-3 音乐名片模块的实现
  4. 由echarts想到的js中的时间类型
  5. linux iptables 防火墙
  6. h系列标签自动加了bold
  7. 最简单方法远程调试Python多进程子程序
  8. iOS开发编译错误:std::terminate(), referenced from:
  9. 消息循环,注册窗口,创建窗口【图解】
  10. Glib2中G_DEFINE_TYPE原理(四)