有很多与此事有关的帖子,但大多数都已过时,并且似乎有许多不同的处理方法。
我正在尝试查看多边形内是否存在点,但是即使它在多边形上,它也会给出空值。
这是我的代码。
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(我不确定)?