Utilizar o GeoServer

Publicado: 04/03/2012 em Linux, Programação, Serviços IP
Tags:, ,

Logo GeoServerUtilizar o GeoServer é muito fácil, onde existe um bom tutorial de uso no próprio site oficial da solução.

Aqui descreveremos alguns detalhes complementares da utilização desta ferramenta, considerando a instalação do GeoServer descrita no post Instalar Geoserver no Linux – Debian. Em particular, a instalação realizada com o container Java Jetty e GeoServer respondendo em http://localhost:8080/geoserver .

1. Adicionar um Shapefile ao GeoServer
Um bom material descritivo está na página do GeoServer em Adding a Shapefile.

1.1. Baixar um Shapefile de exemplo
Um bom exemplo de arquivo Shapefile para fazer o download é o arquivo nyc_roads.zip.

1.2. Descompactar o arquivo

$ unzip nyc_roads.zip

Com isto, serão criados 4 arquivos:
nyc_roads.dbf
nyc_roads.prj
nyc_roads.shp
nyc_roads.shx

Entendendo um pouco mais:
a) Arquivos obrigatórios:

  • .shp — formato shape; a própria geometria do perfil.
  • .shx — formato shape index; um index posicional da geometria para permitir buscas rápidas para a frente e para trás.
  • .dbf — formato dos aributos; atributos disponibilizados em colunas para cada perfil, em formato dBase IV.

b) Arquivo complementar:

  • .prj — formato da projeção; o sistema de coordenadas e informações da projeção, um arquivo texto simples.

O formato shapefile não permite especificar a projeção dos dados do mapa. Como uma alternativa a ESRI, inventou-se uma outra extensão de arquivo chamado “. prj”, que é uma abreviação para “projeção”. O arquivo “prj” contém uma string WKT (“Well-Known Text”) (*) que possui todos os parâmetros para a projeção do mapa. O formato é bastante simples e foi criado pelo Consórcio Open GIS.

(*) Well-Known Text (WKT) é uma linguagem de marcação de texto para representar objetos geométricos vetoriais em um mapa, sistemas de referência espacial de objetos espaciais e transformações entre sistemas de referência espacial.

1.3. Mover o Shapefile para a pasta de dados do GeoServer
Mover os arquivos para uma pasta abaixo da pasta root de dados do GeoServer, por exemplo, “nyc_roads”. Ou seja, dentro de <GEOSERVER_DATA_DIR>/data/ , onde <GEOSERVER_DATA_DIR> é justamente esta pasta root. No caso da instalação anteriormente realizada do GeoServer, o valor de <GEOSERVER_DATA_DIR> é /opt/geoserver-2.1.3/data_dir/ . Assim, o caminho completo é /opt/geoserver-2.1.3/data_dir/data/nyc_roads/


# mkdir /opt/geoserver-2.1.3/data_dir/data/nyc_roads/
# cp nyc_roads.* /opt/geoserver-2.1.3/data_dir/data/nyc_roads/.

OBS: O “GeoServer data directory” é a localização no sistema de arquivos onde GeoServer armazena toda a sua configuração. Esta configuração define coisas como: Que dados são servidos por GeoServer? Onde é que os dados estão localizados? Como devem os serviços, tais como WMS e WFS interagir com esses dados e servidor? O diretório de dados também contém uma série de arquivos de suporte usados pelo GeoServer para diversos fins.

Em geral, os usuários não precisam saber sobre a estrutura do diretório de dados. Mas é uma boa idéia para definir um diretório de dados externo, quando destinados à produção, para torná-lo mais fácil de atualizar.  Para maiores informações veja GeoServer Data Directory.

1.4. Criar um novo Workspace, um Store e demais procedimentos
Seguir o tutorial descrito na documentação do OpenLayer, até tornar possível a visualização do Layer através do GeoServer.

2. Adicionar uma tabela PostGIS ao GeoServer
Um bom material descritivo está na página do GeoServer em Adding a PostGIS Table.

2.1. Baixar um arquivo de exemplo
Um bom exemplo de arquivo para se fazer download é o arquivo nyc_buildings.zip. Ele contém um dump do PostGIS de um subconjunto de construções da cidade de Nova York e que será utilizado neste tutorial.

2.2. Descompactar o arquivo

$ unzip nyc_buildings.zip

2.3. Criar uma base de dados PostGIS chamada “nyc”.

postgres$ createdb -T postgistemplate -O gis nyc

2.4. Importar nyc_buildings.sql para a base de dados “nyc”

