我在 MySQL 5.5 中创建了一个包含一些边界的表 (municipal_border)。
CREATE TABLE `municipal_border` (
`boundary` polygon NOT NULL,
`municipalID` int(10) NOT NULL,
) ENGINE=InnoDB
字段 urbanID 不是唯一的。
我正在使用下面的代码来测试一个点是否属于多边形。
set @r = (SELECT municipal_border.boundary FROM municipal_border WHERE municipalID=9001);
set @p = GeomFromText('POINT(24.1621 41.0548)');
select if(contains(@r, @p), 'yes', 'no');
第一个语句 set @r = ... 只返回一行,我专门选择它进行测试。它工作得很好。
我想要做的是搜索整个表(换句话说,擦除 SQL 问题中的 WHERE 部分)并找到该点在哪个多边形中。