Lucas's profileLucas Souza [MCP | MCTS ...PhotosBlogListsMore ![]() | Help |
|
|
August 08 Utilizando dados espaciais no SQL Server 2008 (Parte 02)A Paz do Senhor Esteja Convosco, No artigo anterior falamos qual a importância dos dados espaciais em nossas aplicações, porque e quando devemos utilizar, o que é o plano geométrico e suas dimensões, qual diferença dos tipos de dados geometry e geography os quais são novos tipos de dados que estão presente no SQL Server 2008 e por último vimos quais são os tipos específicos para cada tipo de dados existente. Ao termos conhecido as diferenças dentre os tipos de dados geometry e geography o que nos resta neste momento é conhecermos quais são os diferentes formatos que podem ser utilizados para representar os dados espaciais, existe exatamente três: 1. The Well-Known-Binary (WKB) format 2. The Well-Known-Text (WKT) format 3. The Geography Markup Language (GML) data format. Todos os formatos mostrado acima foram publicados pela Open Geospatial Consortium (OGC) o qual é lider dos padrões geoespaciais e serviços baseados em locazalições. 1. The Well-Known-Binary (WKB) format : Este é o formato binário pelo qual representa a instância do tipo de dados geography, é um dos formatos preferidos serializados das aplicações que necessitam armazenar informações geoespacial em compactação.
2. The Well-Known-Text (WKT) format: Este formato é compacto, ou melhor nos garante uma leitura fácil, isto porque é um formato amigável e o mais comum para se usar em consultas geoespaciais.
3. The Geography Markup Language (GML) data format: Este formato representa o padrão (XML), o qual é a melhor alternativa para incluir informações geoespaciais em documentos XML. Este formato é útil em aplicações onde é necessário alterar informações geoespaciais por meios de XML Web Service. Os padrões conforme foi ilustrado acima nos oferece vastas vantagens, o que precisa ser analisado é: Qual deles se comportaria de melhor forma em nossas aplicações. Os dados espaciais também suportam algumas funções, atualmente existem mais de 60 nos tipo de dados geometry e geography. STDifference -- Results: POLYGON ((10 10, 40 10, 40 26.666666666666668, 20 20, 26.666666666666668 40, 10 40, 10 10)) DECLARE @g geometry = 'POLYGON((10 10, 40 10, 40 40, 10 40, 10 10))' DECLARE @h geometry = 'POLYGON((20 20, 50 30, 50 50, 30 50, 20 20))'
SELECT @G.STDifference(@H).ToString();
STIntersects -- Results: POLYGON ((30 30, 40 30, 40 40, 30 40, 30 30)) DECLARE @g geometry = 'POLYGON((10 10, 40 10, 40 40, 10 40, 10 10))' DECLARE @h geometry = 'POLYGON((30 30, 50 30, 50 50, 30 50, 30 30))'
SELECT @g.STIntersection(@h).ToString();
STSymDifference -- Results: MULTIPOLYGON (((50 30, 50 50, 30 50, 40 40, 50 30)), ((10 10, 40 10, 40 40, 10 40, 10 10))) DECLARE @h geometry = 'POLYGON((40 40, 50 30, 50 50, 30 50, 40 40))'
SELECT @g.STSymDifference(@h).ToString();
STUnion -- Results: MULTIPOLYGON (((50 30, 50 50, 30 50, 40 40, 50 30)), ((40 10, 40 40, 10 40, 20 20, 40 10))) DECLARE @g geometry = 'POLYGON((20 20, 40 10, 40 40, 10 40, 20 20))' DECLARE @h geometry = 'POLYGON((40 40, 50 30, 50 50, 30 50, 40 40))'
SELECT @g.STUnion(@h).ToString();
-- Results: MULTILINESTRING ((40 40, 30 30), (25 25, 8 8)) DECLARE @g geometry = 'LINESTRING(8 8, 40 40)' DECLARE @h geometry = 'POLYGON((25 25, 15 30, 30 30, 30 15, 25 25))'
SELECT @g.STDifference(@h).ToString(); ![]() Figura 1.4 (Function – Blended Types)
-- Results: 400 | 121.28990204492 SELECT @g.STArea(), @g.STLength()
STCentroid -- Results: POINT (20 30) DECLARE @g GEOMETRY = 'POLYGON((10 10, 10 40, 40 40, 10 10))' SELECT @g.STCentroid().ToString() TrackbacksThe trackback URL for this entry is: http://souzalucas.spaces.live.com/blog/cns!289B02192542DA52!540.trak Weblogs that reference this entry
|
|
|