$ psql -d nyc -h localhost -U gis -f nyc_buildings.sql

Depois é seguir o término do tutorial descrito no site do GeoServer até ter a visualização do Layer. Ou seja, realizar os seguintes passos:
a) Criar uma nova “data store”;
b) Configurar o “layer”
c) Realizar o “preview” da camada de construções da cidade de NY.

3. Estilizando os mapas com o Geoserver
A estilização é realmente importante em “web mapping”. Um mapa não pode ser renderizado sem um estilo estar associado aos dados. Existe um padrão da OGC para estilização de “layers” que o GeoServer utiliza. Este padrão descreve a estrutura dos documentos e quais regras podem ser utilizadas. Um documento contendo definições de símbolos e regras de desenho é chamado de “Styled Layer Descriptor” (SLD) e é um arquivo texto/XML (no caso do Geoserver sua extensão é .sld).

SLD – Styled Layer Descriptor – é um esquema XML especificado pelo Open Geospatial Consortium (OGC) para descrever a aparência de camadas de mapas. Ele é capaz de descrever a renderização de dados vetoriais e raster. Um uso típico de SLD é instruir um “Web Map Service” (WMS) de como renderizar uma camada específica. O SLD é uma linguagem de marcação baseada em XML e é muito poderosa. O GeoServer utiliza o SLD para as configurações de “styling”. O documento oficial de especificação SLD pode ser baixado diretamente do site da OGC.

Os arquivos SLD do Geoserver estão armazenados na pasta /var/lib/tomcat6/webapps/geoserver/data/www/styles/ e podem ser alterados através da utilização de qualquer editor de texto padrão. Ou ainda, editados no próprio ambiente de administração do Geoserver (data –> styles) que fornece uma GUI simples para visualização e edição de arquivos XML contendo regras de estilização. No próprio site do Geoserver existe uma extensa explicação e exemplos de arquivos SLD. Abaixo deixamos um exemplo típico de arquivo SLD:

<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0"
  xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd"
  xmlns="http://www.opengis.net/sld"
  xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <!-- a Named Layer is the basic building block of an SLD document -->
    <NamedLayer>
      <Name>default_polygon</Name>
      <UserStyle>
      <!-- Styles can have names, titles and abstracts -->
        <Title>Default Polygon</Title>
        <Abstract>A sample style that draws a polygon</Abstract>
        <!-- FeatureTypeStyles describe how to render different features -->
        <!-- A FeatureTypeStyle for rendering polygons -->
        <FeatureTypeStyle>
          <Rule>
            <Name>RA-I</Name>
            <ogc:Filter>
              <ogc:PropertyIsEqualTo>
                <ogc:PropertyName>romano</ogc:PropertyName>
                <ogc:Literal>I</ogc:Literal>
              </ogc:PropertyIsEqualTo>
            </ogc:Filter>
            <PolygonSymbolizer>
              <Fill>
                <CssParameter name="fill">#00C611</CssParameter>
              </Fill>
              <Stroke>
                <CssParameter name="stroke">#000000</CssParameter>
                <CssParameter name="stroke-width">2</CssParameter>
              </Stroke>
            </PolygonSymbolizer>
            <TextSymbolizer>
              <Label>
                <ogc:PropertyName>ra_30_nome</ogc:PropertyName>
              </Label>
            </TextSymbolizer>
          </Rule>
        </FeatureTypeStyle>
        <FeatureTypeStyle>
          <Rule>
            <Name>RA-II</Name>
            <ogc:Filter>
              <ogc:PropertyIsEqualTo>
                <ogc:PropertyName>romano</ogc:PropertyName>
                <ogc:Literal>II</ogc:Literal>
              </ogc:PropertyIsEqualTo>
            </ogc:Filter>
            <PolygonSymbolizer>
              <Fill>
                <CssParameter name="fill">#70AD19</CssParameter>
              </Fill>
              <Stroke>
                <CssParameter name="stroke">#000000</CssParameter>
                <CssParameter name="stroke-width">2</CssParameter>
              </Stroke>
            </PolygonSymbolizer>
          </Rule>
        </FeatureTypeStyle>
      </UserStyle>
    </NamedLayer>
</StyledLayerDescriptor>

4. Referências
1- Geoserver: Introduction to SLD
2- Geoserver: SLD Reference
3- Geoserver: Exemplos arquivos SLD
4- OGC: Styled Layer Descriptor

Anúncios
comentários
  1. Cárita disse:

    Muito boa a portagem.

Deixe um comentário, pois isto é muito motivante para continuarmos este trabalho

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s