Este artigo foi traduzido por máquina.

Por baixo da mesa

Visualizando dados espaciais

Bob Beauchemin

No SQL Server 2008, a Microsoft introduziu suporte dados espaciais com dois novos tipos de dados interno, geometria e Geografia. Embora você poderia “ Consulte ” dados espaciais colunas em três formatos — Well-Known Text, Well-Known binário e geográfico Markup Language (GML) — maneira somente interna para visualizar seus dados em um mapa foi via na guia resultados espaciais que foi adicionada ao SQL Server Management Studio. Esse era um benefício para os desenvolvedores que foram visualizando dados geométricos mesmo não relacionados a um mapa ou mapa polígonos (Geométrico layout de um depósito, talvez), mas se você tivesse uma coleção de pontos com locais de cidades, você pôde ver somente os pontos. Para adicionar um “ mapa base ” (por exemplo, um mapa do mundo para seus locais de cidade de camada), você poderia usar a sintaxe UNION ALL com uma instrução SELECT e visualizar com a guia espaciais resultados:

SELECT city_name, geog FROM cities
UNION ALL 
SELECT NULL, geog FROM map_of_the_world_table;

Mas o SQL Server Management Studio é uma ferramenta de administrador e o programador. Você gostaria de visualizar seus dados de relatórios que está produzindo para gerenciamento. É mais fácil ver tendências quando elementos gráficos estão envolvidos e como primeira lei de geografia estados de Waldo Tobler, “ tudo está relacionado a tudo, mas coisas mais perto estão mais intimamente relacionadas. ” Neste artigo, quero mostrar três novas entradas na cena de visualização espacial SQL Server: o controle de mapa do SQL Server 2008 R2 Reporting Services (SSRS), o produto ESRI MapIt e o suplemento MapPoint para o SQL Server 2008.

Controle de estrutura de serviços de relatório

Visualizações do mapa usam um conceito de camada. Plano de fundo ou mapa base (por exemplo, o mapa do mundo) é sobreposto com uma ou mais camadas de informações espaciais e informações de banco de dados. Informações espaciais podem consistir em conjuntos de polígonos como regiões de vendas, linestrings como estradas ou rios ou pontos como armazenar locais. Um dos tipos mais comuns de mapa para analisar dados comerciais é um choropleth um mapa temática na qual as áreas são sombreadas em proporção à variável estatístico que você gostaria de analisar. Por exemplo, um mapa de choropleth mostrando as vendas por estado nos Estados Unidos pode parecer a captura de tela do Figura 1. Adicionar uma segunda camada mostra o local de suas lojas e ter outra camada de análise disponível.


Figura 1 do Mapa de Choropleth de vendas nos EUA por estado

Como um programador de relatório, você pode acessar o controle do SQL Server 2008 R2 mapa através de Report Builder 3.0 ou um projeto Reporting Services em Business Intelligence Development Studio (BIDS). A estrutura aparece como uma das opções no modelo principal Report Builder. Em um projeto de APOSTAS, você deve adicionar um controle de mapa para um relatório arrastando-o na caixa de ferramentas. De qualquer forma, o Assistente de mapa orienta os fundamentos.

Primeiro, escolha o mapa de base usando a caixa de diálogo nova camada do mapa. Mapa base pode vir de galeria de mapa interna, um shapefile ESRI (um formato de dados padrão para representar dados geospatial) ou uma consulta espacial do SQL Server. Isso é mostrado no do Figura 2.


Figura 2 nova estrutura camada Dialog no SSRS 2008 R2

Se você escolher uma consulta espacial do SQL Server, você irá obter dados de mapa de uma coluna em uma tabela espacial. O assistente orienta criando uma conexão de dados quando você estiver criando uma consulta com o criador. Sua consulta deve conter pelo menos uma coluna de dados tipo geometria ou Geografia ou você obterá um erro. Próxima caixa de diálogo, escolher dados espaciais e opções de exibição de mapa, permite que você escolha um campo espacial (no caso de sua consulta inclui vários campos espaciais) e um tipo de camada como mostrado no do Figura 3. Normalmente, uma coluna em uma tabela espacial conterá todos os pontos, todos os linestrings ou todos os polígonos e Assistente mapa examina os dados e retorna o tipo do tipo de camada corresponde. Você pode alterar o tipo de camada; no entanto, se você escolher um campo que contém todos os polígonos (ou multipolygons) mas selecione tipo de camada: Ponto, nenhum dado de mapa aparecerá no painel de visualização.  Um bom recurso é a opção para incluir um plano de fundo Bing mapas, portanto, se você tiver dados de ponto, você pode usar mapas Bing peças como plano de fundo mapa base para seu controle de mapa. Com mapas Bing lado a lado como plano de fundo, você pode escolher o modo de estrutura de rua, satélite ou híbrido. Se você escolher Bing mapas, seus dados espaciais irão ser em camadas na parte superior da camada base Bing mapa.


