【发布时间】:2013-03-27 15:36:01
【问题描述】:
我在 MySQL 5.5 中创建了一个表 (municipal_border),它包含一些边界。
CREATE TABLE `municipal_border` (
`boundary` polygon NOT NULL,
`municipalID` int(10) NOT NULL,
) ENGINE=InnoDB
字段 MunicipalID 不是唯一的。
我正在使用下面的代码来测试一个点是否属于多边形。
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 部分)并找到该点在哪个多边形中。
【问题讨论】: