Post Gis

46
Banco de Dados BD Geográficos PostGIS CIn/UFPE – PostGis Valéria Times 1 Valéria Times [email protected]

description

Documento sobre postgis

Transcript of Post Gis

  • Banco de Dados

    BD GeogrficosPostGIS

    CIn/UFPE PostGis Valria Times 1

    Valria Times

    [email protected]

  • Introduo ao PostGIS

    PostGIS: Uma extenso Geo para o PostgreSQL Download

    http://postgis.refractions.net/download/

    Diretrios

    CIn/UFPE PostGis Valria Times 2

    Diretrios Windows Program Files\PostgreSQL\8.1\share\contrib UNIX src/contrib/

    Manual http://postgis.refractions.net/docs/

  • Introduo ao PostGIS

    Abrindo uma conexo com PostGIS: Servidor: postgres.cin.ufpe.br Porta: 5432

    CIn/UFPE PostGis Valria Times 3

    Usurio: g082if695_vct Senha: fS4pDd0B

  • Introduo ao PostGIS

    PostGIS segue o padro OpenGIS Prov suporte para todos objetos e funes da

    especificao SFS (Simple Features for SQL)GEOMETRYGEOMETRY

    CIn/UFPE PostGis Valria Times 4

    POINT

    LINESTRING

    POLYGON

    GEOMETRYCOLLECTION

    MULTIPOINT

    MULTILINESTRING

    MULTIPOLYGON

    POINT

    LINESTRING

    POLYGON

    GEOMETRYCOLLECTION

    MULTIPOINT

    MULTILINESTRING

    MULTIPOLYGONFonte: INPE

  • Introduo ao PostGIS Formatos WKB e WKT do OpenGIS Duas formas padres para manipular Objetos Geogrficos

    Well-Known Text (WKT) e Well-Known Binary (WKB) Guardam informaes sobre tipo e coordenadas do ObjetoGeo

    Exemplos:

    CIn/UFPE PostGis Valria Times 5

    POINT(0 0) LINESTRING(0 0,1 1,1 2) POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1)) MULTIPOINT(0 0,1 2) MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4)) MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-

    2 -2,-2 -1,-1 -1))) GEOMETRYCOLLECTION(POINT(2 3),LINESTRING((2 3,3 4)))

  • Introduo ao PostGIS

    SRID (Spatial Referencing System Identifier) Todo Objeto Geogrfico deve ter um SRID para ser

    inserido no BDGeo Por exemplo:

    CIn/UFPE PostGis Valria Times 6

    Considerando a interface GeomFromText GeomFromText (text WKT, SRID);

    Pode-se inserir o seguinte Objeto Geogrfico INSERT INTO SpatialTable (THE_GEOM, THE_NAME) VALUES

    (GeomFromText('POINT(-126.4 45.32)', 2000), Um Lugar');

  • Introduo ao PostGIS

    A especificao SFS/OpenGIS define tipos, funese metadados para manipular ObjetosGeo

    As principais tabelas de metadados so:SPATIAL_REF_SYS guarda os IDs e as descries

    CIn/UFPE PostGis Valria Times 7

    SPATIAL_REF_SYS guarda os IDs e as descriestextuais do sistema de coordenadas usados no BDGeo

    GEOMETRY_COLUMNS guarda informaes doesquema Geogrfico e das propriedades dos ObjetosGeo

  • Introduo ao PostGISTABLE SPATIAL_REF_SYS (SRID INTEGER NOT NULL PRIMARY KEY, // identificador do SRSAUTH_NAME VARCHAR(256), // nome da autoridade que especificou o SRSAUTH_SRID INTEGER, // identificador do SRS definido pela autoridadeSRTEXT VARCHAR(2048), // representao WKT do SRS

    CIn/UFPE PostGis Valria Times 8

    PROJ4TEXT VARCHAR(2048) // especificaes para transformao de SRS)

  • Introduo

    CIn/UFPE PostGis Valria Times 9

  • Introduo ao PostGISGEOMETRY_COLUMNS (F_TABLE_CATALOG VARCHAR(256) NOT NULL,F_TABLE_SCHEMA VARCHAR(256) NOT NULL,F_TABLE_NAME VARCHAR(256) NOT NULL,F_GEOMETRY_COLUMN VARCHAR(256) NOT NULL, //nome coluna Geo da tabela

    // nome qualificado da tabela

    CIn/UFPE PostGis Valria Times 10

    COORD_DIMENSION INTEGER NOT NULL, // dimenso (2D ou 3D) da colunaSRID INTEGER NOT NULL, // ID do SRS usado na tabelaTYPE VARCHAR(30) NOT NULL // Tipo do objetoGeo (POINT, LINESTRING,

    POLYGON, MULTIPOINT, MULTILINESTRING,MULTIPOLYGON, GEOMETRYCOLLECTION )

    )

  • Introduo ao PostGIS

    Note:"catalog" pode ficar em branco e apenas usar o nome do BD do PostgreSQL para "schema" .

    CIn/UFPE PostGis Valria Times 11

  • Usando o PostGIS Criando uma tabela espacial (2 passos) 1) Criar uma tabela normal (sem campo espacial)

    Exemplo: CREATE TABLE ROADS_GEOM ( ID int4, NAME varchar(25) );

    2) Adicionar uma coluna espacial ("AddGeometryColumn) Sintaxe:

    CIn/UFPE PostGis Valria Times 12

    Sintaxe: AddGeometryColumn([],,, , ,); Exemplo:

    SELECT AddGeometryColumn('public', 'roads_geom', 'geom',2000, 'LINESTRING', 2);

    SELECT AddGeometryColumn( 'roads_geom', 'geom', 2000,'LINESTRING', 2);

  • Usando o PostGIS Outros exemplos para criar tabelas espaciais Assumindo que o SRID 2001 j existeCREATE TABLE parks ( PARK_ID int4, PARK_NAME varchar(128),

    PARK_DATE date, PARK_TYPE varchar(2) );SELECT AddGeometryColumn('parks','park_geom',2001,

    CIn/UFPE PostGis Valria Times 13

    SELECT AddGeometryColumn('parks','park_geom',2001,'MULTIPOLYGON', 2 );

    Usando o tipo genrico "geometry" e um SRID indefinido (-1)CREATE TABLE roads ( ROAD_ID int4, ROAD_NAME varchar(128) );SELECT AddGeometryColumn( 'roads', 'roads_geom', -1,

    'GEOMETRY', 3 );

  • Usando o PostGIS Validando geometrias antes de inseri-las no BDGeo Funo ISVALID()

    Valida as coordenadas de uma geometria Exemplo:

    SELECT ISVALID('LINESTRING(0 0, 1 1)'), t

    CIn/UFPE PostGis Valria Times 14

    ISVALID('LINESTRING(0 0,0 0)'); f Opo default no validar a entrada das geometrias

    Para validar deve-se adicionar uma restrio tabela ALTER TABLE parks ADD CONSTRAINT geo_valid_chk

    CHECK (isvalid(park_geom)); Cuidado: Validar polgonos pode ser muito custoso!

  • Usando o PostGIS Inserindo ObjetosGeo nas tabelas (2 formas) 1) Usando SQL

    BEGIN;BEGIN;BEGIN;BEGIN;INSERT INTO ROADS_GEOM VALUES INSERT INTO ROADS_GEOM VALUES INSERT INTO ROADS_GEOM VALUES INSERT INTO ROADS_GEOM VALUES

    (1,'Jeff Rd',GeomFromText('LINESTRING(191232 243118,191108 243242)',2000)); (1,'Jeff Rd',GeomFromText('LINESTRING(191232 243118,191108 243242)',2000)); (1,'Jeff Rd',GeomFromText('LINESTRING(191232 243118,191108 243242)',2000)); (1,'Jeff Rd',GeomFromText('LINESTRING(191232 243118,191108 243242)',2000)); INSERT INTO ROADS_GEOM VALUES INSERT INTO ROADS_GEOM VALUES INSERT INTO ROADS_GEOM VALUES INSERT INTO ROADS_GEOM VALUES

    (2,'Geordie Rd',GeomFromText('LINESTRING(189141 244158,189265 244817)',2000)); (2,'Geordie Rd',GeomFromText('LINESTRING(189141 244158,189265 244817)',2000)); (2,'Geordie Rd',GeomFromText('LINESTRING(189141 244158,189265 244817)',2000)); (2,'Geordie Rd',GeomFromText('LINESTRING(189141 244158,189265 244817)',2000));

    CIn/UFPE PostGis Valria Times 15

    INSERT INTO ROADS_GEOM VALUES INSERT INTO ROADS_GEOM VALUES INSERT INTO ROADS_GEOM VALUES INSERT INTO ROADS_GEOM VALUES (3,'Paul St',GeomFromText('LINESTRING(192783 228138,192612 229814)',2000)); (3,'Paul St',GeomFromText('LINESTRING(192783 228138,192612 229814)',2000)); (3,'Paul St',GeomFromText('LINESTRING(192783 228138,192612 229814)',2000)); (3,'Paul St',GeomFromText('LINESTRING(192783 228138,192612 229814)',2000));

    INSERT INTO ROADS_GEOM VALUES (4,'Graeme INSERT INTO ROADS_GEOM VALUES (4,'Graeme INSERT INTO ROADS_GEOM VALUES (4,'Graeme INSERT INTO ROADS_GEOM VALUES (4,'Graeme Ave',GeomFromText('LINESTRING(189412 252431,189631 259122)',2000)); Ave',GeomFromText('LINESTRING(189412 252431,189631 259122)',2000)); Ave',GeomFromText('LINESTRING(189412 252431,189631 259122)',2000)); Ave',GeomFromText('LINESTRING(189412 252431,189631 259122)',2000));

    INSERT INTO ROADS_GEOM VALUES INSERT INTO ROADS_GEOM VALUES INSERT INTO ROADS_GEOM VALUES INSERT INTO ROADS_GEOM VALUES (5,'Phil Tce',GeomFromText('LINESTRING(190131 224148,190871 228134)',2000)); (5,'Phil Tce',GeomFromText('LINESTRING(190131 224148,190871 228134)',2000)); (5,'Phil Tce',GeomFromText('LINESTRING(190131 224148,190871 228134)',2000)); (5,'Phil Tce',GeomFromText('LINESTRING(190131 224148,190871 228134)',2000));

    INSERT INTO ROADS_GEOM VALUES INSERT INTO ROADS_GEOM VALUES INSERT INTO ROADS_GEOM VALUES INSERT INTO ROADS_GEOM VALUES (6,'Dave Cres',GeomFromText('LINESTRING(198231 263418,198213 268322)',2000)); (6,'Dave Cres',GeomFromText('LINESTRING(198231 263418,198213 268322)',2000)); (6,'Dave Cres',GeomFromText('LINESTRING(198231 263418,198213 268322)',2000)); (6,'Dave Cres',GeomFromText('LINESTRING(198231 263418,198213 268322)',2000)); COMMIT;COMMIT;COMMIT;COMMIT;

  • Usando o PostGIS 2) Usando o Loader shp2pgsql

    Converte um shape file para pgsql.sql Shp2pgsql []

    : nome do shape file s/ extenso (inclui shp, shx, dbf) : nome da tabela destino. Por default, a geometria

    fica na coluna 'geo_value' : nome do BDGeo destino

    CIn/UFPE PostGis Valria Times 16

    : nome do BDGeo destino [] : opes de configurao

    PrincipaisPrincipaisPrincipaisPrincipais: (-a || -c || -d || -p mutuamente exclusivas), -D. -a : anexa dados a uma tabela existente -c : cria uma tabela e insere os dados (modo padro) -d : apaga a tabela antes de criar outra -p : l o esquema do shape file para criar uma tabela -D : permite fazer dump de grandes volumes de dados. Usa COPY

    no lugar de INSERT INTO).

  • Usando o PostGIS 2) Usando o Loader shp2pgsql Cont.

    Exemplo com arquivo intermedirio: Abrir um terminal (cmd) e executar: set PATH=%PATH%;p:\postgresql\pgsql\bin Shp2pgsql -c C:\ESRI\AV_GIS30\AVTUTOR\ARCVIEW\qstart\world94

    world94 g082if695_vct > world94.sql

    CIn/UFPE PostGis Valria Times 17

    dir psql -h postgres.cin.ufpe.br -d g082if695_vct -U g082if695_vct -f

    world94.sql -W -d: nome do BD -f: nome do arquivo -U: nome do usurio -h: nome do host

  • Usando o PostGIS 2) Usando o Loader shp2pgsql Cont.

    Exemplo sem arquivo intermedirio: shp2pgsql -c C:\ESRI\AV_GIS30\AVTUTOR\ARCVIEW\qstart\mexico

    mexico teste | psql -d teste -U postgres -h g1c10

    shp2pgsql -c C:\ESRI\AV_GIS30\AVTUTOR\ARCVIEW\qstart\canadacanada teste | psql -d teste -U postgres -h g1c10

    CIn/UFPE PostGis Valria Times 18

    canada teste | psql -d teste -U postgres -h g1c10

  • Usando o PostGIS Consultas simples a ObjetosGeo Forma bsica

    SELECT id, AsText(geom) AS geom, name FROM ROADS_GEOM; Operadores teis

    &&: Informa se o MBR de uma geometria intersecta o MBR de outra

    CIn/UFPE PostGis Valria Times 19

    &&: Informa se o MBR de uma geometria intersecta o MBR de outra ~= : Testa se duas geometrias so geometricamente idnticas = : Testa se os MBR de duas geometrias so idnticos Exemplo:

    SELECT ID, NAMEFROM ROADS_GEOMWHERE GEOM = GeomFromText('LINESTRING(191232

    243118,191108 243242)',2000);

  • Usando o PostGIS Consultas simples a ObjetosGeo Exemplo (cont):

    SELECT ID, NAMEFROM ROADS_GEOMWHERE GEOM ~= GeomFromText('LINESTRING(191232

    CIn/UFPE PostGis Valria Times 20

    WHERE GEOM ~= GeomFromText('LINESTRING(191232243118,191108 243242)',2000);

    SELECT ID, NAMEFROM ROADS_GEOMWHERE GEOM && GeomFromText('POLYGON((191232

    243117,191232 243119,191234 243117,191232 243117))',-1);

  • Usando o PostGIS Exportando dados para Shape File

    pgsql2shp Converte uma tabelaGeo do PostgreSQL para shape file ESRI

    pgsql2shp [] nome do BDGeo origem nome da tabela origem

    CIn/UFPE PostGis Valria Times 21

    [] opes de configurao ----dddd:::: definedefinedefinedefine oooo arquivoarquivoarquivoarquivo dumpdumpdumpdump paraparaparapara 3333DDDD (padro(padro(padro(padro ==== 2222D)D)D)D) ----ffff :::: nomenomenomenome dodododo shapeshapeshapeshape filefilefilefile (padro(padro(padro(padro ==== nomenomenomenome dadadada tabela)tabela)tabela)tabela).... ----hhhh :::: hosthosthosthost ondeondeondeonde estestestest oooo bancobancobancobanco dededede dadosdadosdadosdados (padro(padro(padro(padro =localhost)=localhost)=localhost)=localhost).... ----pppp :::: portaportaportaporta dededede conexoconexoconexoconexo (padro(padro(padro(padro ==== 5432543254325432)))).... ----PPPP :::: especificaespecificaespecificaespecifica aaaa senhasenhasenhasenha.... ----uuuu :::: especificaespecificaespecificaespecifica oooo usuriousuriousuriousurio.... ----gggg especificaespecificaespecificaespecifica aaaa colunaGeocolunaGeocolunaGeocolunaGeo aaaa serserserser exportadaexportadaexportadaexportada....

  • Usando o PostGIS Exportando dados para Shape File (Cont.) pgsql2shp

    Exemplos: pgsql2shp -u postgres -P postgres teste world94

    CIn/UFPE PostGis Valria Times 22

    pgsql2shp -f World94Exp -u postgres -P postgres teste world94

    pgsql2shp -f World94Exp -h localhost -p 5432 -u postgres -Ppostgres teste world94

  • Usando o PostGIS Usando ndices Geogrficos Melhor opo: usar uma R-Tree implementada no topo do

    mecanismo GiST (Generalized Search Tree). A implementao nativa da R-Tree do PostgreSQL no to robusta

    quanto a implementao feita pelo mecanismo GiST

    CIn/UFPE PostGis Valria Times 23

    quanto a implementao feita pelo mecanismo GiST Desde a verso 0.6 do PostgreSQL no recomenda-se a sua R-Tree

    Consultas convencionais em tabelas geogrficas no usufruem do mecanismo GiST

  • Usando o PostGIS Usando ndices Geogrficos (esquema R-Tree)

    CIn/UFPE PostGis Valria Times 24

  • Usando o PostGIS Usando ndices Geogrficos Sintaxe:

    CREATE INDEX [indexname] ON [tablename]USING GIST ( [geometryfield] GIST_GEOMETRY_OPS );

    Exemplo:

    CIn/UFPE PostGis Valria Times 25

    Exemplo:CREATE INDEX world94_idx ON world94USING GIST (the_geom GIST_GEOMETRY_OPS);

    Depois de criar os ndices boa prtica executar:VACUUM ANALYZE [table_name] [column_name]

    para liberar tuplas obsoletas/excludas

  • Usando o PostGIS possvel usufruir do GiST na consulta abaixo? Selecione as casas que estejam a menos de 1000 metros do

    ponto (100000, 200000):

    SELECT geometria

    CIn/UFPE PostGis Valria Times 26

    SELECT geometriaFROM casasWHERE distance(geometria,

    GeometryFromText(POINT(100000, 200000), -1)) < 1000;

  • Usando o PostGIS possvel usufruir do GiST na consulta abaixo? Selecione as padarias que estejam a menos de 1000 metros

    do ponto (100000, 200000):SELECT geometriaFROM padarias

    CIn/UFPE PostGis Valria Times 27

    FROM padariasWHERE distance(geometria,

    GeometryFromText( POINT(100000, 200000), -1)) < 1000;Esta consulta ser lenta se a tabela for grande!

    Somente consultas com operadores que usam MBR(ex: &&) tiram vantagem do ndice espacial.

    Funes como distncia no usufruem do ndice.

  • Usando o PostGIS Pode-se usufruir do ndice usando uma janela

    de consulta (query box)SELECT geometriaFROM padariasWHERE geometria &&

    CIn/UFPE PostGis Valria Times 28

    WHERE geometria &&BOX3D(99000 199000, 101000 201000)::box3dAND distance(geometria,

    GeometryFromText(POINT(100000, 200000), -1)) < 1000;

    Note que a janela de consulta (BOX3D + &&) forma um quadrado centralizado sobre o ponto original

  • Usando o PostGIS

    Principais funes de relacionamento espacial Distance(geometry, geometry) Equals(geometry, geometry) Disjoint(geometry, geometry) Intersects(geometry, geometry)

    CIn/UFPE PostGis Valria Times 29

    Intersects(geometry, geometry) Touches(geometry, geometry) Crosses(geometry, geometry) Within(geometry, geometry) Overlaps(geometry, geometry) Contains(geometry, geometry)

  • Usando o PostGIS Principais funes de processamento geomtrico

    Centroid(geometry) Area(geometry) Length(geometry) PointOnSurface(geometry) Boundary(geometry)

    CIn/UFPE PostGis Valria Times 30

    Boundary(geometry) Buffer(geometry, double, [integer]) Intersection(geometry, geometry) Difference(geometry, geometry) GeomUnion(geometry, geometry)

  • Usando o PostGIS

    Existem muitas outras funes!

    CIn/UFPE PostGis Valria Times 31

    funes!Consultar tpico 6 (PostGIS

    Reference) do manual PostGis.

  • Usando o PostGIS Exemplos de consultas espaciais Qual o comprimento total de todas as estradas? (em km)

    SELECT sum ( length ( the_geom ) ) / 1000 AS km_roadsFROM bc_roads;

    CIn/UFPE PostGis Valria Times 32

    Qual a rea da cidade de RECIFE? (em hectares)SELECT area ( the_geom ) / 10000 AS hectaresFROM bc_municipalityWHERE name = RECIFE ;

  • Usando o PostGIS Exemplos de consultas espaciais Qual o maior municpio por rea? (em hectares)

    SELECT name, area (the_geom ) / 10000 AS hectaresFROM bc_municipalityORDER BY hectares DESCLIMIT 1 ;

    CIn/UFPE PostGis Valria Times 33

    LIMIT 1 ;

    Qual o tamanho das estradas contidas em cada municpio?SELECT m.name, sum ( length ( r. the_geom ) ) / 1000 as roads_km

    FROM bc_roads AS r , bc_municipality AS mWHERE r.the_geom && m.the_geomAND contains(m.the_geom , r.the_geom)GROUP BY m.nameORDER BY roads_km ;

  • Usando o PostGIS Exemplos de consultas espaciais Crie uma tabela com todas as estradas de Recife?CREATE TABLE pg_roads as

    SELECT intersection (r.the_geom, m.the_geom) ASintersection_geom, length ( r.the_geom ) AS rd_orig_length , r.*

    CIn/UFPE PostGis Valria Times 34

    intersection_geom, length ( r.the_geom ) AS rd_orig_length , r.*FROM bc_roads AS r, bc_municipality AS mWHERE r.the_geom && m.the_geomAND intersects ( r.the_geom, m.the_geom )AND m.name = 'RECIFE ;

  • Usando o PostGIS Exemplos de consultas espaciais Qual o tamanho (em km), da Av. Caxang em Recife?

    SELECT sum ( length ( r.the_geom ) ) / 1000 AS kilometersFROM bc_roads r, bc_municipality m

    CIn/UFPE PostGis Valria Times 35

    FROM bc_roads r, bc_municipality mWHERE r.the_geom && m.the_geomAND r.name = Caxang 'AND m.name = RECIFE ;

  • Usando o PostGIS Exemplos de consultas espaciais com otimizao Listar o ID das regies vizinhas regio 1234.

    SELECT r2.geo_idFROM regiao r1, regiao r2WHERE touchestouchestouchestouches (r1.the_geom, r2.the_geom)AND ( r2.geo_id '1234 )

    CIn/UFPE PostGis Valria Times 36

    AND ( r2.geo_id '1234 )AND ( r1.geo_id = '1234 )

    SELECT r2.geo_idFROM regiao r1, regiao r2WHERE touchestouchestouchestouches ( r1.the_geom, r2.the_geom )ANDANDANDAND (r(r(r(r1111....the_geomthe_geomthe_geomthe_geom &&&&&&&& rrrr2222....the_geom)the_geom)the_geom)the_geom) otimizandootimizandootimizandootimizandoAND ( r2.geo_id '1234 )AND ( r1.geo_id = '1234 )

  • Usando o PostGIS

    Exemplos de consultas espaciais com otimizao Listar o nmero de homicdios ocorridos em Pernambuco.

    SELECT COUNT(*)FROM homicidios h, estados eWHERE contains (e.the_geom, h.the_geom)AND e.nome = 'PERNAMBUCO';

    CIn/UFPE PostGis Valria Times 37

    AND e.nome = 'PERNAMBUCO';SELECT COUNT(*)FROM homicidios h, estados eWHERE contains (e.the_geom, h.the_geom)ANDANDANDAND (((( eeee....the_geomthe_geomthe_geomthe_geom &&&&&&&& hhhh....the_geomthe_geomthe_geomthe_geom )))) otimizandootimizandootimizandootimizandoAND e.nome = PERNAMBUCO ;

  • Aula Prtica

    CIn/UFPE PostGis Valria Times 38/80

  • PostGIS Exerccio Criar uma tabela chamada exemplo_lotes para

    armazenar informaes a respeito dos lotes abaixo:y

    9

    11

    13

    CIn/UFPE PostGis Valria Times 39

    x1 3 5 7 9 11 13 15 17 19 21

    1

    3

    5

    7

    9

    L1

    L2

    L4L3 L5

  • PostGIS Exerccio Criar uma tabela chamada exemplo_quadras para

    armazenar informaes a respeito das quadras abaixo:y

    9

    11

    13

    CIn/UFPE PostGis Valria Times 40

    x1 3 5 7 9 11 13 15 17 19 21

    1

    3

    5

    7

    9

    Q1

    Q2

  • PostGIS Exerccio Responda: Quais os lotes vizinhos ao lote L4?

    Quantos lotes esto dentro da quadra Q1?

    Uma pessoa resolveu comprar todos os lotes da quadra

    CIn/UFPE PostGis Valria Times 41

    Uma pessoa resolveu comprar todos os lotes da quadra Q1. Criar uma nova geometria L6 que represente toda a rea dos lotes originais.

    Criar uma nica tabela para armazenar os lotes e as quadras (exemplo_quadras_lotes). Esta tabela, alm do identificador, possui o tipo do objeto e as geometrias. Mas, estas ltimas no podem ter sobreposio (a rea da quadra no deve sobrepor a do lote ?!!).

  • Projeto de Disciplina

    CIn/UFPE PostGis Valria Times 42/80

  • Roteiro para Projeto BD Geo Criar Minimundo, modelo conceitual e esquema

    lgico com tabelas espaciais Implementar as tabelas no PostGIS, fazendo uso

    do comando de carga shp2pgsql Implementar as principais consultas de

    verificao de relacionamentos espaciais e de

    CIn/UFPE PostGis Valria Times 43

    verificao de relacionamentos espaciais e de processamento geomtrico fazendo uso das operaes espaciais do PostGIS

    Testar e colocar o sistema em funcionamento, fazendo uso de um servidor de mapas para visualizao dos resultados (JUMP, TerraView, GeoClient, Mapserver,Thuban, GRASS, QGIS)

    Data da Entrega: 31 / 10 / 09

  • Roteiro para Nota Mxima Descrio de Minimundo Modelagem Conceitual Esquema Relacional Implementar as seguintes consultas de

    verificao de relacionamentos espaciais: Distance ( geometry, geometry ) Equals ( geometry, geometry )

    corretos

    CIn/UFPE PostGis Valria Times 44

    Equals ( geometry, geometry ) Disjoint ( geometry, geometry ) Intersects ( geometry, geometry ) Touches ( geometry, geometry ) Crosses ( geometry, geometry ) Within ( geometry, geometry ) Overlaps ( geometry, geometry ) Contains ( geometry, geometry ) Intersects ( geometry, geometry )

  • Roteiro para Nota Mxima Implementar as seguintes consultas de

    processamento geomtrico: Centroid (geometry) Area (geometry) Length (geometry) PointOnSurface (geometry) Boundary (geometry)

    CIn/UFPE PostGis Valria Times 45

    Boundary (geometry) Buffer (geometry, double, [integer]) Intersection (geometry, geometry) Difference (geometry, geometry) GeomUnion (geometry, geometry)

    Defesa do projeto com qualidade e segurana

  • CIn/UFPE PostGis Valria Times 46