Figura 3 Escolher opções de mapa e dados espaciais

Depois que tiver definido sua camada base ou camadas, estiver apresentada com um conjunto de opções de tipo de mapa, que variar se seus dados espaciais consistem em pontos, linestrings ou polígonos. Por exemplo, se sua camada contém polígonos, você pode escolher entre mapa básica (apenas os espaciais dados que você selecionou), Color Analytical Map (o choropleth mapeia mencionado onde anterior a cor de cada polígono é baseada em uma variável analítica), ou Bubble Map (onde um símbolo no Centro de cada área é dimensionado proporcionalmente por uma variável analítica). Dados linestring dará a opção de estrutura de linha básica ou mapa Line Analytical. Dados de ponto dará a opção de mapa básico do marcador, analítico mapa de marcador ou mapa de bolhas. O mapa de choropleth do Figura 1 é um mapa de cores Analytical produzido pelo assistente.

Escolhendo uma cor analítica ou de bolhas mapa leva a um painel que permite que você selecione a coluna de dados para analisar. Este dados podem estar no mesmo dataset como seus dados espaciais ou em um dataset diferente com um campo relacionado. Por exemplo, você pode ter uma tabela que contém informações de estado e outra tabela que contém TotaisDeVendas para cada estado. Embora apenas os dados da forma de mapa podem vir de shapefiles, mapa galeria ou tabelas espaciais do SQL Server, os dados analíticos podem vir de qualquer fonte de dados SQL Server Analysis Services.

Depois que você escolheu sua fonte de dados analítica, se necessário, o painel final permite que você escolha aspectos de visualização comuns, como o tamanho das bolhas em um bolhas mapa ou polígono cores, para visualizar dados.  Você também pode escolher se rótulos ’ camadas aparecerá. Por exemplo, se seu mapa consiste em polígonos que representam formas de estados, o rótulo pode ser o nome do estado.  Tenha em mente que os rótulos aparecem apenas no polígonos onde o polígono é grande o suficiente para manter o texto.

Claro, como com baseada em Assistente desenvolvimento em geral, o Assistente somente cobrem a superfície do que você pode fazer. A parte do mapa do controle está contida em um visor, que é um controle separado impõe limites do mapa na página de relatório. As propriedades do controle mapa são divididas aproximadamente em Propriedades de visor, propriedades de mapa e propriedades da camada. Você pode alterar as propriedades usando menus de contexto ou uma exibição mais detalhada fornecido no Properties. O conjunto de propriedades que você vê na janela de propriedades correspondente dependem em que parte do controle do mapa tem o foco.

Projeção de mapa é especificada nas propriedades do visor. Suas escolhas dependem do tipo de coluna espacial que você está usando na camada e é importante perceber como seus dados e a SRID (ID de referência espacial) afeta sua escolha.  Para iniciar com o caso mais simples, suponha que você queira um mapa do layout do depósito da empresa (um depósito físico onde as mercadorias são armazenadas, não um depósito de dados). Você provavelmente gostaria medir o depósito, desenhar uma planta baixa e mapear o posicionamento das mercadorias com base em sua localização na planta. Nesse caso, a distância sendo mapeada é tão pequena que não importa o fato de que a Terra é redonda em vez de simples. Você está medindo em termos de um sistema de coordenadas Geométrico (coordenadas X e Y) e tipo de dados de geometria do SQL Server. Nesse caso, definir propriedade de Coordinate System do visor para planar.

