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

时间:2015-09-21 12:54:15

标签: mysql geolocation polygon

我可以检查多边形是否在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 );

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

提前全部谢谢!

1 个答案:

答案 0 :(得分:0)

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

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);