| OpenGIS Functions |
|
|
| Management
Functions |
|
|
| AddGeometryColumn(varchar,
varchar, varchar, integer, varchar, integer) |
|
|
|
構文:
AddGeometryColumn(<schema_name>, <table_name>,
<column_name>, <srid>, <type>, <dimension>).
既存のテーブルにジオメトリーの列を追加します。SridはSPATIAL_REF_SYSテーブルにエントリーされている整数値を使用します。Typeはジオメトリータイプを大文字で指定します(例
'POLYGON' 'MULTILINESTRING') |
|
|
| DropGeometryColumn(varchar,
varchar, varchar) |
|
|
|
構文:
DropGeometryColumn(<schema_name>, <table_name>,
<column_name>).ジオメトリー列を削除します。 |
|
|
| SetSRID(geometry,
integer) |
|
|
|
ジオメトリーのSRIDを設定します(integer) |
|
|
|
|
|
|
| Geometry
Relationship Functions |
|
|
| Distance(geometry,
geometry) |
|
|
|
二つのジオメトリー間のデカルト距離を座標系の単位で返します。 |
|
|
| Equals(geometry,
geometry) |
|
|
|
ジオメトリーが空間的に等しい場合1(TRUE)を返します。例
equals('LINESTRING(0 0, 10 10)','LINESTRING(0 0, 5 5, 10 10)') はtrueとなります。 |
|
|
| Disjoint(geometry,
geometry) |
|
|
|
ジオメトリーが空間的に分離している場合1(TRUE)を返します |
|
|
|
ジオメトリーコレクションを引数に取ることはできません |
|
|
| Intersects(geometry,
geometry) |
|
|
|
ジオメトリーが空間的に交差する場合1(TRUE)を返します |
|
|
|
ジオメトリーコレクションを引数に取ることはできません |
|
|
| Touches(geometry,
geometry) |
|
|
|
ジオメトリーが空間的に接触する場合1(TRUE)を返します |
|
|
|
ジオメトリーコレクションを引数に取ることはできません |
|
|
| Crosses(geometry,
geometry) |
|
|
|
ジオメトリーが空間的にクロスする場合1(TRUE)を返します |
|
|
|
ジオメトリーコレクションを引数に取ることはできません |
|
|
| Within(geometry
A, geometry B) |
|
|
|
AがBに空間的に含まれる場合1(TRUE)を返します |
|
|
|
ジオメトリーコレクションを引数に取ることはできません |
|
|
| Overlaps(geometry,
geometry) |
|
|
|
ジオメトリーが空間的に重なる場合1(TRUE)を返します |
|
|
|
ジオメトリーコレクションを引数に取ることはできません |
|
|
| Contains(geometry
A, geometry B) |
|
|
|
AがBを空間的に完全に含んでいる場合1(TRUE)を返します |
|
|
|
ジオメトリーコレクションを引数に取ることはできません |
|
|
| Relate(geometry,
geometry, intersectionPatternMatrix) |
|
|
|
二つのジオメトリーのInterior,Boundary,Exteriorの間の交差を調べ,intersectionPatternMatrixによって指定された関係にある場合に1を返します |
|
|
|
ジオメトリーコレクションを引数に取ることはできません |
|
|
|
|
|
|
| Geometry
Processing Functions |
|
|
| Centroid(geometry) |
|
|
|
ジオメトリーの重心をポイントとして返します |
|
|
| Area(geometry) |
|
|
|
ジオメトリーの面積を返します |
|
|
| Length(geometry) |
|
|
|
ジオメトリーの長さを返します |
|
|
|
length2d()と同義 |
|
|
| PointOnSurface(geometry) |
|
|
|
ジオメトリー上に存在することを保証したポイントを返します |
|
|
| Boundary(geometry) |
|
|
|
ジオメトリーの組み合わせ境界の終わりとなるジオメトリーを返します |
|
|
| Buffer(geometry,
double, [integer]) |
|
|
|
ジオメトリーから一定の距離(double)以下のすべてのポイントからなるジオメトリーを返します。ジオメトリーの座標系で計算されます。3番目の引数は1/4円のセグメント数です(既定は8) |
|
|
|
ジオメトリーコレクションを引数に取ることはできません |
|
|
| ConvexHull(geometry) |
|
|
|
ジオメトリーのconvex
hull(ジオメトリーを含む最小の凸集合:凸包)となるジオメトリーを返します |
|
|
| Intersection(geometry,
geometry) |
|
|
|
ジオメトリーの交差のポイントセットからなるジオメトリーを返します |
|
|
|
ジオメトリーコレクションを引数に取ることはできません |
|
|
| SymDifference(geometry
A, geometry B) |
|
|
|
ジオメトリーの対称差異のポイントセットからなるジオメトリーを返します |
|
|
|
ジオメトリーコレクションを引数に取ることはできません |
|
|
| Difference(geometry
A, geometry B) |
|
|
|
ジオメトリーの差のポイントセットからなるジオメトリーを返します |
|
|
|
ジオメトリーコレクションを引数に取ることはできません |
|
|
| GeomUnion(geometry,
geometry) |
|
|
|
ジオメトリーを結合したポイントセットを返します。 |
|
|
|
ジオメトリーコレクションを引数に取ることはできません |
|
|
|
NOTE:
unionからの名称変更(unionがSQLの予約語のため) |
|
|
| GeomUnion(geometry
set) |
|
|
|
与えられたジオメトリーのセットのすべてを結合したポイントセットのジオメトリーを返します |
|
|
|
ジオメトリーコレクションを引数に取ることはできません |
|
|
| MemGeomUnion(geometry
set) |
|
|
|
GeomUnionと同じですが,使用するメモリーを少なく,CPU時間を多くしたものです。 |
|
|
|
|
|
|
| Geometry
Accessors |
|
|
| AsText(geometry) |
|
|
|
ジオメトリーの内容をWKT文字列で返します |
|
|
|
例: POLYGON(0 0,0 1,1 1,1
0,0 0) |
|
|
| AsBinary(geometry) |
|
|
|
OGCのWell-Known-Binary形式でジオメトリーを返します |
|
|
| SRID(geometry) |
|
|
|
ジオメトリーのSRIDを返します |
|
|
| Dimension(geometry) |
|
|
|
ジオメトリーのDimensionを返します。 |
|
|
|
ポイント:0 ライン:1 ポリゴン 2
引数がジオメトリーコレクションの場合は最大値を返します |
|
|
|
例: |
|
|
|
select
dimension('GEOMETRYCOLLECTION(LINESTRING(1 1,0 0),POINT(0 0)'); |
|
|
|
dimension |
|
|
|
----------- |
|
|
|
1 |
|
|
| Envelope(geometry) |
|
|
|
ジオメトリーのbounding
boxを表すポリゴンを返します。 |
|
|
|
※Bounding
Boxとは,そのジオメトリーを内包する最小の矩形のことです |
|
|
| IsEmpty(geometry) |
|
|
|
ジオメトリーがEmpty(空白)の時1(TRUE)を返します。Trueの場合,このジオメトリーは空白のポイントセットを表します |
|
|
| IsSimple(geometry) |
|
|
|
ジオメトリに自己交差や自己接触が起きていない場合1(TRUE)を返します |
|
|
| IsClosed(geometry) |
|
|
|
ジオメトリーの始点と終点が一致する場合trueを返します |
|
|
| IsRing(geometry) |
|
|
|
ジオメトリーの始点と終点が一致しており,かつ同じポイントを2回以上通過しない(単純である)場合に1(TRUE)を返します |
|
|
| NumGeometries(geometry) |
|
|
|
ジオメトリーがジオメトリーコレクションかMULTI*(例 MULTIPOLYGON)の場合,ジオメトリーの数を返します。そうでない場合はNullを返します |
|
|
| GeometryN(geometry,int) |
|
|
|
ジオメトリーがジオメトリーコレクションかMULTI*の場合,N番目のジオメトリーを返します。そうでない場合はNullを返します |
|
|
|
インデックスは1から始まります |
|
|
| NumPoints(geometry) |
|
|
|
ジオメトリーの最初のLinestringに含まれるポイントの数を返します。Linestringがない場合はnullを返します |
|
|
| PointN(geometry,integer) |
|
|
|
ジオメトリーのlinestringのN番目のポイントを返します。Linestringがない場合はnullを返します |
|
|
|
インデックスは1から始まります |
|
|
| ExteriorRing(geometry) |
|
|
|
ポリゴンの外部ringを返します。ジオメトリーがポリゴンでない場合はNullを返します。 |
|
|
| NumInteriorRings(geometry) |
|
|
|
ジオメトリーの最初のポリゴンに含まれる内部ringの個数を返します。ジオメトリーにポリゴンがない場合はNullを返します。 |
|
|
| NumInteriorRing(geometry) |
|
|
|
NumInteriarRingsと同義 |
|
|
| InteriorRingN(geometry,integer) |
|
|
|
ポリゴン内のN番目の内部ringを返します。ジオメトリーがポリゴンでない場合またはNが範囲外の場合はnullを返します |
|
|
|
インデックスは1から始まります |
|
|
| EndPoint(geometry) |
|
|
|
LineStringの終点をポイントで返します |
|
|
| StartPoint(geometry) |
|
|
|
LineStringの始点をポイントで返します |
|
|
| GeometryType(geometry) |
|
|
|
ジオメトリーのタイプを文字列で返します(例:LINESTRING,POLYGON,MULTIPOINT) |
|
|
| X(geometry) |
|
|
|
ポイントのX座標を返します。引数はポイントでなければなりません |
|
|
| Y(geometry) |
|
|
|
ポイントのY座標を返します。引数はポイントでなければなりません |
|
|
| Z(geometry) |
|
|
|
ポイントのZ座標を返します。Z座標がない場合はnullを返します。引数はポイントでなければなりません |
|
|
| M(geometry) |
|
|
|
ポイントのM座標を返します。M座標がない場合はnullを返します。引数はポイントでなければなりません |
|
|
|
|
|
|
| Geometry
Constructors |
|
|
| GeomFromText(text,[<srid>]) |
|
|
|
WKT文字列からジオメトリーを生成します。座標系をSRIDで指定できます |
|
|
| PointFromText(text,[<srid>]) |
|
|
|
WKT文字列からポイントジオメトリーを生成します。座標系をSRIDで指定できます。指定されない場合-1となります |
|
|
|
WKT文字列がポイントの書式でない場合エラーとなります |
|
|
| LineFromText(text,[<srid>]) |
|
|
|
WKT文字列からラインジオメトリーを生成します。座標系をSRIDで指定できます。指定されない場合-1となります |
|
|
|
WKT文字列がラインの書式でない場合エラーとなります |
|
|
| LinestringFromText(text,[<srid>]) |
|
|
|
WKT文字列からラインジオメトリーを生成します。座標系をSRIDで指定できます。指定されない場合-1となります |
|
|
|
WKT文字列がラインの書式でない場合エラーとなります |
|
|
| PolyFromText(text,[<srid>]) |
|
|
|
WKT文字列からポリゴンジオメトリーを生成します。座標系をSRIDで指定できます。指定されない場合-1となります |
|
|
|
WKT文字列がポリゴンの書式でない場合エラーとなります |
|
|
| PolygonFromText(text,[<srid>]) |
|
|
|
WKT文字列からポリゴンジオメトリーを生成します。座標系をSRIDで指定できます。指定されない場合-1となります |
|
|
|
WKT文字列がポリゴンの書式でない場合エラーとなります |
|
|
| MPointFromText(text,[<srid>]) |
|
|
|
WKT文字列からMULTIPOINTジオメトリーを生成します。座標系をSRIDで指定できます。指定されない場合-1となります |
|
|
|
WKT文字列がMULTIPOINTの書式でない場合エラーとなります |
|
|
| MLineFromText(text,[<srid>]) |
|
|
|
WKT文字列からMULTILINESTRINGジオメトリーを生成します。座標系をSRIDで指定できます。指定されない場合-1となります |
|
|
|
WKT文字列がMULTILINESTRINGの書式でない場合エラーとなります |
|
|
| MPolyFromText(text,[<srid>]) |
|
|
|
WKT文字列からマルチポリゴンジオメトリーを生成します。座標系をSRIDで指定できます。指定されない場合-1となります |
|
|
|
WKT文字列がマルチポリゴンの書式でない場合エラーとなります |
|
|
| GeomCollFromText(text,[<srid>]) |
|
|
|
WKT文字列からジオメトリーコレクションを生成します。座標系をSRIDで指定できます。指定されない場合-1となります |
|
|
|
WKT文字列がジオメトリーコレクションの書式でない場合エラーとなります |
|
|
| GeomFromWKB(bytea,[<srid>]) |
|
|
|
WKB文字列からジオメトリーを生成します。座標系をSRIDで指定できます |
|
|
| PointFromWKB(bytea,[<srid>]) |
|
|
|
WKB文字列からポイントジオメトリーを生成します。座標系をSRIDで指定できます。指定されない場合-1となります |
|
|
|
WKB文字列がポイントの書式でない場合エラーとなります |
|
|
| LineFromWKB(bytea,[<srid>]) |
|
|
|
WKB文字列からラインジオメトリーを生成します。座標系をSRIDで指定できます。指定されない場合-1となります |
|
|
|
WKB文字列がラインの書式でない場合エラーとなります |
|
|
| LinestringFromWKB(bytea,[<srid>]) |
|
|
|
WKB文字列からラインジオメトリーを生成します。座標系をSRIDで指定できます。指定されない場合-1となります |
|
|
|
WKB文字列がラインの書式でない場合エラーとなります |
|
|
|
|
|
|
| PolyFromWKB(bytea,[<srid>]) |
|
|
|
WKB文字列からポリゴンジオメトリーを生成します。座標系をSRIDで指定できます。指定されない場合-1となります |
|
|
|
WKB文字列がポリゴンの書式でない場合エラーとなります |
|
|
| PolygonFromWKB(bytea,[<srid>]) |
|
|
|
WKB文字列からポリゴンジオメトリーを生成します。座標系をSRIDで指定できます。指定されない場合-1となります |
|
|
|
WKB文字列がポリゴンの書式でない場合エラーとなります |
|
|
|
|
|
|
| MPointFromWKB(bytea,[<srid>]) |
|
|
|
WKB文字列からMULTIPOINTジオメトリーを生成します。座標系をSRIDで指定できます。指定されない場合-1となります |
|
|
|
WKB文字列がMULTIPOINTの書式でない場合エラーとなります |
|
|
| MLineFromWKB(bytea,[<srid>]) |
|
|
|
WKB文字列からMULTILINESTRINGジオメトリーを生成します。座標系をSRIDで指定できます。指定されない場合-1となります |
|
|
|
WKB文字列がMULTILINESTRINGの書式でない場合エラーとなります |
|
|
| MPolyFromWKB(bytea,[<srid>]) |
|
|
|
WKB文字列からマルチポリゴンジオメトリーを生成します。座標系をSRIDで指定できます。指定されない場合-1となります |
|
|
|
WKB文字列がマルチポリゴンの書式でない場合エラーとなります |
|
|
| GeomCollFromWKB(bytea,[<srid>]) |
|
|
|
WKB文字列からジオメトリーコレクションを生成します。座標系をSRIDで指定できます。指定されない場合-1となります |
|
|
|
WKB文字列がジオメトリーコレクションの書式でない場合エラーとなります |
|
|
| BdPolyFromText(text
WKT, integer SRID) |
|
|
|
MultiLinestringをWKTで表記した,閉じたLinestringのコレクションからポリゴンを生成します。 |
|
|
|
WKTがMULTILINESTRINGの書式でない場合エラーになります。出力がMULTIPOLYGONの場合もエラーになります。その場合BdMPolyFromTextを使うか,BuildArea()を参照してください |
|
|
| BdMPolyFromText(text
WKT, integer SRID) |
|
|
|
MultiLinestringをWKTで表記した,閉じたLinestringのコレクションからMULTIPOLYGONを生成します。 |
|
|
|
WKTがMULTILINESTRINGの書式でない場合エラーになります。仮に生成されるポリゴンが実際には一つの場合でも出力は強制的にMULTIPOLYGONになります。その場合にはBdPolyFromTextを使うか,BuildArea()を参照してください |
|
|
|
|
|
|
|
|
|
|
| Postgis
Extensions |
|
|
| Management
Functions |
|
|
| DropGeometryTable([<schema_name>],
<table_name>) |
|
|
|
テーブルを削除します |
|
|
| UpdateGeometrySRID([<schema_name>],
<table_name>, <column_name>, <srid>) |
|
|
|
geometry
columnのすべてのジオメトリーのSRIDを更新します |
|
|
| update_geometry_stats([<table_name>,
<column_name>]) |
|
|
|
空間テーブルの統計を更新します。(さらにVACUUM
ANALYZEを実行することも必要) |
|
|
| postgis_version() |
|
|
|
PostGISのバージョンを返します |
|
|
| postgis_lib_version() |
|
|
|
PostGISのLibraryのバージョンを返します |
|
|
| postgis_lib_build_date() |
|
|
|
PostGISのLibraryがビルドされた日付を返します |
|
|
| postgis_script_build_date() |
|
|
|
PostGISのscriptsがビルドされた日付を返します |
|
|
| postgis_scripts_installed() |
|
|
|
データベースにインストールされたpostgisのscriptのバージョンを返します |
|
|
|
注:もしこの値とpostgis_scripts_releasedの出力とが異なる場合,データベースのアップグレードが正常に行われていないと思われます。 |
|
|
| postgis_scripts_released() |
|
|
|
lwpostgis.sqlのバージョンを返します。バージョン1.1.0以降はpostgis_lib_version()と同じ値を返します |
|
|
| postgis_geos_version() |
|
|
|
GEOSのLibraryのバージョンを返します。GEOSをサポートしていない場合NULLを返します |
|
|
| postgis_jts_version() |
|
|
|
JTSのLibraryのバージョンを返します。JTSをサポートしていない場合NULLを返します |
|
|
| postgis_proj_version() |
|
|
|
PROJ4のLibraryのバージョンを返します。PROJ4をサポートしていない場合NULLを返します |
|
|
| postgis_uses_stats() |
|
|
|
STATSを有効にしている場合TRUEを返します |
|
|
| postgis_full_version() |
|
|
|
PostGISのバージョンとビルドに関するすべての情報を返します |
|
|
|
|
|
|
| Operators |
|
|
| A &< B |
|
|
|
|
Aのbounding boxがBのbounding
boxと重なるか,左側にあるときtrueを返します |
|
|
| A &> B |
|
|
|
|
Aのbounding boxがBのbounding
boxと重なるか,右側にあるときtrueを返します |
|
|
| A << B |
|
|
|
|
Aのbounding
boxが厳密にBのbounding boxの左側にあるときtrueを返します |
|
|
| A >> B |
|
|
|
|
Aのbounding
boxが厳密にBのbounding boxの右側にあるときtrueを返します |
|
|
| A &<| B |
|
|
|
|
Aのbounding boxがBのbounding
boxと重なるか,下側にあるときtrueを返します |
|
|
| A |&> B |
|
|
|
|
Aのbounding boxがBのbounding
boxと重なるか,上側にあるときtrueを返します |
|
|
| A <<| B |
|
|
|
|
Aのbounding
boxが厳密にBのbounding boxの下側にあるときtrueを返します |
|
|
| A |>> B |
|
|
|
|
Aのbounding
boxが厳密にBのbounding boxの上側にあるときtrueを返します |
|
|
| A ~= B |
|
|
|
|
AとBが地理的に等しいかどうかを調べます。頂点が同じ場合,trueを返します。 |
|
|
| A @ B |
|
|
|
|
Aのbounding
boxが完全にBのbounding boxに含まれる場合trueを返します |
|
|
| A ~ B |
|
|
|
|
Aのbounding
boxが完全にBのbounding boxを含む場合trueを返します |
|
|
| A && B |
|
|
|
|
Aのbounding boxがBのbounding
boxと重なるときtrueを返します |
|
|
|
|
|
|
| Measurement
Functions |
|
|
| area2d(geometry) |
|
|
|
ジオメトリーがポリゴンかマルチポリゴンである場合に面積を返します |
|
|
| distance_sphere(point,
point) |
|
|
|
二つの緯度/経度の地点間の距離を,地球を半径6,370,986mの球形として計算します。Distance_spheroidより速く計算できますが,正確さは劣ります |
|
|
| distance_spheroid(point,
point, spheroid) |
|
|
|
二つの緯度/経度の地点間の距離を,回転楕円体を指定して計算します。Length_spheroidを参照してください |
|
|
| length2d(geometry) |
|
|
|
ジオメトリーがラインかMultiLineStringである場合に2次元での長さを返します |
|
|
| length3d(geometry) |
|
|
|
ジオメトリーがラインかMultiLineStringである場合に3次元での長さを返します |
|
|
| length_spheroid(geometry,spheroid) |
|
|
|
楕円体上の長さを計算します。座標系が経緯度で,投影変換せずに長さを求めたい場合に便利です。楕円体を生成する構文は以下の通りです |
|
|
|
SPHEROID[<NAME>,<SEMI-MAJOR AXIS>,<INVERSE FLATTENING>] |
|
|
|
例 |
|
|
|
SPHEROID["GRS_1980",6378137,298.257222101] |
|
|
|
計算例 |
|
|
|
SELECT |
|
|
|
length_spheroid( |
|
|
|
geometry_column, |
|
|
|
'SPHEROID["GRS_1980",6378137,298.257222101]' |
|
|
|
) |
|
|
|
FROM geometry_table; |
|
|
| length3d_spheroid(geometry,spheroid) |
|
|
|
楕円体上のジオメトリーの長さを,標高も考慮して計算します |
|
|
| distance(geometry,
geometry) |
|
|
|
二つのジオメトリー間の距離を返します |
|
|
| max_distance(linestring,linestring) |
|
|
|
二つのライン間の最大距離を返します |
|
|
| perimeter(geometry) |
|
|
|
ジオメトリーがポリゴンかマルチポリゴンの場合,周囲の長さ(2次元での)を返します |
|
|
| perimeter2d(geometry) |
|
|
|
ジオメトリーがポリゴンかマルチポリゴンの場合,周囲の長さ(2次元での)を返します |
|
|
| perimeter3d(geometry) |
|
|
|
ジオメトリーがポリゴンかマルチポリゴンの場合,周囲の長さ(3次元での)を返します |
|
|
| azimuth(geometry,
geometry) |
|
|
|
ポイントによって定義されるセグメントの方位角(radian)を返します。二つのポイントが一致する場合nullを返します |
|
|
|
|
|
|
| Geometry Outputs |
|
|
| AsBinary(geometry,{'NDR'|'XDR'}) |
|
|
|
ジオメトリーをWell-Known-Binary形式で返します。Little-endian(NDR)
(最下位のバイトから順に記録)またはbig-endian(XDR)(最上位のバイトから順に記録)を用います。文字列に変換することなくデータベースからデータを取り出す際に便利です。 |
|
|
| AsEWKT(geometry) |
|
|
|
ジオメトリーをEWKT(拡張WKT)形式で返します |
|
|
| AsEWKB(geometry,
{'NDR'|'XDR'}) |
|
|
|
ジオメトリーをEWKB(拡張WKB)形式でlittle-endian(NDR)またはbig-endian(XDR)を用いた並び順に返します |
|
|
| AsHEXEWKB(geometry,
{'NDR'|'XDR'}) |
|
|
|
ジオメトリーをHEXEWKB(16進拡張WKB)形式でlittle-endian(NDR)またはbig-endian(XDR)を用いた並び順に返します |
|
|
| AsSVG(geometry,
[rel], [precision]) |
|
|
|
ジオメトリーをSVG形式のパスとして返します。 |
|
|
| AsGML(geometry,
[precision]) |
|
|
|
ジオメトリーをGMLのエレメントとして返します。 |
|
|
|
|
|
|
| Geometry
Constructors |
|
|
| GeomFromEWKT(text) |
|
|
|
EWKT文字列からジオメトリーを生成します |
|
|
| GeomFromEWKB(bytea) |
|
|
|
EWKBからジオメトリーを生成します |
|
|
| MakePoint(<x>,
<y>, [<z>], [<m>]) |
|
|
|
ポイントジオメトリーを生成します |
|
|
| MakePointM(<x>,
<y>, <m>) |
|
|
|
ポイントジオメトリーを生成します |
|
|
| MakeBox2D(<LL>,
<UR>) |
|
|
|
LL,URの2点を指定して2次元の矩形を生成します |
|
|
| MakeBox3D(<LLB>,
<URT>) |
|
|
|
LLB,URTの2点を指定して3次元の直方体を生成します |
|
|
| MakeLine(geometry
set) |
|
|
|
ポイントジオメトリーのセットからラインを生成します |
|
|
| MakeLine(geometry,
geometry) |
|
|
|
二つのポイントからラインを生成します |
|
|
| LineFromMultiPoint(multipoint) |
|
|
|
MultiPointジオメトリーからラインを生成します |
|
|
| MakePolygon(linestring,
[linestring[]]) |
|
|
|
ラインからポリゴンを生成します。ジオメトリーは閉じたラインでなければなりません。 |
|
|
| BuildArea(geometry) |
|
|
|
ラインからエリアを生成します。入力するジオメトリーによって出力はポリゴンまたはマルチポリゴンとなります。ポリゴンが形成できないときはNULLを返します。 |
|
|
| Polygonize(geometry
set) |
|
|
|
ジオメトリーのセットから形成し得るポリゴンを含むジオメトリーコレクションを生成します |
|
|
| Collect(geometry
set) |
|
|
|
ジオメトリーのセットをもとにしたジオメトリーコレクションまたはMULTI*を返します |
|
|
| Collect(geometry,
geometry) |
|
|
|
二つのジオメトリーからなるジオメトリーコレクションまたはMULTI*を返します |
|
|
| Dump(geometry) |
|
|
|
セットを返す関数です。ジオメトリー(geom)と配列(path)からなるGeometry_dump行のセットを返します。入力がポイント,ライン,ポリゴンの時は空の配列と入力のジオメトリーからなる1レコードを返します。入力ジオメトリーがコレクションかMULTI*の時はコレクションの要素のそれぞれについて1レコードを返し,コレクション内の各要素の位置がpathで示されます |
|
|
| DumpRings(geometry) |
|
|
|
セットを返す関数です。ジオメトリー(geom)と配列(path)からなるGeometry_dump行のセットを返します。Pathフィールドはポリゴンのリング番号を示します(0は外郭,他はhole)。Geomフィールドはリングがポリゴンとして格納されます |
|
|
|
|
|
|
| Geometry
Editors |
|
|
| AddBBOX(geometry) |
|
|
|
ジオメトリーにbounding
boxを追加します。Bounding boxに基づくクエリーの速度が上がりますが,ジオメトリーのサイズは増加します |
|
|
| DropBBOX(geometry) |
|
|
|
ジオメトリーからbounding
boxを削除します。ジオメトリーのサイズは小さくなりますが,Bounding boxに基づくクエリーは遅くなります |
|
|
| AddPoint(linestring,
point, [<position>]) |
|
|
|
ラインの<posiron>番目(0から始まる)のポイントの前にポイントを追加します。 |
|
|
| RemovePoint(linestring,
offset) |
|
|
|
ラインからポイントを削除します。Offsetは0から始まる番号です |
|
|
| SetPoint(linestring,
N, point) |
|
|
|
N番目のポイントを置換します。Nは0から始まる番号です |
|
|
| Force_collection(geometry) |
|
|
|
ジオメトリーをジオメトリーコレクションに変換します。 |
|
|
| Force_2d(geometry) |
|
|
|
ジオメトリーをXとY座標だけを持つ2次元にします |
|
|
| Force_3dz(geometry),
Force_3d(geometry) |
|
|
|
ジオメトリーをXYZ座標を持つ3次元にします |
|
|
| Force_3dm(geometry) |
|
|
|
ジオメトリーをXYMの3次元にします |
|
|
| Force_4d(geometry) |
|
|
|
ジオメトリーをXYZMの4次元にします |
|
|
| Multi(geometry) |
|
|
|
ジオメトリーをマルチジオメトリーにします。入力がすでにマルチジオメトリーの時は何も変更しません。 |
|
|
| Transform(geometry,integer) |
|
|
|
integerの引数に指定したSRIDに座標変換した新たなジオメトリーを返します。SRIDはSPATIAL_REF_SYSテーブルになければなりません。 |
|
|
| Affine(geometry,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8) |
|
|
ジオメトリーを3次元のアフィン変換で幾何補正します。 |
|
|
|
Affine(geom, a, b, c, d, e,
f, g, h, i, xoff, yoff, zoff) |
|
|
|
は次の変換行列を表します |
|
|
|
/ a b
c xoff \ |
|
|
|
| d e
f yoff | |
|
|
|
| g h
i zoff | |
|
|
|
\ 0 0
0 1 / |
|
|
|
頂点は次式で計算されます |
|
|
|
x' = a*x + b*y + c*z + xoff |
|
|
|
y' = d*x + e*y + f*z + yoff |
|
|
|
z' = g*x + h*y + i*z + zoff |
|
|
| Affine(geometry,float8,float8,float8,float8,float8,float8) |
|
|
|
ジオメトリーを2次元のアフィン変換で幾何補正します。 |
|
|
|
Affine(geom, a, b, d, e,
xoff, yoff) |
|
|
|
は次の変換行列を表します |
|
|
|
/ a b
0 xoff \ / a
b xoff \ |
|
|
|
| d e
0 yoff | rsp. |
d e yoff | |
|
|
|
| 0 0
1 0 | \ 0 0
1 / |
|
|
|
\ 0 0
0 1 / |
|
|
|
頂点は次式で計算されます |
|
|
|
x' = a*x + b*y + xoff |
|
|
|
y' = d*x + e*y + yoff |
|
|
|
z' = z |
|
|
| Translate(geometry,float8,float8,float8) |
|
|
|
ジオメトリーを平行移動します。translate(geom,
X, Y, Z). |
|
|
| Scale(geometry,float8,float8,float8) |
|
|
|
ジオメトリーを拡大縮小します。scale(geom,
Xfactor, Yfactor, Zfactor) |
|
|
| RotateZ(geometry,float8),
RotateX(geometry,float8), RotateY(geometry,float8), |
|
|
|
ジオメトリーをZ軸,X軸,Y軸を回転軸として,ラジアンで指定した角度だけ回転させます。右手の法則に従います |
|
|
| TransScale(geometry,float8,float8,float8,float8) |
|
|
|
まず最初の二つの引数をもとにジオメトリーを平行移動し,残りの二つの引数を使って拡大縮小します。2次元のみです。transscale(geom,
X, Y, XFactor, YFactor) は内部で affine(geom, XFactor, 0, 0, 0, YFactor, 0, 0, 0,
1, X*XFactor, Y*YFactor, 0)を呼び出しています |
|
|
| Reverse(geometry) |
|
|
|
頂点の順番を逆にしたジオメトリーを返します |
|
|
| ForceRHR(geometry) |
|
|
|
右手の法則(頂点の並びに右手の4本の指を合わせた時の親指の向く方向が面の外側になる)にしたがったポリゴンにします |
|
|
| Simplify(geometry,
tolerance) |
|
|
|
Douglas-Peukerのアルゴリズムを使って単純化したジオメトリーを返します。どんなタイプのジオメトリーでも入力できますが,実際にはラインかポリゴンに対してしか適用されません。オブジェクトごとに単純化するのでジオメトリーコレクションも入力できます。結果のジオメトリーはsimpleでなくなっている(自己交差や自己接触が起きている)こともあります(IsSimple参照) |
|
|
| SnapToGrid(geometry,
originX, originY, sizeX, sizeY), SnapToGrid(geometry, sizeX, sizeY),
SnapToGrid(geometry, size), |
|
|
入力ジオメトリーのすべてのポイントを,原点とセルサイズで規定されたグリッドにスナップします。同じ場所にスナップされるポイントは削除されます。もし出力されたポイントが入力されたジオメトリーと同じタイプを構成するのに十分な数でないとNULLを返します。結果のジオメトリーはsimpleでなくなっている(自己交差や自己接触が起きている)こともあります(IsSimple参照) |
|
|
| SnapToGrid(geometry,
geometry, sizeX, sizeY, sizeZ, sizeM) |
|
|
|
入力ジオメトリーのすべてのポイントを,原点(ポイント)とセルサイズで規定されたグリッドにスナップします。スナップしたくない次元についてはサイズを0にします |
|
|
| Segmentize(geometry,
maxlength) |
|
|
|
maxlengthより長いセグメントを持たないように変更されたジオメトリーを返します |
|
|
| LineMerge(geometry) |
|
|
|
結合したラインを返します |
|
|
|
|
|
|
| Linear
Referencing |
|
|
| line_interpolate_point(linestring,
location) |
|
|
|
ラインに沿って挿入したポイントを返します。1番目の引数はLINESTRINGでなければなりません。2番目の引数は,2次元の全長に対するポイントの位置を示す0〜1の値です |
|
|
| line_substring(linestring,
start, end) |
|
|
|
ラインの一部を返します。全長に対する始点と終点の位置を0〜1の値で指定します。startとendが同じだと,line_interpolate_point()と同じ結果になります |
|
|
| line_locate_point(LineString,
Point) |
|
|
|
Pointに一番近い,ライン中のポイントの全長に対する位置を0〜1の値で返します |
|
|
| locate_along_measure(geometry,
float8) |
|
|
| locate_between_measures(geometry,
float8, float8) |
|
|
|
|
|
|
| その他 |
|
|
|
| Summary(geometry) |
|
|
|
ジオメトリーの内容の概要を返します |
|
|
|
(例)SELECT summary(the_geom)
from gisdata; |
|
|
|
summay(text) |
|
|
|
------------------------------------ |
|
|
|
MultiPolygon[BS] with 1
elements Polygon[] with 1
rings ring 0 has 133 points |
|
|
| box2d(geometry) |
|
|
|
ジオメトリーの最大範囲を表す2次元の矩形のLLとURを返します。 |
|
|
| box3d(geometry) |
|
|
|
ジオメトリーの最大範囲を表す3次元の直方体のLLBとURTを返します。 |
|
|
| extent(geometry
set) |
|
|
|
統合関数です。"SELECT
EXTENT(GEOM)"はテーブル内のすべての図形を含む最大範囲を返し,"SELECT EXTENT(GEOM)・・GROUP BY
CATEGORY"だとCATEGORYごとに最大となる範囲を返します |
|
|
| zmflag(geometry) |
|
|
|
ジオメトリーの次元(ZM値)を返します。0=2d,1=3dm,2=3dz,3=4d |
|
|
| HasBBOX(geometry) |
|
|
|
ジオメトリーのbounding
boxがキャッシュされている場合にTrueを返します。addBBOX()とdropBBOXがキャッシュを制御します |
|
|
| ndims(geometry) |
|
|
|
ジオメトリーの次元を返します。値は2,3,4です |
|
|
| nrings(geometry) |
|
|
|
ジオメトリーがポリゴンかマルチポリゴンの場合にリングの数を返します |
|
|
| npoints(geometry) |
|
|
|
ジオメトリーのポイントの数を返します |
|
|
| isvalid(geometry) |
|
|
|
ジオメトリーがvalid(有効)な場合にTrueを返します |
|
|
| expand(geometry,
float) |
|
|
|
入力ジオメトリーのbounding
boxを全方向に拡大したbounding boxを返します。 |
|
|
| estimated_extent([schema],
table, geocolumn) |
|
|
| find_srid(varchar,varchar,varchar) |
|
|
|
構文はfind_srid(<db/schema>,
<table>,
<column>) GEOMETRY_COLUMNテーブルを検索してSRIDを返します。ジオメトリーのフィールドが正しく追加されていない場合は機能しません |
|
|
| mem_size(geometry) |
|
|
|
ジオメトリーに使用されているメモリー量(byte)を返します |
|
|
| numb_sub_objects(geometry) |
|
|
|
ジオメトリーに格納されているオブジェクトの数を返します |
|
|
| point_inside_circle(geometry,float,float,float) |
|
|
|
構文はpoint_inside_circle(<geometry>,<circle_center_x>,<circle_center_y>,<radius>) もしジオメトリーがポイントで,円の内部にあればtrueを返します |
|
|
| xmin(box3d)
ymin(box3d) zmin(box3d) |
|
|
|
bounding boxのx,y,zの最小値を返します |
|
|
| xmax(box3d)
ymax(box3d) zmax(box3d) |
|
|
|
bounding boxのx,y,zの最大値を返します |
|
|
| Accum(geometry
set) |
|
|
|
統合関数です。ジオメトリーの配列を構成します。 |
|
|
|
|
|
|