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 = ... は 1 行だけを返します。私はそれをテスト用に特別に選択しました。それはうまく機能します。
私がやりたいことは、テーブル全体を検索し (つまり、SQL の質問から WHERE 部分を削除して)、ポイントがどのポリゴンにあるかを見つけることです。