Download pdf - Aula Postgis

Transcript

Slide 1

1Banco de Dados Avanados BD Geogrficos

Valria Times

[email protected]

nIntroduo ao PostGISO que PostGIS?Um novo tipo de dadoGeometryNovas Funes sobre o tipo GeometryST_Distance(geometry, geometry)ST_Area(geometry)ST_Intersects(geometry, geometry)Mecanismo de indexao p/ consultas espaciaisnPostGIS: Uma extenso Geo para o PostgreSQLDownloadhttp://postgis.refractions.net/download/DiretriosWindows Program Files\PostgreSQL\8.1\share\contribUNIX src/contrib/

Introduo ao PostGISnPostGIS: Uma extenso Geo para o PostgreSQLManualhttp://postgis.refractions.net/docs/Abrindo uma conexo com PostGISServidor: postgres.cin.ufpe.brPorta: 5432Usurio: g082if695_vctSenha: fS4pDd0B

Introduo ao PostGISnCriando um BD espacial

Introduo ao PostGISn6Criando um BD espacial

Introduo ao PostGISnPostGIS segue o padro OpenGISProv suporte para todos objetos e funes da especificao SFS (Simple Features for SQL)

Fonte: INPE Introduo ao PostGISnFormatos WKB e WKT do OpenGIS Duas formas padres para manipular Objetos GeogrficosWell-Known Text (WKT) e Well-Known Binary (WKB)

