|
|
(Není zobrazeno 82 mezilehlých verzí od stejného uživatele.) |
Řádek 1: |
Řádek 1: |
| [[Image:postgis.png|150px|right]]
| | {{freegiswiki|PostGIS}} |
| [http://www.postgis.org PostGIS] je rozšíření objektově-relačního databázového systému [[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].
| |
| | |
| == Příklady ==
| |
| | |
| === [[153GIS1]] ===
| |
| | |
| * [[153GIS1 - 2. cvičení - PostGIS|2. cvičení]]
| |
| * [[153GIS1 - 3. cvičení - PostGIS|3. cvičení]]
| |
| * [[153GIS1 - 4. cvičení - PostGIS|4. cvičení]]
| |
| | |
| === [[153UZPD]] ===
| |
| | |
| * http://josef.fsv.cvut.cz/~gin/uzpd/examples/postgis/
| |
| | |
| == 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ř.
| |
| | |
| <source lang="bash">
| |
| export PGCLIENTENCODING=WIN1250
| |
| </source>
| |
| | |
| === 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 → 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
| |
| | |
| == 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)
| |
| | |
| Např.
| |
| | |
| <source lang="sql">
| |
| SELECT DropGeometryTable('osm', 'czech_roads');
| |
| </source>
| |
| | |
| 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 (ESRI:102067) ===
| |
| | |
| <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>
| |
| | |
| === Rozsah dat ===
| |
| | |
| <source lang="sql">
| |
| SELECT ST_Extent(the_geom) from points;
| |
| -- EPSG:4326 --
| |
| SELECT ST_Extent(ST_Transform(the_geom, 4326)) from points;
| |
| </source>
| |
| | |
| == Související články ==
| |
| | |
| * [[Instalace PostGIS]]
| |
| * [[Cvičná databáze PostGIS]]
| |
| * [[Psql a Emacs]]
| |
| * [[WKTRaster]]
| |
| * [[SpatiaLite]]
| |
| | |
| == Výuka ==
| |
| | |
| * [[153UZPD|Úvod do zpracování prostorových dat]]
| |
| * [[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://revenant.ca/www/postgis/workshop/index.html Introduction to PostGIS (OSGeo)] by Mark Leslie
| |
| * [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://pgrouting.postlbs.org pgRouting]
| |
| * [http://spatialreference.org Spatial Reference]
| |
| | |
| <!-- * [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}}
| |