PostGISノート1:簡単な入門
2862 ワード
PostGISノート1:簡単な入門
PostgisはPostgreSQLに基づく空間拡張である.だから、PostgreSQLはあなたがPostgisを知っているわけではありません.PostgisもPostgreSQLを知っているわけではありません.私のSpatialiteに関するメモを見たことがあるなら、一定の空間データベースの基礎を持っています.
使用
Postgisは2つの大きなバージョンに分けられ、それらの間に大きな更新があり、ネット上の多くのチュートリアルは古いバージョンのpostgisに基づいています.インストールの段階で、新しいバージョンのpostgisでは「
template_postgis
テンプレートが存在しない」という問題が発生します.ソリューションは2つあります.CREATE EXTENSION postgis
同様に、多くのサードパーティライブラリではpostgisのバージョンを区別し、2.0のバージョンに特化してカスタマイズされています.
運用
空間フィールドはgeometryとgeographyの2つに分けることができ、ほとんどの場合opengis規格を満たすgeometryが使用されます.
スペースフィールドの作成
方法1
スペース拡張を開くと、まずテーブルを作成し、opengis標準で推奨される方法でスペースフィールドを作成することを前提とします.
SELECT AddGeometryColumn ('scheme','cities', 'the_geom', 4326, 'POINT', 2);
欠点は、テーブル名、フィールド名などのパラメータが大文字と小文字を区別する拡張方法です.
方法2
geometry typeのメソッドを使用して、テーブルを作成することもできます.
CREATE TABLE ROADS ( ID int4, ROAD_NAME varchar(25), geom geometry(LINESTRING,4326) );
またはテーブルの変更
ALTER TABLE roads ADD COLUMN geom2 geometry(LINESTRINGZ,4326);
データを挿入
空間データの記述は比較的複雑であるため、空間データの挿入は他のデータフォーマットに依存して変換する必要がある.
ST_GeomFromText
はテキストから変換されます.INSERT INTO roads (road_id, roads_geom, road_name) VALUES (3,ST_GeomFromText('LINESTRING(192783 228138,192612 229814)',-1),'Paul St');
あるいはwktを使って、WKT&WKBノート1:フォーマット紹介を参考にすることができます.
INSERT INTO table ( SHAPE, NAME )VALUES ( GeomFromEWKT('SRID=4326;POINTM(116.39 39.9 10)'), ' ' )
データの読み込み
表示データは、スペースフィールドを異なるフォーマットに保存できます.
SELECT id, ST_AsText(the_geom), ST_AsGeoJson(the_geom), ST_AsEwkt(the_geom), ST_X(the_geom), ST_Y(the_geom) FROM cities;
GeographyデータフォーマットでGeometryデータフォーマットを使用しない
新しいGEOGRaPHYフォーマットでは、
longitude/latitude coordinates
でデータを保存できますが、GEOGRaPHYに対しては定義される方法が少なく、GEOMETRYに対しては比較的多いという代価があります.また,これらの方法はいずれも相対的にCPUを消費する.このデータ型を選択したのは、あなたが適用したためでなければなりません.あなたのデータは、世界や大陸の範囲、大陸、国、都市であれば.
PostGISからGeography VS Geometry
くうかんぶんせきほう
PostGIS_GeographyFunctions
リファレンス
PostgreSQLのpostgres_fdwライブラリ間で使用