2. OpenGIS Consórcio entre companhias, universidade e agências governamentais • Objetivo: promover o desenvolvimento de tecnologias que facilitem a interoperabilidade entre sistemas envolvendo informação geoespacial • Os produtos do trabalho do OGC são apresentados sob forma de especificações de interfaces e padrões de intercâmbio
3. Alguns Padrões Algumas especificações OGC: GML (Geography Markup Language): intercâmbio de dados OWS (OGC Web Service): especificações de serviços WEB WFS: Web FeatureService WMS: Web MapServer SFSQL (Simple Feature Specification For SQL): especificações sobre o armazenamento e recuperação de dados espaciais em SGBD’s OR
5. WKT – Well Known Text for geometry Existe uma gramática que define como representar textualmente todos as diferentes instâncias de geometrias. Exemplos:
6. WKB – Well Known Binary for geometry Existe também uma versão binária para representar as geometrias. Pode ser usada na especificação do armazenamento
7. Relações Topológicas Matriz de 4-interseções para relacionamentos topoloógicos ente regiões Definida com base na matriz de interseção entre a borda e o interior de duas regiões A e B
15. Características Vantagens Pesquisas poderão usar índices comuns Desvantagens Dados espalhados em mais de uma tabela exigem joins, o que pode degradar o desempenho Espaço de armazenamento
17. Características Vantagens Todo dado necessário para representar a geometria está numa única coluna Bom desempenho para armazenar e recuperar Desvantagens Exige uma estrutura elaborada de índices
18. Chegando num consenso Geralmente são armazenados em BLOB Gera-se um índice baseado no menor retângulo que envolve toda a geometria, geralmente chamado de retângulo envolvente, envelope ou extent
19. Dinâmica de uma consulta Executa uma busca pelo envelope (retângulo envolvente) Seleciona-se os candidatos (contidos no envelope de pesquisa) Executa uma consulta mais apurada utilizando algoritmos de pesquisa espacial
20. Exemplo busca espacial com AO var stateFeature = stateFeatureClass.GetFeature(14); var queryGeometry = stateFeature.Shape; var spatialFilter = newSpatialFilterClass(); spatialFilter.Geometry = queryGeometry; spatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects; var highwayCursor = highwayFeatureClass.Search(spatialFilter, false); IFeaturehighwayFeature = null; while ((highwayFeature = highwayCursor.NextFeature()) != null) { Stringname = Convert.ToString(highwayFeature.get_Value("HighwayName")); Console.WriteLine("Highwayfound: {0}", name); } Marshal.ReleaseComObject(highwayCursor);
21. Exemplo busca espacial com SQL select * from lote a where touches(a.geometry, ( select b.geometry from lote b where b.id = 2)); select * from lote a wherewithin(a.geometry, ( selectb.geometryfrom quadra b whereb.id = 1)); select* from lote a wherecontains(( selectb.geometryfrom quadra b whereb.id = 1) ,a.geometry)