PostGIS: Porovnání verzí

Z GeoWikiCZ
m (→‎Externí odkazy: postgis in action)
m (Obsah stránky nahrazen textem „{{freegiswiki|PostGIS}}“)
 
(Není zobrazeno 106 mezilehlých verzí od stejného uživatele.)
Řádek 1: Řádek 1:
[[Image:postgis.png|right]]
{{freegiswiki|PostGIS}}
[http://www.postgis.org PostGIS] je rozšíření objektově-relačního databázového systému [http://www.postgresql.org PostgreSQL] pro podporu geografických objektů. PostGIS implementuje specifikaci [http://www.opengeospatial.org/standards/sfa Simple Features] konsorcia [http://www.opengeospatial.org Open Geospatial Consortium].
 
Pro experimenty používejte [[Cvičná databáze PostGIS|cvičnou databázi]] na serveru [http://josef.fsv.cvut.cz josef].
 
== 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í PostGIS databáze:
 
<source lang=bash>
#!/bin/sh
 
if test -z "$1" ; then
    echo "Usage: $0 database"
    exit 1
fi
 
DB=$1
PGPATH=/usr/share/postgresql/8.1/contrib/
 
createdb $DB
createlang plpgsql $DB
psql -d $DB -f $PGPATH/lwpostgis.sql
psql -d $DB -f $PGPATH/spatial_ref_sys.sql
 
exit 0
</source>
 
== Import dat ==
 
V případě, že jsou atributová v jiném kódování, je nutné nastavit před importem proměnnou prostředí <code>PGCLIENTENCODING</code>, např.
 
export PGCLIENTENCODING=WIN1250
 
=== SQL ===
 
<source lang="sql">
INSERT INTO zb (cat, zb_geom) VALUES (1, ST_GeomFromText('POINT(13.30150173 49.79076912)', 4326));
</source>
 
nebo
 
<source lang="sql">
INSERT INTO zb (cat, zb_geom) VALUES (1, ST_SetSRID(ST_MakePoint(13.30150173,49.79076912), 4326));
</source>
 
Viz [http://www.postgis.org/documentation/manual-svn/ch07.html#Geometry_Constructors 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 &rarr; WGS-84
 
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) ===
 
{{GrassPrikaz|v.out.ogr}} input=cr type=area format=PostgreSQL dsn="pg:dbname=pgis_yfsg"
 
=== Další formáty podporované knihovnou [[GDAL/OGR|OGR]] (ogr2ogr) ===
 
;GPX
 
ogr2ogr -f PostgreSQL -t_srs EPSG:4326 pg:dbname=pgis_yfsg yfsg-w.gpx waypoints
 
== Příklady ==
 
* [[153GIS1]]
** [[153GIS1 2008 - 3. cvičení - PostGIS|3. cvičení]]
<!--
Manuální vytvoření vrstvy s minimálním ohraničujícím obdélníkem hranice ČR:
 
<source lang="sql">
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);
</source>
-->
 
== Poznámky ==
 
=== Atribut geometrie ===
 
Pro manipulaci s atributem geometrie slouží specializované funkce, které aktualizují tabulku <tt>geometry_columns</tt>, vytvoří nad atributem prostorový index.
 
*;Vytvoření prostorového atributu
 
SELECT AddGeometryColumn(
schéma,                        # volitelný atribut
název tabulky,
sloupec,
srid,
typ geometrie,
dimenze);
 
Např.
<source lang="sql">
SELECT AddGeometryColumn('zb', 'zb_geom', 4326, 'POINT', 2);
</source>
 
*;Odstranění atributu geometrie
 
DropGeometryColumn(
schéma,                        # volitelný atribut
název tabulky,
sloupec)
 
*;Odstranění tabulky
 
DropGeometryTable(
schéma,                        # volitelný atribut
název tabulky)
 
Při manuálním vytvoření prostorového atributu (např. <code>CREATE TABLE tabulka AS ...</code>) je potřeba aktualizovat tabulku <tt>geometry_columns</tt> (INSERT nebo pomocí funkce <tt>Populate_Geometry_Columns</tt> (od verze 1.4.0)). Např.:
 
<source lang="sql">
SELECT Populate_Geometry_Columns('public.zb'::regclass);
</source>
 
=== Definice S-JTSK ===
 
<source lang="sql">
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');
</source>
 
== Související články ==
 
* [[Instalace PostGIS]]
* [[153GIS1 2008 - 3. cvičení - PostGIS]]
* [[Cvičná databáze PostGIS]]
* [[Psql a Emacs]]
* [[SpatiaLite]]
 
== Výuka ==
 
* [[153WTE|WWW technologie]]
* [[153YFSG|Free software GIS]]
 
== Externí odkazy ==
 
* [http://www.postgis.org/documentation/ PostGIS documentation]
* [http://www.foss4g2007.org/workshops/W-04/ Introduction to PostGIS] by Paul Ramsey
* [http://www.mapbender.org/presentations/Spatial_Data_Management_Arnulf_Christl/Spatial_Data_Management_Arnulf_Christl.pdf Spatial Data Management]
* [http://edndoc.esri.com/arcsde/9.0/general_topics/understand_spatial_relations.htm Understanding spatial relations] by ESRI
* [http://www.bostongis.com/postgis_quickguide.bqg PostGIS Quick Guide - Cheatsheet]
* [http://grass.osgeo.org/wiki/Spatial_SQL Spatial SQL on GRASSWiki]
* [http://www.manning.com/obe/ PostGIS in action]
<!-- * [http://gis.zcu.cz/studium/ugi/referaty/05/PostGIS/index.html Představení projektu PostGIS] -->
* [http://geoinformatics.fsv.cvut.cz/gwiki/PostGIS_pro_v%C3%BDvoj%C3%A1%C5%99e PostGIS pro vývojáře]
* [http://www.openweekend.cz/slides/ow_2005/orlik_postgis.pdf Správa časoprostorových dat v prostředí PostgreSQL/PostGIS]
 
{{GNU}}
{{GFOSS}}
{{GIS}}

Aktuální verze z 8. 1. 2013, 14:32

Stránky přesunuty na Free GIS Portál: http://geo.fsv.cvut.cz/freegis/PostGIS