[pgsql-jp: 25271] Re: 幾何関数について 教えてください

Nobuyuki MIURA miura @ gungun.net
2002年 3月 13日 (水) 12:07:54 JST


三浦と申します.はじめまして.

便乗で恐縮です.
私も,PostgreSQLの幾何データ型やPostGISを使ってみておりまして,
先人のお知恵を拝借できれば,ありがたいのですが...

From: "Hisaji ONO" <hi-ono @ mn.xdsl.ne.jp>
Date: Mon, 11 Mar 2002 22:25:44 +0900
(中略) 
>  http://postgis.refractions.net/
>  PostGISが対応するPostgreSQLのバージョンは7.1.xで、7.2には対応しておりませ
> ん(CVS開発版は対応しているかもしれません)。
(中略) 
>  面積計算や重心(本当の重心でなくて図形を取り囲む最小の矩形の重心)を計算す
> る関数もサポートしています。
(中略) 
>  私は昨年から、あるプロジェクトでPostGISを使用し、現在やっと報告書を書き終
> えたところです。大きな問題もなく、PostGISを使うことができました。

PostGISでは,rtreeではなく,GiST(図形を取り囲む最小の矩形として扱う)を
使うことでラージオブジェクトに対するindexingを実現していますが,
尾野さんの使われた範囲では,これが問題になるケースはありませんでした
しょうか? あった場合に,どう回避されましたでしょうか?

もし差し支えなければ,御指南頂けると幸いです.


私の場合は,ある点がどのポリゴン中に包含されるかを検索しようとしております.
ポリゴンはそこそこ複雑なので,PostgreSQLの幾何データ型を使うと,
8Kbyteの壁にあたってしまいます.
#7.1.3だと,8Kbyteを越えるようなポリゴンもなぜかinsert, selectは
#できているのですが,rtreeのindexは張れません

PostGISでは,ポリゴンがbounding-boxで扱われているため,
隣接するポリゴンもselect結果に上がってきてしまいます.

indexingによる検索速度の恩恵を享受するには,
PostGISを使って格納し,GiSTでindexingされたポリゴンに対して
1度検索をかけ,候補を絞り込んだ後に,素のPostgreSQLの幾何データ型で
格納されているindexingされていないポリゴンに対して検索するというような形に
なるのかなぁと思っていますが,いまいちスマートでないかと...

gemetry型で格納されているindexingされていないポリゴンデータに対して検索と,
上記の方法とで,どの程度早いかの測定はまだこれからです.
ポリゴンは1万〜数万個なので,少なくとも差はでるはずと思っていますが...

---
三浦 信幸 <miura @ gungun.net>



pgsql-jp メーリングリストの案内