ST_EstimatedExtent — 空間テーブルの推定範囲を返します。
box2d ST_EstimatedExtent(
text schema_name, text table_name, text geocolumn_name, boolean parent_only)
;
box2d ST_EstimatedExtent(
text schema_name, text table_name, text geocolumn_name)
;
box2d ST_EstimatedExtent(
text table_name, text geocolumn_name)
;
空間テーブルの推定範囲をbox2dで返します。スキーマが指定されていない場合には現在のスキーマが使われます。推定範囲はジオメトリカラムの統計情報から取得します。これは通常は、ST_ExtentまたはST_3DExtentを使ってテーブルの確定範囲を計算するより、ずっと早く計算できます。
指定が無い場合には、子テーブル (INHERITSを使って作られたテーブル)が存在するなら、そこから得られた統計情報も使用します。parent_only
がTRUEの場合には、パラメータで与えられたテーブルの統計情報だけが使用され、子テーブルの統計情報は無視されます。
PostgreSQL 8.0.0以上ではVACUUM ANALYZEで統計情報を集め、結果として得られる範囲は実際の95%程度です。PostgreSQL 8.0.0より前の場合には、update_geometry_stats()
で統計情報が集められ、結果の範囲は確定値です。
統計情報が無い (空のテーブルまたはANALYZEを実行していない)場合には、この関数はNULLを返します。1.5.4より前では、代わりに例外が投げられていました。 |
テーブルや名前空間の名前のうち特殊文字や引用符をエスケープすると、特別な処理が必要になる可能性があります。あるユーザは「スキーマとテーブルでは、識別子エスケープ規則を使って、二重引用符を付けた文字列を生成して、その後最初と最後の二重引用符を削ります。ジオメトリカラムについてはそのまま渡します」 |
Availability: 1.0.0
Changed: 2.1.0 2.0.xまではST_Estimated_Extentと呼ばれていました。
このメソッドは曲線ストリングと曲線に対応しています。
SELECT ST_EstimatedExtent('ny', 'edges', 'geom'); --result-- BOX(-8877653 4912316,-8010225.5 5589284) SELECT ST_EstimatedExtent('feature_poly', 'geom'); --result-- BOX(-124.659652709961 24.6830825805664,-67.7798080444336 49.0012092590332)