mysql 图形化查询_mysql图形查询操作 点找面及面找点

mysql图形查询操作 点找面及面找点

mysql图形查询操作 点找面及面找点

d10cd925f0a140a65e0be65dd57c8bbf.png

SET @x = 121; SET @y = 30; --

SET @point = CONCAT('POINT(',@x,' ',@y,')');

set @point= Point(@x,@y); set @geometry=ST_GeomFromText('POLYGON((121 30, 121 30, ..., 121 30, 121 30))');

SELECT ST_Contains(@geometry,@point);//面包含点

SELECT ST_Within(@point, @geometry);//点在面

可以参考:

https://blog.csdn.net/qq_32201423/article/details/103870040?utm_medium=distribute.pc_relevant.none-task-blog-baidulandingword-1&spm=1001.2101.3001.4242

https://www.docs4dev.com/docs/zh/mysql/5.7/reference/contributors.html

166588d692f7723f65750ef1620f95a4.png

MBRWITHIN 这个查出了多一条Id为54的:原因可能是MBRWITHIN 只能查点是否在四边形区域内.

改成 ST_Within 顺利解决问题

e7266a1944229b982263532c2be06308.png

SELECT

s.id AS `s__id`,

s.uid AS `s__uid`,

s.station_type AS `s__station_type`,

s.zoneid AS `s__zoneid`,

s.phone AS `s__phone`,

astext(s.polygongeo) AS `s__polygongeo`,

s.polygongeo_txt AS `s__polygongeo_txt`,

s.STATUS AS `s__status`,

s.beginTime AS `s__beginTime`,

s.endTime AS `s__endTime`,

s.money AS `s__money`,

s.created AS `s__created`,

s.modified AS `s__modified`,

s.userName AS `s__userName`,

s.city_id AS `s__city_id`,

s.identity_path AS `s__identity_path`

FROM

station_masters s

INNER JOIN station_master_zones sz ON s.zoneid = sz.id

WHERE

(

s.STATUS = 1

AND s.beginTime < 1597390108 AND s.endTime > 1597390108

AND ST_Within ( POLYGONFROMTEXT ( 'POINT(113.92827 22.541516)' ),sz.polygongeo ))

mysql图形查询操作 点找面及面找点相关教程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值