Guardam informaes sobre o tipo e as coordenadas do ObjetoGeoIntroduo ao PostGISnFormatos WKB e WKT do OpenGIS Exemplos: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 PostGISnSRID (Spatial Referencing System Identifier) Todo Objeto Geogrfico deve ter um SRID para ser inserido no BDGeoPor exemplo:Considerando a interface GeomFromText GeomFromText (text WKT, SRID);Pode-se inserir o seguinte Objeto GeogrficoINSERT INTO SpatialTable (THE_GEOM, THE_NAME) VALUES (GeomFromText('POINT(-126.4 45.32)', 2000), Um Lugar');Introduo ao PostGISnFunes de Sada:text WKT = ST_AsText(geometry)bytea WKB = ST_AsBinary(geometry)

Funes de Entrada:geometry = GeomFromWKB(bytea WKB, SRID);geometry = GeomFromText(text WKT, SRID);Introduo ao PostGISnA especificao SFS/OpenGIS define tipos, funes e metadados para manipular ObjetosGeo

As principais tabelas de metadados do OGC so:SPATIAL_REF_SYS guarda os IDs e as descries textuais do sistema de coordenadas usados no BDGeoGEOMETRY_COLUMNS guarda informaes do esquema Geogrfico e das propriedades dos ObjetosGeo

Introduo ao PostGISnTABLE SPATIAL_REF_SYS ( SRID INTEGER NOT NULL PRIMARY KEY, // identificador do SRS AUTH_NAME VARCHAR(256), // nome da autoridade que especificou o SRS AUTH_SRID INTEGER, // identificador do SRS definido pela autoridade SRTEXT VARCHAR(2048), // representao WKT do SRS PROJ4TEXT VARCHAR(2048) // especificaes para transformao de SRS)

Introduo ao PostGISn

Introduo ao PostGISnConsultando a tabela de metadados.14GEOMETRY_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 COORD_DIMENSION INTEGER NOT NULL, // dimenso (2D ou 3D) da coluna SRID INTEGER NOT NULL, // ID do SRS usado na tabela TYPE VARCHAR(30) NOT NULL // Tipo do objetoGeo (POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON, GEOMETRYCOLLECTION ))// nome qualificado da tabelaIntroduo ao PostGISn

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

Introduo ao PostGISnTabelas de Metadados do OGCTabela: GEOMETRY_COLUMNSf_table_catalog VARCHAR (256)PRIMARY KEYf_table_schemaVARCHAR (256)PRIMARY KEYf_table_nameVARCHAR (256)PRIMARY KEYf_geometry_columnVARCHAR (256)PRIMARY KEYcoord_dimensionINTEGERsridINTEGERtypeVARCHAR(30)Tabela: SPATIAL_REF_SYSsridINTEGERPRIMARY KEYauth_nameVARCHAR(256)auth_sridINTEGERsrtextVARCHAR(2048)proj4textVARCHAR(2048)Introduo ao PostGISnCriando uma Tabela Espacial:CREATE TABLE estacoes_pluviometricas ( gid INT4, location GEOMETRY, nome VARCHAR(25) );

INSERT INTO estacoes_pluviometricas VALUES(1, 'POINT(-46.98 -19.57)', 'DINIZ-ARAXA');INSERT INTO estacoes_pluviometricasVALUES(2, 'POINT(-43.59 20.37)', 'QUEIROZ-OURO-PRETO');Usando o PostGISnRecuperando dados da Tabela Espacial:SELECT gid, nome, ST_AsText(location)FROM estacoes_pluviometricas;

Problema com este mtodo:Deixa-se de preencher alguns metadados da tabela que possui uma coluna espacial!Deixa-se de associar um SRID geometria!Usando o PostGISnForma correta de criar uma Tabela Espacial:Primeiro Passo:CREATE TABLE estacoes_pluviometricas ( gid INT4, nome VARCHAR(25) );Segundo Passo: SELECT AddGeometryColumn('estacoes_pluviometricas', 'location', 4291, 'POINT', 2) ;Usando o PostGISnForma correta de inserir a geometria de um dado espacial:

INSERT INTO estacoes_pluviometricasVALUES (1, 'DINIZ-ARAXA', GeomFromText ( 'POINT(-46.98 -19.57)', 4291) ) ;

Geometria expressa em WKT

SRID (Spatial Reference ID)Usando o PostGISnOutro exemplo de criao de uma tabela espacial1) Criar uma tabela normal (sem campo espacial)Exemplo:CREATE TABLE ROADS_GEOM ( ID int4, NAME varchar(25) );Usando o PostGISnContinuao do exemplo de criao de uma tabela espacial2) Adicionar uma coluna espacial ("AddGeometryColumn)Sintaxe:AddGeometryColumn([],,, , ,);Exemplo:SELECT AddGeometryColumn('public', 'roads_geom', 'geom', 2000, 'LINESTRING', 2);SELECT AddGeometryColumn( 'roads_geom', 'geom', 2000, 'LINESTRING', 2);Usando o PostGISnOutros exemplos para criar tabelas espaciaisAssumindo 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, 'MULTIPOLYGON', 2 );Usando o PostGISnOutros exemplos para criar tabelas espaciaisUsando 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 PostGISnFazendo a carga de arquivos ShapeArquivo Shape:.shp = contm a parte geomtrica.dbf =contm a parte alfa-numrica (string, number, date).shx = contm dados de ndice Tabelas PostgreSQL+PostGIS:Colunas podem conter geometriasColunas podem conter atributos convencionaisEm geral, um arquivo Shape corresponde a uma tabela PostgreSQL+PostGISUsando o PostGISnInserindo ObjetosGeo nas tabelas (2 formas)1) Usando SQLBEGIN;INSERT INTO ROADS_GEOM VALUES (1,'Jeff Rd',GeomFromText('LINESTRING(191232 243118,191108 243242)',2000)); INSERT INTO ROADS_GEOM VALUES (2,'Geordie Rd',GeomFromText('LINESTRING(189141 244158,189265 244817)',2000)); INSERT INTO ROADS_GEOM VALUES (3,'Paul St',GeomFromText('LINESTRING(192783 228138,192612 229814)',2000)); INSERT INTO ROADS_GEOM VALUES (4,'Graeme Ave',GeomFromText('LINESTRING(189412 252431,189631 259122)',2000)); INSERT INTO ROADS_GEOM VALUES (5,'Phil Tce',GeomFromText('LINESTRING(190131 224148,190871 228134)',2000)); INSERT INTO ROADS_GEOM VALUES (6,'Dave Cres',GeomFromText('LINESTRING(198231 263418,198213 268322)',2000)); COMMIT;Usando o PostGISn282) Usando o Loader shp2pgsqlConverte um shape file para pgsql.sql Sintaxe: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[] : opes de configuraoUsando o PostGISnPrincipais opes de configurao do shp2pgsql(-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 PostGISn2) Usando o Loader shp2pgsql (Continuao)Exemplo com arquivo intermedirio:Abrir um terminal (cmd) e executar:set PATH=%PATH%;C:\Program Files\PostgreSQL\8.3\binShp2pgsql -c C:\ESRI\AV_GIS30\AVTUTOR\ARCVIEW\qstart\world94 world94 g082if695_vct > world94.sqldir

Usando o PostGISnNo CIN = set PATH=%PATH%;p:\postgresql\pgsql\bin

No Dinter = Shp2pgsql -c C:\ESRI\AV_GIS30\AVTUTOR\ARCVIEW\qstart\world94 world94 > world94.sql

302) Usando o Loader shp2pgsql (Continuao)Exemplo com arquivo intermedirio: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 hostpsql -h localhost -d teste -U postgres -f world94.sql -W

