检查点是否在多边形中并给出空值

哈努尔金

有很多帖子与这个问题有关,但大多数都是旧的,而且似乎有很多不同的方法。

我试图查看点是否存在于多边形内,但是即使它位于多边形上,它也会给出空值。

这是我的代码。

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章