Caso mais comum é que você está plotando posições na Terra em termos de latitude e longitude.  Seus dados de mapa contém latitude e longitude, portanto, provavelmente você está usando o tipo de dados geography.  Para produzir um mapa plano de Terra (que é tecnicamente um spheroid oblate), o controle de mapa fornece um conjunto de mapa projeções. Para usar projeções mapa adequadamente, sua coluna de tipo de dados geography deve estar usando SRID 4326, 4269 ou um os outros comuns relacionados a Terra SRIDs que controlam o mapa está esperando.  Nesse caso, definir propriedade de Coordinate System do visor para Geographic e escolha uma projeção de mapa como lista de propriedade de projeção do visor.

O último caso é quando seus dados é usando um sistema de coordenadas projetado. Nesse cenário, você está usando o tipo de dados de geometria do SQL Server, não Geografia. O controle de mapa não fará nada para projeto dados, porque as informações de projeção já são parte do próprio tipo de dados. SRIDs comuns para o sistema de coordenadas projetado incluem a projeção de dados de estado plano ou britânica Grid nacional.  Nesse caso, definir propriedade de Coordinate System do visor para planar.

O motivo menciono tudo isso é que, exceto para projeção Geografia coordenadas (que são considerados 4326 - coordenadas WGS84,) controle mapa não será automaticamente reproject entre diferentes sistemas de coordenada. Por exemplo, você não pode misturar um Bing mapas Ladrilho Layer (geográfica) com um britânica National grade Layer (planar) no mesmo mapa.  O resultado não seria muito.

Vitória grande com Reporting Services 2008 R2 mapa controle do é que os dados espaciais do SQL Server são visualizable automaticamente em uma variedade de formatos de mapa. Correlações entre dados comerciais e dados espaciais são fáceis de realizar com o assistente e todos os energia adicional que você precisa está disponível com um host de personalizações através das propriedades. Um dos meus recursos favoritos (nonspatial) do controle mapa é a capacidade de habilitar o drilldown pelo mecanismo de “ ação ” normal no SQL Server Reporting Services. Simplesmente selecione a guia ação na caixa de diálogo Propriedades do mapa e pode vincular relatórios que contenham mapas que mostram vendas por país em um mapa World, em seguida, aprofundar em estado ou região, em seguida, a cidade. No nível cidade, você poderia adicionar uma camada de ponto com o local de suas lojas. Para obter informações adicionais sobre como preparar e usar dados espaciais com o controle de mapa do SQL Server 2008 R2 Reporting Services, consulte blog excelente série de Ed Katibah começando em blogs.msdn.com/edkatibah/archive/2009/05/09/cartographic-adjustment-of-spatial-data-for-sql-server-reporting-services-part-1.aspx .

Produto de MapIt ESRI

ESRI, empresa de GIS à esquerda do mundo, lançado um produto chamado MapIt na sua conferência de usuários de 2009. MapIt é realmente um conjunto de componentes que tornam mais fácil trabalhar com dados comerciais existentes que envolve local. Este produto diretamente produz e consome os tipos de dados espaciais do SQL Server 2008, portanto, nenhum software ESRI adicional é necessário usá-lo.

O exemplo mais comum de dados comerciais baseados em local é dados endereço e forma MapIt inclui um programa, o espaciais dados Assistant, que executa geocodificação nos dados de endereço em formatos diferentes. O Assistente de dados espaciais irá adicionar uma nova coluna de Geometry qualquer tabela do SQL Server com endereços e o preencher por chamada serviços baseados na Web. Você tem uma escolha do serviço de mapa ESRI ou o serviço Bing mapas geocodificação. Depois que os dados existentes são atualizados, você pode usar geocodificação um disparador para manter o local em sincronia. Um exemplo de um disparador está disponível no site de suporte MapIt.

Para exibir seus dados comerciais juntamente com outras camadas do mapa (por exemplo, endereços de alunos juntamente com uma camada consiste escola limites), você precisará importar as informações de localização adicional para o SQL Server 2008. O Assistente de dados espaciais pode importar dados GIS existentes no formato ESRI Shapefile ou conjuntos de ESRI livre mapeiam dados disponíveis online. Na importação, você está permitido alterar a projeção de dados para corresponder à projeção usada por mapas Bing ou o servidor ARCGIS. Você mesmo pode especificar a SRID de sua escolha de uma lista de SRIDs com suporte. A função de importação produz uma coluna de geometria do SQL Server da tabela importada.

