[前][次][番号順一覧][スレッド一覧]

mysql:14456

From: "KIMURA, Meiji" <"KIMURA, Meiji" <kimura804@xxxxxxxxxx>>
Date: Wed, 23 Apr 2008 06:20:01 +0900 (JST)
Subject: [mysql 14456] Re: Spatial Extentions について

おはようございます。木村明治です。

--- trad-ex <trad-ex@xxxxxxxxxx> wrote:

> 高木といいます。
> 
> 現在、あるエリア情報をDBに突っ込んで、与えられた点がどのエリアに属するか
> を試験しているのですが、どうもうまくいきません。
> 
> 環境:CentOS4.4 MySQL5.0.45と5.0.24
> 
> サーバにssh後、mysqlクライアントで以下を発行
> 
> SELECT id FROM test
> WHERE MBRContains(geom, GeomFromText('Point(503011177  128470894)'));
> 
> テーブル定義は
> CREATE TABLE `test` (
>   `id` varchar(16) NOT NULL,
>   `geom` polygon NOT NULL,
>   SPATIAL KEY `geom` (`geom`)
> ) ENGINE=MyISAM DEFAULT CHARSET=sjis;
> 
> testテーブルのデータは添付のinsert.sqlです。
> また、グラフソフトで囲まれているエリア、指定された点を描画したものが添付
> したimg.gifになります。
> 赤線がPolygonで囲まれたエリア、青の線が指定された点になります。
> グラフ上、明らかに囲まれていないのに、上記クエリだとヒットしてしまってい
> ます。
> MBRContains(g1,g2)とは、g1がg2を包含するときにTRUEを返す、と思っていたの
> ですが、違いますでしょうか?
> どなたか、この現象に遭遇した方、いらっしゃいますか?
> ちなみに、PolygonをLineStringに変更しても、状況は変わりませんでした。

MBRはその名のとおり、最小外接矩形なので、
http://dev.mysql.com/doc/refman/4.1/ja/relations-on-geometry-mbr.html

イメージとしては、添付ファイルのようになり、含まれてしまいます。
POLYGONの中かどうかを確認するためにはContainsを利用する必要があります。

ただ、下記にもありますように通常のMySQLでは、Containsはまだ実装されてないようです。
http://dev.mysql.com/doc/refman/4.1/ja/functions-that-test-spatial-relationships-between-geometries.html
# 手元の5.0.51では、MBRContainsと同様の動作をします。

現在MySQL Forgeのほうで、GISの実装がされたMySQLのBetaが出ています。
http://forge.mysql.com/wiki/GIS_Functions

こちらのほうでは、ちゃんとContainsも動作しますので、こちらのほうを利用されてみてはいかがでしょうか?

mysql> SELECT id FROM test WHERE Contains(geom, GeomFromText('Point(503011177  128470894)'));
Empty set (0.01 sec)

mysql> SELECT id FROM test WHERE MBRContains(geom, GeomFromText('Point(503011177  128470894)'));
+------+
| id   |
+------+
| test |
+------+
1 row in set (0.00 sec)

mysql> select version();
+-----------------------------------+
| version()                         |
+-----------------------------------+
| 5.1.23-beta-GIS-community-GIS-log |
+-----------------------------------+

--
キムラデービー代表 木村明治(KIMURA, Meiji)
http://kimuradb.com
[News] 4/18(金) Sun Business .Next 2008(東京ミッドタウン)セミナーやります
http://jp.sun.com/next/program3.html

添付ファイル

[前][次][番号順一覧][スレッド一覧]

   @ 14455 2008-04-23 03:20 [trad-ex <trad-ex@xxx] Spatial Extentions  について            
-> @ 14456 2008-04-23 06:20 ┗["KIMURA, Meiji" <kim]                                       
     14457 2008-04-23 12:01  ┗[trad-ex <trad-ex@xxx]