gpt4 book ai didi

mysql ST_WITHIN 与 POLYGON

转载 作者:行者123 更新时间:2023-11-29 02:53:41 28 4
gpt4 key购买 nike

我无法从以下测试中获得任何返回。

mysql版本:5.6.16(win32)

SELECT  (ST_WITHIN(GeomFromText('POINT(110.341903 1.558064)'), ST_GeomFromText(
"POLYGON((1.558467 110.341781 1.558081 110.342317 1.557764 110.34175 1.558467 110.341781 ))"
)))

我只想看到多边形内的那个点。从 map 上看,点在里面,我做错了什么?

我试了一下,还是不行

mysql> SET @g1 = ST_GEOMFROMTEXT('POINT(110.341903 1.558064)');
Query OK, 0 rows affected (0.00 sec)

mysql> SET @g2 = ST_GEOMFROMTEXT('POLYGON((1.558467 110.341781 1.558081 110.3423
17 1.557764 110.34175 1.558467 110.341781 ))');
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT ST_WITHIN(@g1,@g2);
+--------------------+
| ST_WITHIN(@g1,@g2) |
+--------------------+
| NULL |
+--------------------+
1 row in set (0.00 sec)

最佳答案

您没有在多边形定义中的每对值后添加逗号。

你有:

POLYGON((1.558467 110.341781 1.558081 110.342317 1.557764 110.34175 1.558467 110.341781 ))

应该是:

POLYGON((1.558467 110.341781, 1.558081 110.342317, 1.557764 110.34175, 1.558467 110.341781 ))

此外,我怀疑您交换了坐标值,因为显然 POINT(110.341903 1.558064) 不能位于该多边形内,而 POINT(1.558064 110.341903) 可以。

这没有问题:

SELECT (
ST_WITHIN(
GeomFromText(
'POINT(1.558064 110.341903)'
),
ST_GeomFromText(
'POLYGON((1.558467 110.341781, 1.558081 110.342317, 1.557764 110.34175, 1.558467 110.341781 ))'
)
)
)

关于mysql ST_WITHIN 与 POLYGON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32920743/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com