Usando o PostGISnNo Dinter = psql -h localhost -d teste -U postgres -f world94.sql -W

312) 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\canada canada teste | psql -d teste -U postgres -h g1c10 Usando o PostGISnNo Dinter = shp2pgsql -c C:\ESRI\AV_GIS30\AVTUTOR\ARCVIEW\qstart\mexico mexico teste | psql -d teste -U postgres -h localhost

No Dinter = shp2pgsql -c C:\ESRI\AV_GIS30\AVTUTOR\ARCVIEW\qstart\canada canada teste | psql -d teste -U postgres -h localhost

32Exportando dados para Shape Filepgsql2shpConverte uma tabelaGeo do PostgreSQL para shape file ESRIpgsql2shp [] nome do BDGeo origem nome da tabela origem[] opes de configuraoUsando o PostGISnpgsql2shpPrincipais opes de configurao-d: define o arquivo dump para 3D (padro = 2D)-f : nome do shape file (padro = nome da tabela). -h : host onde est o BD (padro =localhost).-p : porta de conexo (padro = 5432).-P : especifica a senha.-u : especifica o usurio.-g especifica a colunaGeo a ser exportada.Usando o PostGISnExportando dados para Shape File (Continuao)pgsql2shpExemplos:

pgsql2shp -u postgres -P postgres teste world94

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

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

Usando o PostGISnNo Dinter = pgsql2shp -f World94Exp -h localhost -u postgres -P postgres teste world94

35Consultas EspaciaisForma bsicaSELECT id, AsText(geom) AS geom, name FROM ROADS_GEOM;

Operadores teis&&: Testa 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 idnticosUsando o PostGISnConsultas EspaciaisExemplo:SELECT ID, NAME FROM ROADS_GEOM WHERE GEOM = GeomFromText('LINESTRING(191232 243118,191108 243242)',2000);Usando o PostGISnExemplos de Consultas EspaciaisSELECT ID, NAME FROM ROADS_GEOM WHERE GEOM ~= GeomFromText('LINESTRING(191232 243118,191108 243242)',2000);

SELECT ID, NAME FROM ROADS_GEOM WHERE GEOM && GeomFromText('POLYGON((191232 243117,191232 243119,191234 243117,191232 243117))', -1);

Usando o PostGISnProcessamento de Consultas Espaciais

Consulta Espacial

BDG

candidatos

Aplicao

SGBD

Testes com a Geometria Exata

Filtragem

Refinamento

falsoscandidatos

Usando o PostGISnOperador de ndice espacial : &&Minimum bounding box intersects

a && b = true

a && b = false

Usando o PostGISn41Minimum Bounding Box (MBB) no suficiente

a && b = TRUE

ST_Intersects(a , b) = FALSEabProcesssamento em duas etapas:Se usa o MBB para diminuir o nmero de candidatosSe usa os operadores topolgicos para realizar testes mais finos e ento obter a resposta finalUsando o PostGISnObservaesA partir da verso 1.3.X, os operadores espaciais j fazem uso do ndice espacial sem a necessidade de explicitar o ndice &&Se no for usado o ndice, basta utilizar os mtodos prefixados com: '_' _ST_TOUCHES

