Introductory presentation on work with PostGIS - PowerPoint PPT Presentation

Anton_Kh
postgis n.
Skip this Video
Loading SlideShow in 5 Seconds..
Introductory presentation on work with PostGIS PowerPoint Presentation
Download Presentation
Introductory presentation on work with PostGIS

play fullscreen
1 / 59
Download Presentation
547 Views
Download Presentation

Introductory presentation on work with PostGIS

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. PostGIS - открытое решение для хранения и обработки пространственных данных в базе данных Александр Клешнин Харьков, Intetics Co

  2. Содержание • Теоретический обзор • Что такое PostGIS? • Стоимость/функциональность пространственных баз данных • Функции/возможности PostGIS • Практическая демонстрация • Установка PostgreSQL/PostGIS • Импорт данных в пространственную базу данных • Выполнение запросов расчета длины/площади • Пространственные индексы • Создание функции PostGIS • Выполнение запросов обновления атрибутивных данных в слое • Создание объектов через SQL запрос • Экспорт данных из пространственной базы данных

  3. Open Geospatial Consortium (OGC) http://www.opengeospatial.org/

  4. СУБД для пространственных данных • Проприетарные решения: • Oracle Spatial • MS SQL Server 2008 • Informix Spatial Blade • DB2 Spatial Extender • ArcSDE (SDE – Spatial Database Engine) • Свободные решения: • PostgreSQL/PostGIS • SQLite/SpatiaLite • MySQL/Spatial

  5. Стоимость & функциональность Стоимость Функциональность


  6. Что такое PostGIS? • PostGIS – расширение СУБД PostgreSQL для хранения в базе данных географических данных • экономически эффективная альтернатива Oracle Spatial & Locator, IBM DB2Spatial, Informix Spatial DataBlade, Microsoft SQL Server • PostGIS – GPL Open Source Project

  7. PostGIS объекты • OpenGIS Simple Features for SQL Objects • POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON, GEOMETRYCOLLECTION • OpenGIS Simple Features for SQL Representations • AsText( )  Well-Known Text • POINT(24) • MULTILINESTRING((-128 45,-128 46),(-130 50,-131 55)) • AsBinary( )  Well-Known Binary • 000000000140000000000000004010000000000000

  8. Геопроцессинг с PostGIS PostGIS функции (~300)доступны посредством SQL • Функции управления • Функции геометрической связи • Функции обработки геометрии • Функции измерения • AddGeometryColumn • DropGeometryColumn • ST_SetSRID • ST_Distance • ST_DWithin • ST_Intersects • ST_Touches • ST_Crosses • ST_Within • ST_Buffer • ST_Intersection • ST_Union • ST_Centroid • ST_ConvexHull • ST_Difference • ST_Area • ST_Length • ST_Distance_Spheroid

  9. PostgreSQL/PostGIS и другое ПО

  10. Практическая работа: структура системы/ПО • Сервер БД • Пользователи

  11. Установка PostgreSQL / PostGIS PostgreSQL PostGIS http://www.postgresql.org/ http://postgis.refractions.net/

  12. Установка PostgreSQL

  13. Установка PostgreSQL

  14. Установка PostgreSQL

  15. Установка PostgreSQL

  16. Установка PostgreSQL

  17. Установка PostGIS

  18. Установка PostGIS

  19. Установка PostGIS

  20. Установка PostGIS

  21. Установка PostGIS

  22. Установка PostGIS

  23. Установка PostGIS

  24. Установка PostGIS

  25. Установка PostGIS

  26. pgAdmin – инструмент управления БД PostgreSQL/PostGIS SELECT version() || ' ' || postgis_full_version();

  27. Созданиепользователей Administrator - admin User - gis -- Role: admin -- DROP ROLE admin; CREATE ROLE admin LOGIN ENCRYPTED PASSWORD 'md5f6fdffe48c908deb0f4c3bd36c032e72' SUPERUSER INHERIT CREATEDB CREATEROLE REPLICATION CONNECTION LIMIT 5; -- Role: gis -- DROP ROLE gis; CREATE ROLE gis LOGIN ENCRYPTED PASSWORD 'md5d1eac6a9b9835a37d71bac718a80a7ac' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION CONNECTION LIMIT 100;

  28. Созданиепространственной базы данных -- Database: template_postgis_20 -- DROP DATABASE template_postgis_20; CREATE DATABASE template_postgis_20 WITH OWNER = postgres ENCODING = 'UTF8' TABLESPACE = pg_default LC_COLLATE = 'Russian_Russia.1251' LC_CTYPE = 'Russian_Russia.1251' CONNECTION LIMIT = -1; ALTER DATABASE template_postgis_20 SET search_path = "$user", public, topology; База данных - database

  29. Структура пространственнойбазы данных

  30. Первые запросы

  31. Первые запросы

  32. Импорт shp-файлов в базу данных PostGIS • SQL команды • shp2pgsql // PostGIS 2.0 Shapefile and DBF Loader Exporter (GUI) • ogr2ogr • (OGR – свободная библиотека для работы с векторнымиданными) • SPIT (Quantum GIS Tool) • ESRI’s Data Interoperability extension ($) shp2pgsql -s 2964 lakes.shp lakes_new | psql gis_data ogr2ogr -f PostgreSQL PG:"host=localhost user=admin dbname=database password=admin" streets.shp;

  33. Исходные данные http://gis-lab.info/qa/geosample.html

  34. Исходные данные • admin • oopt • poi-osm • road-l-osm • settlements

  35. Импорт shape-файлов в базу данных - SPIT

  36. pgAdmin – выделение прав

  37. pgAdmin – выделение прав • admin

  38. Поле геометрии в таблицах • SELECT ST_AsText(the_geom) FROM "poi-osm";

  39. SQL-window для пользовательских запросов

  40. Вычисление длины линейных объектов --length in kilometers SELECT "NAME" AS name, ST_Length_Spheroid("road-l-osm".the_geom,'SPHEROID["WGS 84",6378137,298.257223563]')/1000 AS length FROM "road-l-osm"; --sum length in kilometers SELECT Sum(ST_Length_Spheroid("road-l-osm".the_geom,'SPHEROID["WGS 84",6378137,298.257223563]')/1000) AS sum_length FROM "road-l-osm";

  41. Вычисление длины линейных объектов по АТД SELECT m."NAME", sum(ST_Length_Spheroid(r.the_geom,'SPHEROID["WGS 84",6378137,298.257223563]'))/1000 AS roads_km FROM "road-l-osm" AS r, "admin" AS m WHERE ST_Intersects(m.the_geom, r.the_geom) GROUP BY m."NAME" ORDER BY m."NAME"

  42. Пространственные индексы • B-Tree • R-Tree • GiST CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometryfield] );

  43. Вычисление длины линейных объектов по АТД + GiST -- Index: "sidx_road-l-osm_the_geom« -- DROP INDEX "sidx_road-l-osm_the_geom"; CREATE INDEX "sidx_road-l-osm_the_geom" ON "road-l-osm" USING gist (the_geom);

  44. Вычисление площади

  45. Перепроецирование данных

  46. Перепроецирование данных

  47. Создание функции выбора зоны СК

  48. Создание колонки и запись значений площади

  49. Таблица атрибутов слоя с площадями для объектов

  50. Создание пространственной таблицы “poi” -- Table: poi CREATE TABLE "poi" ( gid serial NOT NULL, "NAME" character varying(64), the_geom geometry(Point,4326), CONSTRAINT "poi_pkey" PRIMARY KEY (gid) ) WITH ( OIDS=FALSE ); ALTER TABLE "poi" OWNER TO admin; GRANT ALL ON TABLE "poi" TO admin; GRANT ALL ON TABLE "poi" TO public; -- Sequence: poi_gid_seq ALTER TABLE "poi_gid_seq" OWNER TO admin; GRANT ALL ON TABLE "poi_gid_seq" TO admin; GRANT ALL ON TABLE "poi_gid_seq" TO public;