有很多帖子与这个问题有关,但大多数都是旧的,而且似乎有很多不同的方法。
我试图查看点是否存在于多边形内,但是即使它位于多边形上,它也会给出空值。
这是我的代码。
select ST_contains(ST_geomfromtext('
Polygon((127.090656 37.517137,
127.092416 37.512525,
127.098445 37.513836,
127.095227 37.518346))'), Point(127.090656, 37.517137));
提前致谢。
在 Mysql 中,您需要关闭多边形,因此我必须再次在多边形的末尾添加第一个点。
select ST_contains(ST_geomfromtext('
Polygon((**127.090656 37.517137**,
127.092416 37.512525,
127.098445 37.513836,
127.095227 37.518346,
**127.090656 37.517137**))'), Point(127.090656, 37.517137));
现在解决了我的问题
和清洁
我可以将多边形设置为
SET @location_1 = ST_geomfromtext('
Polygon((**127.090656 37.517137**,
127.092416 37.512525,
127.098445 37.513836,
127.095227 37.518346,
**127.090656 37.517137**))');
select ST_contains( @location_1, Point(127.090656, 37.517137));
这对我来说要干净得多。但也许它需要更多内存用于 db 中的@location_1(我不确定)?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句