この質問は、Mysql 地理空間拡張の専門家向けです。
次のクエリは、私が期待している結果ではありません。
create database test_db;
use test_db;
create table test_table (g polygon not null);
insert into test_table (g) values (geomfromtext('Polygon((0 5,5 10,7 8,2 3,0 5))'));
insert into test_table (g) values (geomfromtext('Polygon((2 3,7 8,9 6,4 1,2 3))'));
select
X(PointN(ExteriorRing(g),1)), Y(PointN(ExteriorRing(g),1)),
X(PointN(ExteriorRing(g),2)), Y(PointN(ExteriorRing(g),2)),
X(PointN(ExteriorRing(g),3)), Y(PointN(ExteriorRing(g),3)),
X(PointN(ExteriorRing(g),4)), Y(PointN(ExteriorRing(g),4))
from test_table where MBRContains(g,GeomFromText('Point(3 6)'));
基本的に、2 つのポリゴンを作成し、MBRContains を使用して、ポイントが 2 つのポリゴンのいずれか内にあるかどうかを判断しようとしています。
驚いたことに、両方のポリゴンが返されます! ポイント 3,6 は、最初に挿入されたポリゴンにのみ存在する必要があります。
両方の多角形が傾いていることに注意してください (多角形を紙に描いてみるとわかります)
MySql が両方のポリゴンを返すのはなぜですか? MySql Community Edition 5.1 を使用しています。