mysql判断点是否在指定多边形区域内的方法

这篇文章主要介绍mysql判断点是否在指定多边形区域内的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

1.创建测试表

CREATE TABLE `zone` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `polygongeo` polygon NOT NULL, PRIMARY KEY (`id`)
) ENGINE=MYISAM DEFAULT CHARSET=utf8;

注意:空间索引只能在存储引擎为MYISAM的表中创建

2.插入多边形数据

insert into zone(polygongeo) values(POLYGONFROMTEXT('POLYGON((1 1,1 5,5 5,5 1,1 1))'));

3.判断点是否在多边形区域

测试 POINT(3, 4)

select AsText(polygongeo) from zone where MBRWithin(POLYGONFROMTEXT('POINT(3 4)'),polygongeo);

输出: POLYGON((1 1,1 5,5 5,5 1,1 1))
表示点 POINT(3, 4) 在多边形区域内

测试 POINT(6, 1)

select AsText(polygongeo) from zone where MBRWithin(POLYGONFROMTEXT('POINT(6 1)'),polygongeo);

输出: 空
表示点 POINT(6, 1) 在多边形区域

以上是mysql判断点是否在指定多边形区域内的方法的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!