如何在 mysql 数据库中插入多边形并检查传递的多边形是否在其中?

How to insert the polygon and checking if a passed polygon is inside it in mysql database?

我可以在 mysql 查询中检查一个多边形是否在另一个多边形内部吗?获取包含 where 字符串中传递的多边形的所有多边形的查询是什么?

谷歌搜索后,我发现了一个查询:-

SELECT *, AsText(poly) FROM geos 
 WHERE Contains(
 GeomFromText('POLYGON((42.000497 -109.050149, 
 41.002380 -102.051881, 
 39.993237 -102.041959, 
 38.999037 -109.045220, 
 42.000497 -109.050149))'), poly );

我不确定它基本上在做什么?那么插入多边形并检查传递的多边形是否在其中的查询将是什么?

提前致谢!

您可以像这样插入多边形:

SET @g1 = 'POLYGON ((
    //your points of polygon here
))';

INSERT INTO geos set poly=ST_GeomFromText(@g1);

如果你想检查另一个 g2 是否包含 g1:

SELECT * FROM geos WHERE ST_CONTAINS(ST_GeomFromText(@g2), poly);