Usando o PostGISn43Consultas simples a ObjetosGeoQual a aptido agrcola do municpio de Joo Pinheiro?Necessitamos fazer um Overlay! Como? Mapa de Municpios Mapa de Aptido Agrcola

Joo PinheiroUsando o PostGISnConsultas simples a ObjetosGeoQual a aptido agrcola do municpio Joo Pinheiro?

SELECT m.nommuni, a.classe, ST_Intersection (m.the_geom, a.the_geom)FROM municipios m, aptidao_agricola aWHERE ST_Intersects (m.the_geom, a.the_geom)AND m.nommuni = 'Joo Pinheiro ;Usando o PostGISnEsta consulta ainda precisa de alguns ajustes para melhorar seu desempenho fazendo uso de ndices espaciais.44Operaes Topolgicas em SQLQuais so os recursos hdricos do municpio Ouro Preto?Obter os relacionamentos espaciais entre o municpio de Ouro Preto e seus recursos hdricos

Ouro PretoUsando o PostGISnOperaes Topolgicas em SQLQuais so os recursos hdricos do municpio Ouro Preto?

SELECT m.nommuni, h.tipo, h.nome, ST_AsText(h.the_geom)FROM municipios m, hidro_line hWHERE ST_Intersects (m.the_geom, h.the_geom)AND m.nommuni = 'Ouro Preto ;Usando o PostGISnEsta consulta ainda precisa de alguns ajustes para melhorar seu desempenho fazendo uso de ndices espaciais.46Operaes Topolgicas em SQLObter os relacionamentos espaciais entre o municpio de Ouro Preto e seus recursos hdricos

SELECT m.nommuni, h.tipo, h.nome, ST_Relate (h.the_geom, m.the_geom)FROM municipios m, hidro_line hWHERE ST_Intersects(m.the_geom, h.the_geom)AND m.nommuni = 'Ouro Preto'Usando o PostGISnEsta consulta ainda precisa de alguns ajustes para melhorar seu desempenho fazendo uso de ndices espaciais.47Operaes Topolgicas em SQLQuais os municpios vizinhos Ouro Preto?

Ouro PretoUsando o PostGISn49Operaes Topolgicas em SQLQuais os municpios vizinhos Ouro Preto?

SELECT m1.nommuni, m2.nommuniFROM municipios m1, municipios m2WHERE ST_Touches (m1.the_geom, m2.the_geom)AND m2.nommuni 'Ouro Preto'AND m1.nommuni = 'Ouro Preto'Usando o PostGISnEsta consulta ainda precisa de alguns ajustes para melhorar seu desempenho fazendo uso de ndices espaciais.49Operaes Topolgicas em SQLQuais os municpios do Estado de Minas Gerais que possuem uma pista de pouso para aeronaves?

Usando o PostGISnOperaes Topolgicas em SQLQuais os municpios do Estado de Minas Gerais que possuem uma pista de pouso para aeronaves?

SELECT m.nommuni, a.nomaeroFROM municipios m, aero aWHERE ST_Contains(m.the_geom, a.the_geom) ;Usando o PostGISnEsta consulta ainda precisa de alguns ajustes para melhorar seu desempenho fazendo uso de ndices espaciais.51Conferindo a integridade dos dadosPostGIS pressupe algumas regras de integridade em relao s geometrias:Geometrias devem ser de acordo com a OGC Simple Feature Specification for SQLOs anis dos polgonos no devem se sobrepor ou terem auto-interseces Um MultiPolygon no deve ter polgonos sobrepondo-seAo contrrio de algumas outras extenses espaciais, a orientao dos anis no importanteUsando o PostGISnValidando geometrias antes de inseri-las no BDGeoST_ISVALID()Valida as coordenadas de uma geometriaExemplo:SELECT ST_ ISVALID ('LINESTRING(0 0, 1 1)'), t ST_ISVALID ('LINESTRING(0 0,0 0)'); fOpo default no validar a entrada das geometrias Para validar deve-se adicionar uma restrio tabelaALTER TABLE parks ADD CONSTRAINT geo_valid_chk CHECK (ST_ISVALID ( park_geom)) ;

