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

问题描述 投票:0回答:1

有很多与此事有关的帖子,但大多数都已过时,并且似乎有许多不同的处理方法。

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

这是我的代码。

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 spatial
1个回答
0
投票

在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(我不确定)?

© www.soinside.com 2019 - 2024. All rights reserved.