检查点是否在多边形中给出空值
checking if point is in polygon giving null values
有很多 post 与此相关,但大多数都是旧的,而且似乎有很多不同的方法。
我正在尝试查看点是否存在于多边形内,但它给出了空值,即使它是多边形上的点。
这是我的代码。
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 需要更多内存(我不确定)?
有很多 post 与此相关,但大多数都是旧的,而且似乎有很多不同的方法。
我正在尝试查看点是否存在于多边形内,但它给出了空值,即使它是多边形上的点。
这是我的代码。
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 需要更多内存(我不确定)?