Postgis Conhecendooelefantegeospacialss 121207125931 Phpapp02

download Postgis Conhecendooelefantegeospacialss 121207125931 Phpapp02

If you can't read please download the document

description

O que é um banco de dados geoespacial?

Transcript of Postgis Conhecendooelefantegeospacialss 121207125931 Phpapp02

Rodrigo HjortServio Federal de Proc. Dados

Ignacio Talavera
Intendencia de Montevideo

PostGIS Conhecendo oElefante Geoespacial

O que um banco de dados geoespacial?

Tipos de dadosTexto, nmero, data/hora

ndicesB-tree, hash

Funeslength(), now()

Um banco de dados possui...

armazena e manipula objetos espaciais como qualquer outro objeto do banco de dados

Um banco de dados espacial...

Tipos de dados espaciaisgeometry, geography

ndices espaciaisr-tree, quad-tree, kd-tree

Funes espaciaisST_Length(), ST_X()

Banco de dados espacial...

Evoluo das arquiteturas GIS

A hierarquia da geometria

Os ndices espaciais

Anlise
ST_Function(geometry) algo

ConstruoST_Function(algo) geometry

CriaoST_Function(geometry) geometry

As funes espaciais

O que o PostGIS?PostGIS "spatially enables" the PostgreSQL server, allowing it to be used as a backend spatial database for geographic information systems (GIS)

Jamais! Banco de dados melhor!

TransaesConsultas ad hocModelos de dados complexosLinguagem SQL

Por que no usar Shapefiles?

GeoServer servidor empresarial, implementa los protocolos WMS WFS,WFS-T.

Web Mapping

Web MappingGeoServer

Data

Data

Data

Web

Client

Client

Web MappingGeoServer

Data

Data

Data

Client

Client

WFS

WMS

WMS

Mo na massa!

1. Criar banco com suporte a GIS

CREATE DATABASE consegi
TEMPLATE template_postgis;

2. Importar o shapefile de municpios do Par

shp2pgsql -s 4674 -d -g geom
-D -W LATIN1 15MUE250GC_SIR
mun > mun.sql

psql consegi < mun.sql

3. Criar a tabela de municpios

CREATE TABLE municipios (codigo int not null primary key,nome varchar(50) not null,area geometry(MULTIPOLYGON, 4326));

4. Popular a nova tabela

INSERT INTO municipiosSELECT cd_geocodm::int, nm_municip,ST_Force_2D(ST_Transform(geom, 4326))FROM mun;

DROP TABLE mun;

5. Criar coluna contendo o centro dos municpios

ALTER TABLE municipiosADD centro geometry(point, 4326);

UPDATE municipios
SET centro = ST_Centroid(area);

6. Importar o shapefile de mamferos

shp2pgsql -s 4326 -d -g geom
-D -W LATIN1 mamiferos
mamiferos > mam.sql

psql consegi < mam.sql

7. Importar os dados do Censo 2010 para o Par

psql consegi -f censo-pa.sql

Configurar GeoServerData Store PostGIS

Publicar layers WMS

Publicar layer groups

8. Utilizando GeoServer

Exerccios

1. Quais so e qual a rea dos 5 mais extensos municpios do Estado?

Dica: ST_Area()

2. Qual a rea e o permetro total do Estado do Par?
Dica: ST_Collect(), ST_Perimeter()

3. Quais so os 3 municpios mais setentrionais (ao norte) do Estado?
Dica: ST_Y()

4. Qual a distncia de cada municpio capital do Estado?
Dica: ST_Distance()

5. Quais so os municpios que fazem fronteira com Altamira?
Dica: ST_Intersects()

6. Quais so os municpios a um raio de at 50km do centro de Marituba?
Dica: ST_DWithin()

7. Quais so os mamferos e os municpios em que eles se encontram no Par?

Dica: ST_Contains()

8. Qual a populao total de Itupiranga e municpios limtrofes?

Dica: ST_Intersects()

9. Quais so os municpios a at 80km de Ananindeua com maior populao feminina?
Dica: ST_DWithin()

Desafios

1. Exibir somente os municpios com mais de 200 mil habitantes.

2. Exibir os municpios vizinhos a Santarm cuja populao rural seja maior que a urbana.