Php Mysql检索多边形数据

Php Mysql检索多边形数据,php,mysql,geospatial,polygon,Php,Mysql,Geospatial,Polygon,我一直在开发一个在mysql数据库中存储空间数据的站点,比如以多边形(纬度和经度)的形式存储建筑物、花园等的空间数据 我想知道如何在mysql中检索多边形数据 我看到了插入多边形数据的示例查询: 但现在我想知道如何根据某些约束从表中检索数据,如: “其中纬度22.4” 另外,我如何确定一个点是位于多边形的内部还是外部这是一个包含大量示例的页面: 以下是检索点与指定边界框相交的行的示例之一: SET @bbox = 'POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))'

我一直在开发一个在mysql数据库中存储空间数据的站点,比如以多边形(纬度和经度)的形式存储建筑物、花园等的空间数据

我想知道如何在mysql中检索多边形数据

我看到了插入多边形数据的示例查询:

但现在我想知道如何根据某些约束从表中检索数据,如:

“其中纬度<9.33,经度>22.4”

另外,我如何确定一个点是位于多边形的内部还是外部

这是一个包含大量示例的页面:

以下是检索点与指定边界框相交的行的示例之一:

SET @bbox = 'POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))'; 
SELECT name, AsText(location) FROM Points
    WHERE Intersects( location, GeomFromText(@bbox) );

表示这些空间函数也适用于几何体(看起来点也是几何体)。因此,您可以检查数据库中的几何图形是否与您在select语句中指定的几何图形相交。

那么我是否需要在点表中插入一个具有纬度和经度的点,并使用它在多边形内搜索?在本例中,“位置”的类型为“点”,是的。“点”包含水平和垂直位置。请参见链接的示例页面,了解如何创建和填写此示例表。但它也应该适用于“几何体”类型。我已经扩展了答案以涵盖这一点。我尝试了该页面中提到的过程,但上面的查询没有行。是否因为点的坐标(31.5 42.2)大于多边形尺寸(10)?但是,即使我将多边形的尺寸增加到50,我也不会得到任何行。多边形不会与31.5,42.2相交,因为它定义了一个从0,0到10,10的矩形。但它应该与点相交,多边形尺寸为50。您是否使用(0,50,50,50,0,50,0)进行测试?也许您可以给出一个完整的示例,其中包含示例表内容、您使用的SQL语句和得到的结果,以及您期望得到的结果?是的,kayahr,我使用(0 0,50 0,50 50,0 50,0 0 0)进行测试。我一定会解释我做了什么。