Depois de ter seus dados comerciais e outros dados de camada de mapa no SQL Server, você pode visualizar em seus próprios programas. ESRI fornece um livre Silverlight e Windows Presentation Foundation (WPF) API que pode ser usada para criar aplicativos baseados em Windows e Web sofisticada. Para habilitar o uso de dados espaciais do SQL Server com essas APIs, MapIt inclui um baseados em REST espaciais serviço de dados, que permite expor pontos de um ou mais Web extremidade que produzem JSON ou HTML de saída no formato consumir APIs do Silverlight.  Ele inclui um diretório de serviços de dados espaciais que permite que você procure suas tabelas e modos de exibição e aqueles que incluem colunas de geography e geometry da consulta. Depois de decidir em dados que você gostaria de usar no seu mapa, simplesmente copie a tabela ou URL do modo de exibição do local de diretório espaciais Data Services e cole-o em um aplicativo que usa a API. Aqui está um exemplo de expor endereços Customer no banco de dados AdventureWorks2008 usando o serviço data espaciais com uma exibição Sales.vIndividualCustomerSpatial que criei adicionando a coluna SpatialLocation para uma exibição existente AdventureWorks2008 ( do Figura 4). Este mapa inclui um dos meus recursos favoritos — adicionando um componente de cluster para cluster pontos em resoluções inferiores do mapa. Como aprofundar em resoluções mais altas mapa, clusters ponto são visíveis como pontos individuais.

Figura 4 usando o serviço de dados espaciais com uma exibição

<!--UserControl element and namespace declarations elided for clarity -->
<Grid x:Name="LayoutRoot">
    <esri:Map x:Name="MyMap" >
        <esri:Map.Layers>
            <esri:ArcGISTiledMapServiceLayer ID="StreetMapLayer"
                Url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_
StreetMap_World_2D/MapServer"/>
                <esri:FeatureLayer ID="MyFeatureLayer"
                    Url="http://zmv10/SDS/databases/AdventureWorks2008/Sales.
vIndividualCustomerSpatial"
                Where="CountryRegionName = 'United States'">
                <esri:FeatureLayer.Clusterer>
                    <esri:FlareClusterer FlareBackground="#99FF0000"
                        FlareForeground="White" MaximumFlareCount="9" />
                    </esri:FeatureLayer.Clusterer>
                </esri:FeatureLayer>
            </esri:Map.Layers>
        </esri:Map>
</Grid>

Este código produz os resultados mostrados na do Figura 5. Observe que pode misturar e corresponder ao SQL Server 2008 base de dados espaciais camadas com ARCGIS ou mapas Bing mapa camadas, bem como outras camadas que você importou com o Assistente de dados espaciais. Por exemplo, você pode adicionar uma camada contendo endereços do vendedor para visualizar o local dos seus vendedores vis à vis seus clientes. Um tipo de camada também está disponível para gráficos e uma superfície de desenho é suportada na API ainda mais o mapa interatividade. Finalmente, há camadas especializadas disponíveis no site de suporte a ESRI para GEORSS e KML. Eu já mal superficialmente a funcionalidade da API.  Para obter mais informações sobre a API de WPF e Silverlight, consulte de resources.esri.com/arcgisserver/apis/silverlight/index.cfm .


Figura 5 gerados MapIt mapa com cliente locais Mostrar Point Clustering

Convém fornecer mapas profissional com base em dados do SQL Server sem incorrer no custo de programação e manutenção de um aplicativo Silverlight ou WPF. MapIt inclui uma Web Part que permite adicionar mapas para sites do SharePoint com nenhuma programação. Você pode incluir dados espaciais de:

  • Listas do SharePoint que incluem endereços ou campos de latitude/longitude
  • Dados espaciais do SQL Server expostos com o Assistente de dados espaciais
  • Dados de servidor de ARCGIS

Editar uma instância a Web Part do SharePoint ESRI permite importar camadas de dados espaciais fornecendo um nome de lista do SharePoint ou URL. Você pode usar mapas Bing ou ARCGIS Server como um mapa de base. Caixas de diálogo adicionais permitem que você especifique expressões de filtro, definir pop-ups que exibem informações adicionais como focalize pontos individuais (esses são conhecidos como MapTips na API do Silverlight), escolha simbologia barras e adicionar ponto de cluster clicando em uma caixa de seleção. Os mapas irão atualizar para exibir as informações mais atuais, se você tiver de alterar dinamicamente a dados. Você pode configurar a atualização de dados e cache em um nível de Web Part individual ou globalmente para o serviço de dados espaciais.

