PostGISノート1:簡単な入門

2862 ワード

PostGISノート1:簡単な入門


PostgisはPostgreSQLに基づく空間拡張である.だから、PostgreSQLはあなたがPostgisを知っているわけではありません.PostgisもPostgreSQLを知っているわけではありません.私のSpatialiteに関するメモを見たことがあるなら、一定の空間データベースの基礎を持っています.
  • 1簡単な入門
  • 2CLI Cheat Sheet
  • 3python for Spatialite
  • 4 NETプラットフォームspatilite拡張
  • 5 Spatiliate 2 GeoJsonデータの変換
  • 使用


    Postgisは2つの大きなバージョンに分けられ、それらの間に大きな更新があり、ネット上の多くのチュートリアルは古いバージョンのpostgisに基づいています.インストールの段階で、新しいバージョンのpostgisでは「template_postgisテンプレートが存在しない」という問題が発生します.ソリューションは2つあります.
  • 参考postgisがtemplateを備えていないpostgisテンプレート自己構築テンプレート.
  • 2 PostGIS拡張
  • の作成
    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を消費する.
    このデータ型を選択したのは、あなたが適用したためでなければなりません.あなたのデータは、世界や大陸の範囲、大陸、国、都市であれば.
  • データが非常に小さい範囲にある場合は、パフォーマンス優先と機能が利用可能であるため、適切な投影を選択する必要があります.
  • あなたのデータは世界的または広い範囲で、GEOGRaPHYは投影情報を心配することなくシステムを構築することができます.経緯度でデータを保存することができます.
  • あなたは投影を知らないで、あなたも投影を学びたくなくて、あなたはGEOGRaPHYの方法の欠如を受け入れることができて、あなたはGEOGRaPHYを選ぶべきでGEOMETRYではありません.緯度データをロードするのに便利だからです.

  • PostGISからGeography VS Geometry

    くうかんぶんせきほう


    PostGIS_GeographyFunctions

    リファレンス


    PostgreSQLのpostgres_fdwライブラリ間で使用