PostGIS: Porovnání verzí

Z GeoWikiCZ
m (→‎SQL: odkaz)
Řádek 42: Řádek 42:
INSERT INTO zb (cat, zb_geom) VALUES (1, ST_SetSRID(ST_MakePoint(13.30150173,49.79076912), 4326));
INSERT INTO zb (cat, zb_geom) VALUES (1, ST_SetSRID(ST_MakePoint(13.30150173,49.79076912), 4326));
</source>
</source>
Viz [http://www.postgis.org/documentation/manual-svn/ch07.html#Geometry_Constructors geometrické konstruktory].


=== ESRI Shapefile (shp2pgsql, ogr2ogr) ===
=== ESRI Shapefile (shp2pgsql, ogr2ogr) ===

Verze z 6. 2. 2009, 11:31

PostGIS je rozšíření objektově-relačního databázového systému PostgreSQL pro podporu geografických objektů. PostGIS implementuje specifikaci Simple Features konsorcia Open Geospatial Consortium. Více přednášky předmětu Free Software GIS.

Vytvoření databáze

createdb databáze
createlang plpgsql databáze
psql -d databáze -f cesta/k/lwpostgis.sql
psql -d databáze -f cesta/k/spatial_ref_sys.sql 

Příklad skriptu pro založení databáze:

#!/bin/sh

if test -z "$1" ; then
    echo "Usage: $0 database"
    exit 1
fi

DB=$1
PATH=/usr/share/postgresql-8.2-postgis

createdb $DB
createlang plpgsql $DB
psql -d $DB -f $PATH/lwpostgis.sql
psql -d $DB -f $PATH/spatial_ref_sys.sql 

exit 0

Import dat

SQL

INSERT INTO zb (cat, zb_geom) VALUES (1, ST_GeomFromText('POINT(13.30150173 49.79076912)', 4326));

nebo

INSERT INTO zb (cat, zb_geom) VALUES (1, ST_SetSRID(ST_MakePoint(13.30150173,49.79076912), 4326));

Viz geometrické konstruktory.

ESRI Shapefile (shp2pgsql, ogr2ogr)

shp2pgsql -s 4326 -D -I -W latin2 cr.shp cr | psql pgis_yfsg
OGR včetně transformace S-JTSK → WGS-84
export PGCLIENTENCODING=LATIN2

ogr2ogr -f PostgreSQL -s_srs '+proj=krovak \
+a=6377397.155 +rf=299.1528128 +no_defs \
+towgs84=570.8,85.7,462.8,4.998,1.587,5.261,3.56 +to_meter=1.0' \
-t_srs EPSG:4326 \
pg:dbname=pgis_yfsg cr.shp

GRASS GIS (v.out.ogr)

v.out.ogr input=cr type=area format=PostgreSQL dsn="pg:dbname=pgis_yfsg"

Další formáty podporované knihovnou OGR (ogr2ogr)

GPX
ogr2ogr -f PostgreSQL -t_srs EPSG:4326 pg:dbname=pgis_yfsg yfsg-w.gpx waypoints

Příklady

Manuální vytvoření vrstvy s minimálním ohraničujícím obdélníkem hranice ČR:

CREATE TABLE cr_bbox AS (SELECT Envelope(wkb_geometry) AS wkb_geometry FROM cr);
INSERT INTO geometry_columns VALUES ('', 'public', 'cr_bbox', 'wkb_geometry', 2, 4326, 'POLYGON');
ALTER TABLE cr_bbox ADD COLUMN gid serial;
ALTER TABLE cr_bbox ADD primary key (gid);
CREATE INDEX cr_wkb ON cr_bbox USING GIST (wkb_geometry);

Poznámky

Atribut geometrie

Pro manipulaci s atributem geometrie slouží specializované funkce, které aktualizují tabulku geometry_columns, vytvoří nad atributem prostorový index.

  • Vytvoření prostorové atributu
SELECT AddGeometryColumn(
schéma,                        # volitelný atribut
název tabulky,
sloupec,
srid,
typ geometrie,
dimenze);

Např.

SELECT AddGeometryColumn('zb', 'zb_geom', 4326, 'POINT', 2);
  • Odstranění atributu geometrie
DropGeometryColumn(
schéma,                        # volitelný atribut
název tabulky,
sloupec)
  • Odstranění tabulky
DropGeometryTable(
schéma,                        # volitelný atribut
název tabulky)

Definice S-JTSK

INSERT INTO spatial_ref_sys VALUES (102067, 'local', 102067,
'PROJCS["Krovak",GEOGCS["bessel",DATUM["unknown",
SPHEROID["Bessel_1841",6377397.155,299.1528128],
TOWGS84[570.8,85.7,462.8,4.998,1.587,5.261,3.56]],
PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],
PROJECTION["Krovak"],PARAMETER["latitude_of_center",0],
PARAMETER["longitude_of_center",0],PARAMETER["azimuth",0],
PARAMETER["pseudo_standard_parallel_1",0],PARAMETER["scale_factor",1],
PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["meter",1]]',
'+proj=krovak +a=6377397.155 +rf=299.1528128 +no_defs
+towgs84=570.8,85.7,462.8,4.998,1.587,5.261,3.56 +to_meter=1.0');

Odkazy