栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

数据库-MySQL的geometry类型的使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据库-MySQL的geometry类型的使用

是什么

        MySQL数据库的geometry字段类型类型可以存储坐标点信息并进行一系列的关系计算(包含/相交),可以满足某个坐标点是否在某个区域内的条件筛选需求。

怎么做 建表

CREATE TABLE temp(

   id INT PRIMARY KEY AUTO_INCREMENT,

   name VARCHAr(20) COMMENT '名称' NOT NULL,

   coordinate_center_geometry GEOMETRY COMMENT '边界-使用GEOMETRY存储' NOT NULL

) COMMENT '用于测试空间数据字段的临时表';

插入sql

insert into temp (id,coordinate_center_geometry)values (1,geomfromtext('point(116.555555 39.555555)'));

方法(判断一个区域和另外一个区域的关系)

-- 构建用于测试的一个矩形和两个点,一个点在矩形内部,一个点在矩形边界上。

SET @geo1 = ST_GeomFromText('MULTIPOLYGON(((116.111111 39.111111,116.999999 39.111111,116.999999 39.999999,116.111111 39.999999,116.111111 39.111111)))');

SET @geo2 = ST_GeomFromText('POINT(116.555555 39.555555)');

SET @geo3 = ST_GeomFromText('POINT(116.111111 39.111111)');

-- @geo2上的点都在@geo1的内部或边界,并且@geo2至少有一个点在@geo1的内部,所以结果是1

SELECt ST_Contains(@geo1,@geo2); -- 1

SELECT ST_Within(@geo2,@geo1); -- 1

-- @geo2上的点都在@geo1的内部或边界,但是不满足@geo2至少有一个点在@geo1的内部,所以结果是0

SELECT ST_Contains(@geo1,@geo3); -- 0

SELECT ST_Within(@geo3,@geo1); -- 0

MyBatis语法拼接示例

   and ST_Contains(ST_GeomFromText('MULTIPOLYGON(((${bo.geometryString})))'),a.coordinate_center_geometry);

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1020664.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号