我想确定给定的点在哪个多边形中。我正在使用mysql数据库。点来自文本,多边形位于“形状”列中,作为几何。我正在使用以下查询。
SELECT ap.ac_name
FROM andrapradesh ap
WHERE ST_Contains(PointFromText('POINT(16.504181 78.161779)'), ap.SHAPE)=1;
答案 0 :(得分:0)
如果要使用ST_Contains(),则应使用
SELECT ap.ac_name
FROM andrapradesh ap
WHERE ST_Contains(ap.SHAPE, PointFromText('POINT(16.504181 78.161779)');
ST_Contains(g1,g2)
返回1或0以指示g1是否完全包含g2。这个 测试与ST_Within()相反的关系。
如果要将包含的元素用作第一个参数,则需要ST_Within
SELECT ap.ac_name
FROM andrapradesh ap
WHERE ST_Within(PointFromText('POINT(16.504181 78.161779)'),ap.SHAPE);
ST_Within(g1,g2)
返回1或0以指示g1在空间上是否位于g2之内。这个 测试与ST_Contains()相反的关系。
答案 1 :(得分:0)
是的,我得到了输出。我做的是长时间聊天。
SELECT ap.ac_name
FROM andrapradesh ap
WHERE ST_Within(PointFromText('POINT(78.161779 16.504181)'),ap.SHAPE);
答案 2 :(得分:0)
ST_Intersection(g1, g2)
返回表示几何值g1和g2的点集交点的几何。如果任何参数为NULL,则返回值为NULL。
mysql> SET @g1 = ST_GeomFromText('LineString(1 1, 3 3)');
mysql> SET @g2 = ST_GeomFromText('LineString(1 3, 3 1)');
mysql> SELECT ST_AsText(ST_Intersection(@g1, @g2));
+--------------------------------------+
| ST_AsText(ST_Intersection(@g1, @g2)) |
+--------------------------------------+
| POINT(2 2) |
+--------------------------------------+