circulares notaveis para o transporte aereo, casos em que a distorcao inerente em um modelo plano causaria niveis inaceitaveis de imprecisao.O Tipo de Dado geometry O tipo de dado geometry fornece uma estrutura de armazenamento para dados espaciais definida por coordenadas em uma superficie plana arbitraria. Esse tipo de dado e comumente usado em sistemas de mapeamento regional, como o sistema de superficie plana de estado definido pelo governo dos Estados Unidos, ou para mapas e plantas baixas interiores, em que a curvatura da Terra nao precisa ser considerada. O tipo de dado geometry fornece propriedades e metodos que sao alinhados ao Simple Features Specification for SQL do OGC (Open Geospatial Consortium - Consorcio Geoespacial Livre) e permitem realizar operacoes com dados geometricos que produzem um comportamento de padrao industrial.Metodos dos Tipos de Dados Espaciais Ambos os tipos de dados espaciais no SQL Server 2008 fornecem um conjunto abrangente de metodos de instancia e estaticos que voce pode usar para fazer consultas e operacoes com dados espaciais. O exemplo de codigo a seguir cria duas tabelas para uma aplicacao de mapeamento de cidade; uma contem valores geometricos para os distritos da cidade e a outra contem valores geometricos para as ruas da cidade. Uma consulta entao recupera as ruas e os distritos que elas cruzam.CREATE TABLE Districts ( DistrictId int IDENTITY (1,1),DistrictName nvarchar(20), DistrictGeo geometry);GOCREATE TABLE Streets ( StreetId int IDENTITY (1,1), StreetName nvarchar(20), StreetGeo geometry);GOINSERT INTO Districts (DistrictName, DistrictGeo)VALUES ('Downtown',geometry::STGeomFromText('POLYGON ((0 0, 150 0, 150 150, 0 150, 0 0))', 0));INSERT INTO Districts (DistrictName, DistrictGeo)VALUES ('Green Park',geometry::STGeomFromText('POLYGON ((300 0, 150 0, 150 150, 300 150, 300 0))', 0));INSERT INTO Districts (DistrictName, DistrictGeo)VALUES ('Harborside',geometry::STGeomFromText('POLYGON ((150 0, 300 0, 300 300, 150 300, 150 0))', 0));INSERT INTO Streets (StreetName, StreetGeo)VALUES ('First Avenue',geometry::STGeomFromText('LINESTRING (100 100, 20 180, 180 180)', 0))GOINSERT INTO Streets (StreetName, StreetGeo)VALUES ('Mercator Street', geometry::STGeomFromText('LINESTRING (300 300, 300 150, 50 50)', 0))GOSELECT StreetName, DistrictNameFROM Districts d, Streets sWHERE s.StreetGeo.STIntersects(DistrictGeo) = 1ORDER BY StreetNameOs resultados dessa consulta sao mostrados na tabela a seguir.Recursos dos Dados Espaciais de Alto Desempenho Os tipos de dados espaciais do SQL Server 2008 sao implementados como tipos do sistema CLR. O SQL Server 2008 aumenta o tamanho maximo para tipos de dados CLR no banco de dados, de 8000 bytes, limite imposto pelo SQL Server 2005, para dois gigabytes (2 GB), o que permite armazenar elementos de dados espaciais extremamente complexos, como poligonos, que sao definidos por um grande numero de pontos. Armazenando dados espaciais em tabelas relacionais, o SQL Server 2008 possibilita a combinacao de dados espaciais com qualquer outro tipo de dados de negocios; isso elimina a necessidade de manter um armazenamento separado de dados espaciais dedicados, e permite consultas de alto desempenho que nao precisam combinar dados de multiplas fontes externas. O desempenho das consultas em dados espaciais e ainda melhor com a inclusao do suporte a indice espacial no SQL Server 2008. Voce pode indexar dados espaciais com um indice de grade adaptavel de multiplos niveis, que se integra ao mecanismo de banco de dados do SQL Server. Indices espaciais consistem em uma hierarquia