Suplemento do MapPoint 2010 para SQL Server 2008

É o Microsoft MapPoint do original oferecendo no território de visualização de dados espaciais comerciais e consultas de local. Um dos seus pontos fortes é MapPoint vem com uma coleção de informações de mapa de vários níveis que funciona em um modo offline, bem como permitindo que você adicionar suas próprias camadas espaciais rich. As versões mais recentes do MapPoint mesmo vêm com integração de GPS. Em agosto de 2009, a Microsoft lançou um livre MapPoint suplemento para dados espaciais SQL Server 2008, que torna fácil adicionar as camadas de informações baseadas no SQL Server, executar consultas espaciais contra os dados e as camadas e salvar o produto final disco para refinamento adicional.  A versão salva do mapa pode ser distribuída sem exigir acesso ao SQL Server para usar.

O suplemento baseado no WPF usa uma conexão direta do ADO.NET para falar com o SQL Server. Depois que você se conectar à instância do SQL Server e o banco de dados que contém seus dados espaciais na guia Adicionar camada (mostrada em do Figura 6), escolha uma tabela que contém uma coluna para usar como sua camada espacial. Você pode reduzir a quantidade de dados que são retornados (e portanto fazer camada preencher mais rápido) limitando recursos a extensão de mapa atual, bem como selecionar um subconjunto de colunas e generalizar os dados que são retornados. Você também pode especificar uma cláusula SQL WHERE em sua consulta. A interface de consulta foi projetada para velocidade máxima; para garantir que o índice espacial é usado, você pode escolher usar uma expressão de tabela comum para consultas mais complexas.  Obviamente, uma caixa de diálogo é fornecida que oferece controle completo da simbologia de barras.


Figura 6 suplemento MapPoint Adicionar camada Dialog

O mapa dicas que aparecem quando você selecionar recursos espaciais como pontos incluem todos os dados na tabela que você especificou. Este dados é “ live, ” que é, você pode editar os dados correspondentes para tabelas individuais recurso espacial e dados atualizados serão salvas no banco de dados quando você acerta botão Salvar. Você pode até mesmo adicionar novos recursos (linhas contendo dados espaciais) ou excluir recursos diretamente do suplemento.

Finalmente, você pode refinar as consultas com base em uma camada de dados espaciais existente. Por exemplo, uma vez, recuperei um conjunto de escola locais com base em uma extensão de mapa corresponde aproximadamente a Minhas limites de cidade, pode consultar que definir localizar escolas dentro uma milha de minha casa. Ou, pode consultar qualquer dos outros campos que eu recuperei. Cada consulta adicional será trazer de volta uma camada adicional e ocultar, mostrar e refinar seus camadas antes de salvar o mapa. Quando você salva o mapa, ele não apenas salva as camadas de gráficas, mas também consultas SQL que produziu-los, portanto, você pode atualizar seus camadas se alteram os dados. Para consultas de sub-layer SQL gerado é visível na janela antes de executar a consulta. Há um valor de tempo limite configurável de usuário e você pode cancelar executando consultas de camada em andamento. O fato de que você estiver se conectando diretamente ao SQL Server faz a experiência interativa muito mais.  Ainda é um utilitário que permite que você importar dados para SQL Server a partir de arquivos de forma ou arquivos MapInfo .MIF.

Produtos e recursos mencionados aqui são os que mais recentes que expanda as maneiras de usar dados espaciais do SQL Server. Além disso, FME do software de segurança para o produto SQL Server 2008 está integrado com o Integration Services SSIS (SQL Server) para permitir espacial ETL em fluxos de trabalho do SSIS. Talvez o próximo lançamento do SQL Server irá ver mais integração com SQL Server Analysis Services e até mesmo recursos de mineração de dados. O suporte de visualização internos e de terceiros expande a utilidade de dados local além de analisar endereços, para tornar os dados comerciais comuns vêm alive.

Bob Beauchemin é um aplicativo centrado em banco de dados profissional e arquiteto, autor do curso e instrutor, escritor e parceiro habilidades de desenvolvedor em SQLskills. Ele escreveu livros e artigos no SQL Server, acesso a dados e tecnologias de integração e segurança de banco de dados. Você pode entrar em bobb@sqlskills.com de .