Usando o PostGISnConferindo a integridade dos dadosRemover os municpios do Estado de Minas Gerais que possuem uma geometria invlida.

DELETE FROM municipiosWHERE NOT ST_Isvalid (the_geom);Usando o PostGISnProvendo suporte projees cartogrficasPostGIS possui uma tabla de metadados com todos os sistemas de referncia espacial providos:Tabela: spatial_ref_sys

ST_Transform (geometria, novosrid)Retorna uma nova geometria com as coordenadas transformadas para um novo SRIDO novo SRID deve estar presente na tabela spatial_ref_sysUsando o PostGISnProjees Cartogrficas em SQLQual a rea do municpio de Ouro Preto em hectares?

SELECT ST_Area( ST_Transform(the_geom, 29183)) /10000AS hectaresFROM municipios mWHERE m.nommuni = 'Ouro Preto ;

Usando o PostGISnEsta consulta ainda precisa de alguns ajustes para melhorar seu desempenho fazendo uso de ndices espaciais.56Projees Cartogrficas em SQL

Qual o maior municpio do Estado de Minas Gerais em termos de rea (em hectares)?

SELECT m.nommuni, ST_Area( ST_Transform (the_geom, 29183)) / 10000 AS hectaresFROM municipios m ORDER BY hectares DESC LIMIT 1;Usando o PostGISnEsta consulta ainda precisa de alguns ajustes para melhorar seu desempenho fazendo uso de ndices espaciais.57Qual o comprimeno total dos recursos hdricos do municpio de Ouro Preto?

SELECT SUM (ST_Length( ST_Transform( r.rh, 29183))/1000) AS km FROM ( SELECT ST_Intersection(m.the_geom, h.the_geom) AS rh FROM municipios m, hidro_line h WHERE ST_Intersects(m.the_geom, h.the_geom) AND m.nommuni = 'Ouro Preto ) AS r ;Usando o PostGISnEsta consulta ainda precisa de alguns ajustes para melhorar seu desempenho fazendo uso de ndices espaciais.58Usando ndices Geogrficos

GiST (Generalized Search Tree)Consultas convencionais em tabelas geogrficas no usufruem do mecanismo GiSTSintaxe para criao do ndice:CREATE INDEX nome_ndice ON nome_tabela USING GIST (coluna);ndices so utilizados pelo PostgreSQL quando ele reconhece algum operador na consulta: < ,= , ST_WITHIN,...Usando o PostGISnGIST (variao da R-Tree)

Usando o PostGISn61Usando ndices GeogrficosExemplo:CREATE INDEX world94_idx ON world94 USING GIST (the_geom) ; possvel usufruir do GiST na consulta: Selecione casas que estejam a menos de 1000 metros do ponto (100000, 200000)? SELECT geometria FROM casas WHERE distance(geometria, GeometryFromText(POINT(100000, 200000), -1)) < 1000;

Usando o PostGISnResposta:

Somente consultas com operadores que usam MBR (i.e. &&) usufruem do ndice espacial. Funes como distncia no usufruem do GISTPode-se usufruir do ndice usando uma janela de consulta (query window) SELECT geometria FROM casas WHERE geometria && BOX3D(99000 199000, 101000 201000)::box3d AND distance(geometria, GeometryFromText(POINT(100000, 200000), -1)) < 1000;

Usando o PostGISnA janela de consulta forma um quadrado centralizado no ponto original.62Principais funes de relacionamento espacialDistance(geometry, geometry) Equals(geometry, geometry) Disjoint(geometry, geometry) Intersects(geometry, geometry) Touches(geometry, geometry) Crosses(geometry, geometry) Within(geometry, geometry) Overlaps(geometry, geometry) Contains(geometry, geometry) Usando o PostGISnPrincipais funes de processamento geomtricoCentroid(geometry) Area(geometry) Length(geometry) PointOnSurface(geometry) Boundary(geometry) Buffer(geometry, double, [integer]) Intersection(geometry, geometry) Difference(geometry, geometry) GeomUnion(geometry, geometry) Usando o PostGISnExemplos de consultas espaciaisQual o comprimento total de todas as estradas? (em km)SELECT sum ( length ( the_geom ) ) / 1000 AS km_roads FROM bc_roads;

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

Usando o PostGISnExemplos de consultas espaciais

Qual o maior municpio por rea? (em hectares)SELECT name, area (the_geom ) / 10000 AS hectares FROM bc_municipalityORDER BY hectares DESC LIMIT 1 ;Usando o PostGISnExemplos de consultas espaciaisQual 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 m WHERE r.the_geom && m.the_geom AND contains(m.the_geom , r.the_geom) GROUP BY m.name ORDER BY roads_km ;Usando o PostGISnExemplos 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) AS intersection_geom, length ( r.the_geom ) AS rd_orig_length , r.* FROM bc_roads AS r, bc_municipality AS m WHERE r.the_geom && m.the_geom AND intersects ( r.the_geom, m.the_geom ) AND m.name = 'RECIFE ;Usando o PostGISnExemplos de consultas espaciais

Qual o tamanho (em km), da Av. Caxang em Recife?SELECT sum ( length ( r.the_geom ) ) / 1000 AS kilometers FROM bc_roads r, bc_municipality m WHERE r.the_geom && m.the_geom AND r.name = Caxang ' AND m.name = RECIFE ;Usando o PostGISnExemplos de consultas espaciais com otimizaoListar o ID das regies vizinhas regio 1234.

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

SELECT r2.geo_idFROM regiao r1, regiao r2WHERE touches ( r1.the_geom, r2.the_geom )AND (r1.the_geom && r2.the_geom) otimizando AND ( r2.geo_id '1234 ) AND ( r1.geo_id = '1234 )

Usando o PostGISnExemplos de consultas espaciais com otimizaoListar 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';

SELECT COUNT(*)FROM homicidios h, estados eWHERE contains (e.the_geom, h.the_geom)AND ( e.the_geom && h.the_geom ) otimizando AND e.nome = PERNAMBUCO ; Usando o PostGISnBD GEOAula Prtica 72/80PostGIS ExerccioCriar uma tabela chamada lotes_final para armazenar informaes a respeito dos lotes abaixo:

y13579111315171921

nPostGIS ExerccioCriar uma tabela chamada quadras_final para armazenar informaes a respeito das quadras abaixo:

nPostGIS ExerccioResponda:Quais os lotes vizinhos ao lote L4?

Quantos lotes esto dentro da quadra Q1?

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

n76PostGIS ExerccioResponda:

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 ?!!).nBD GEOProjeto de Disciplina 77/8078Roteiro para Projeto BD GeoCriar Minimundo, modelo conceitual e esquema lgico com tabelas espaciaisImplementar as tabelas no PostGIS, fazendo uso do comando de carga shp2pgsqlImplementar as principais consultas de verificao de relacionamentos espaciais e de processamento geomtrico fazendo uso das operaes espaciais do PostGISTestar e colocar o sistema em funcionamento, fazendo uso de um servidor de mapas para visualizao dos resultados (OpenJUMP, TerraView, GeoClient, Mapserver,Thuban, GRASS, QGIS) Data da Entrega: 09 e 11 / 11 / 10n79Roteiro para Nota MximaDescrio de MinimundoModelagem ConceitualEsquema RelacionalImplementar as seguintes consultas de verificao de relacionamentos espaciais:Distance ( geometry, geometry )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 )corretosn80Roteiro para Nota MximaImplementar as seguintes consultas de processamento geomtrico:Centroid (geometry)Area (geometry)Length (geometry)PointOnSurface (geometry)Boundary (geometry)Buffer (geometry, double, [integer])Intersection (geometry, geometry)Difference (geometry, geometry)GeomUnion (geometry, geometry)n81

81


Recommended