You are on page 1of 143

Curso GeoServer 1.

Manual de
GeoServer verso
1.7

Curso GeoServer 1.7

Este manual baseado nas seguintes verses de manuais:


- Manual de GeoServer 1.7 Verso em Ingles (http://docs.GeoServer.org/1.7.x/en/user/)
Controlo de Verses
Verso do manual
Manual de GeoServer 1.7IG 1.1 em Portugus
Verso 0

Data

Alteraes introduzidas

18 Novembro 2009

Documento Inicial

Responsvel das Altera

Municpia, E.M., S.A

Curso GeoServer 1.7

Tabela de Contedos
1.

Introduo................................................................................................ 6
1.1 Viso Geral............................................................................................ 6
1.1.1 Histria........................................................................................... 6
1.1.2 Licena............................................................................................ 7
1.2 Getting Involved.................................................................................... 7
1.2.1 Desenvolvimento............................................................................ 7
1.2.2 Documentao................................................................................7
1.2.3 Mailing Lists.................................................................................... 8
1.2.4 IRC.................................................................................................. 8
1.2.5 Bug Traking..................................................................................... 8

2.

Instalao................................................................................................ 9
2.1 Instalar JAVA.......................................................................................... 9
2.2 Instalar o GeoServer..........................................................................11
2.3

3.

Actualizar o GeoServer....................................................................13

Comear com o GeoServer....................................................................17


3.1 Web Administration Interface Quickstart............................................17
3.2 Styling a Map...................................................................................... 20

4.

Directrio de dados do GeoServer.........................................................21


4.1 Introduo directoria de dados........................................................21
4.2 Criar uma nova directoria de dados....................................................25
4.3

5.

Definir a directoria de dados...........................................................26

Web Administration Interface.................................................................29


5.1 Interface basics...................................................................................29
5.2 Admin menu........................................................................................ 29
5.3

Config menu.................................................................................... 30

5.3.1 Web Coverage Service (WCS).......................................................31


3

Curso GeoServer 1.7

5.3.2

Web Map Service (WMS)............................................................33

5.3.3 Web Feature Service (WFS)...........................................................35


5.3.4 Namespace...................................................................................36
5.3.5 Coveragestores............................................................................. 38
5.3.6

Datastores.................................................................................39

5.3.7

Style.......................................................................................... 40

5.3.8

Feature Type..............................................................................42

5.3.9

Coverages.................................................................................44

5.4 Demo Menu......................................................................................... 45


5.4.1 Map Preview..................................................................................45
6.

Trabalhar com os dados.........................................................................48


6.1 Shapefile............................................................................................. 48
6.1.1 Adicionar um Shapefile.................................................................48
6.2 PostGIS................................................................................................ 49
6.2.1 Adicionar uma base de dados PostGIS..........................................49
6.3 Directorias........................................................................................... 52
6.4 External Web Feature Server...............................................................52
6.5 ArcSDE................................................................................................ 54
6.6 Geographic Markup Language (GML)..................................................59
6.7 MySQL................................................................................................. 60
6.8 Oracle................................................................................................. 62
6.9 Prxima gerao Oracle (NG)..............................................................64
6.10 SQL Server........................................................................................ 66
6.11 Vector Product Format.......................................................................68
6.12 Database Connection Pooling............................................................69
6.13 JNDI e connection pools....................................................................70
6.14 Recuperar uma connection pool de um JNDI.....................................71

7.Styling....................................................................................................... 72
7.1 Introduo ao SLD............................................................................... 72
4

Curso GeoServer 1.7

7.2 SLD Cook Book.................................................................................... 74


7.2.1 Pontos........................................................................................... 74
7.2.2 Linhas........................................................................................... 91
7.2.3 Polgonos....................................................................................... 93
7.2.4 Rasters.......................................................................................... 95
7.3 Referencias SLD..................................................................................96
7.3.1 PointSymbolizer............................................................................96
7.3.2 LineSymbolizer..............................................................................98
7.3.3 PolygonSymbolizer........................................................................99
7.3.3 TextSymbolizer............................................................................100
7.3.4 Filtros.......................................................................................... 101
7.3.5 Regras......................................................................................... 103
7.4 Dicas e Truques do SLD.....................................................................105
8.Servios................................................................................................... 109
8.1 Web feature service..........................................................................109
8.1.1 WEB basics.................................................................................. 109
8.1.2 WFS formatos output..................................................................110
8.1.3 WFS vendor parameters.............................................................110
8.1.3 Referncia Web Feature Service..................................................112
8.1.4 WFS Schema Mapping.................................................................118
8.2 Web Map Service...............................................................................122
8.2.1 Formatos de output WMS............................................................122
8.2.2 WMS vendor parameters.............................................................123
8.2.2 WMS reference............................................................................126

Curso GeoServer 1.7

1. Introduo
Este documento contempla todos os aspectos da utilizao do GeoServer, desde a instalao s
funcionalidades mais avanadas.

1.1 Viso Geral


O GeoServer um servidor, um software Open Source escrito em Java e permite aos utilizadores
partilhar e editar dados georeferenciados. Concebido para a interoperabilidade, publica numa base
de dados geografica, uma grande variedade de dados utilizando padres abertos.
Ao ser um projecto community-driven, o GeoServer desenvolvido, testado, e apoiado por um
grupo diversificado de indivduos e organizaes de todo o mundo.
O GeoServer a referncia para a implementao de normas como, Open Geospatial Consortium
(OGC), Web Feature Service (WFS) e Web Map Service (WMS). O GeoServer constitui um
componente central do Geoespacial Web.

1.1.1 Histria
O GeoServer foi iniciado em 2001 pelo The Open Planning Project (TOPP), numa incubadora
tecnolgica sem fins lucrativos com sede em Nova Iorque. Criaram algumas ferramentas que
permitem uma democracia aberta e ajudam a manter o governo mais transparente. A primeira
delas foi o GeoServer, que saiu de um reconhecimento de que um conjunto de ferramentas pode
permitir a participao dos cidados na administrao do planeamento urbano, esta participao
seria reforada pela possibilidade de partilhar dados espaciais.
Os fundadores do GeoServer vislumbraram um Geospatial Web, anlogo ao da World Wide Web,
onde possvel pesquisar e fazer download de textos. Com o Geospatial Web, podemos procurar e
fazer download de dados geogrficos. Os fornecedores de dados so assim capazes de publicar os
seus dados directamente para este site, e os utilizadores podem aceder directamente, por
oposio de indirectos e complicados mtodos de partilha de dados que existem hoje.
As pessoas envolvidas no GeoServer fundaram o Geotools, uma ferramenta Open Source GIS Java
Toolkit. Atravs do Geotools, o suporte aos shapefiles, bases de dados Oracle e Arcsde foram
integrados, e muito mais foi acrescentado.
Quase em simultaneo, enquanto o GeoServer foi fundado, o OpenGIS Consortium (agora o Open
Geospatial Consortium) estava a trabalhar na norma Web Feature Service (WFS). Especificando

Curso GeoServer 1.7

um protocolo para tornar os dados geogrficos disponveis na web, utilizando Geographic Markup
Language (GML), um formato de dados interoperveis. Foi tambm criado um Web Map Service
(WMS), um protocolo para a criao e visualizao de imagens num mapa, criado a partir de dados
geogrficos.
Outros projectos tornaram-se interdependentes. Como o caso do Refractions Research que criou
o PostGIS, uma Base de Dados gratuita e aberta que permitiu ao GeoServer ligar-se de forma livre
a uma base de dados open source. Tambm a MetaCarta criou o OpenLayers, uma ferramenta
open-source browser-based map viewing utility. Juntas, estas ferramentas tm reforado a
funcionalidade do GeoServer.
Com o GeoServer, a sada de dados pode agora, estender-se a muitas outras fontes de dados
geogrficos, tais como o Google Earth. Alm disso, o GeoServer est actualmente a trabalhar
directamente com a Google, a fim de permitir que os dados do GeoServer sejam pesquisados no
Google Maps. Em breve uma pesquisa de dados espaciais ser to fcil como uma pesquisa no
Google. Assim o GeoServer prossegue na sua misso de tornar os dados espaciais mais acessveis
a todos.

1.1.2 Licena
O GeoServer licenciado sob a GNU (General Public License).

1.2 Getting Involved


O GeoServer abraa um modelo de desenvolvimento open-source que no v uma quebra entre o
utilizador e o programador, produtor e consumidor, pelo contrrio v o mundo como um recurso
valioso na busca de uma colaborao em construir algo melhor do que qualquer de ns poderia
elaborar sozinho.

1.2.1 Desenvolvimento
Geralmente os nossos responsveis comeam com pequenas correces de bugs, e, depois,
passam a maiores contribuies medida que compreendem o sistema. Quem desenvolve o
GeoServer est mais do que empenhado em ajudar os utilizadores a aprender e conhecer.

1.2.2 Documentao
Uma das melhores e mais necessrias formas de ajudar com documentao.

Curso GeoServer 1.7

A documentao oficial est includa como parte do oficial code repository, de forma a manter
uma aparncia uniforme da documentao. No entanto, tambm existe um wiki, onde qualquer
utilizador pode colocar a sua prpria documentao, truques e dicas, e qualquer outra informao
que seja til ao GeoServer. Se algum utilizador contribuir com documentao e esta for
considerada valiosa, poder ser adicionada documentao oficial de base.

1.2.3 Mailing Lists


O GeoServer mantm duas listas de e-mail: GeoServer Users e GeoServer Developers. Estas listas
esto disponveis ao pblico e so um grande recurso para os novos utilizadores do GeoServer, e
para os que necessitam de uma resposta s suas dvidas ou que tambm esto interessados em
contribuir. A GeoServer Users principalmente para aqueles que tm as questes relativas
utilizao de GeoServer, e a GeoServer Developers para quem quer contribuir com um codespecific e um roadmap-based discussions.

1.2.4 IRC
O GeoServer tem um canal de IRC, #GeoServer, na rede Freenode. Os responsveis pelo
desenvolvimento do GeoServer so frequentadores deste canal, e por isso, uma ptima maneira
de dar e receber informaes em tempo real.

1.2.5 Bug Traking


O GeoServer usa JIRA, um bug tracking site para a gesto do cdigo. Como o GeoServer uma
ferramenta aberta, todos so encorajados a corrigir bugs e apresentar solues. Mesmo o
utilizador que no pertence ao ncleo de equipas de desenvolvimento, pode ainda apresentar um
patch atravs do JIRA, e algum responsvel ir avaliar o patch e aplic-la ao cdigo.

Curso GeoServer 1.7

2. Instalao
O GeoServer escrito em Java, e exige um Java Development Kit (JDK) instalado no sistema, a fim
de o executar. O Java Development Kit (JDK) diferente de um Evnironment Java Runtime (JRE),
que o mais utilizado.
As pginas seguintes explicam como instalar o Java, e depois como instalar o GeoServer. Tambm
so dadas instrues especficas para actualizar uma aplicao GeoServer pr-existente.

2.1 Instalar JAVA


As instrues para instalar o Java Development Kit (JDK) esto dependentes do sistema operativo
existente.

Windows
1. Visite a pgina Sun Java downloads. A mais recente verso do Java Java 1.6 (que
tambm conhecida como Java 6). Escolha a opo Java SE Development Kit (JDK) 6.
2. Escolha a plataforma apropriada, o Windows ou o Windows x64, e continue com o
download.
3. Execute a opo instalar e aceite as opes que aparecem por defeito.

Curso GeoServer 1.7

Nota: Se o Java Runtime Environment (JRE) j estiver instalado no sistema, desactive o JRE que
vem com o JDK. Isto pode ser feito no Costum Setup na janela de instalao.

10

Curso GeoServer 1.7

4. Crie um novo environment variable chamado JAVA_Home e configure-o para a localizao


do JDK instalado na anteriormente.

11

Curso GeoServer 1.7

Linux
Nota: Muitos dos sistemas Linux vm com um JDK instalado, embora teoricamente o GeoServer
corra em qualquer mquina virtual Java, recomendado a Sun Virtual Machine.

Mac OS X
O Mac OS X j vem contemplados com um JDK, desta forma no necessria instalao.

2.2 Instalar o GeoServer


Pode-se instalar o GeoServer de duas formas:

Web Archive (WAR) existente dentro de um external servlet container tal como o Tomcat
Modo Standalone existente dentro do Jetty container.

12

Curso GeoServer 1.7

Instrues para o modo WAR podem ser encontradas em Web Archive. As instrues para o modo
Standalone so dependentes do sistema operativo.

Windows
1. Visite o site http://GeoServer.org/display/GEOS/Stable.
2. Escolha a opo Windows Installer e prossiga com o download.
3. Instale escolhendo as opes que aparecem por defeito.

Aviso: Se receber o seguinte aviso enquanto decorre a instalao

Isso significa uma de duas coisas:


Um JDK Java no est instalado no sistema
O ambiente varivel JAVA_HOME no est definido correctamente

4. Inicie o GeoServer a partir do Start Menu> Programs>GeoServer 1.7.0> Start GeoServer.


5. V ao site http://localhost:8080/GeoServer

Linux
1. V ao site http://GeoServer.org/display/GEOS/Stable.
2. Escolha a opo Binary Package e prossiga com o Download.
3. A partir da linha de comando descompacte o ficheiro:
% Unzip GeoServer-1.7.0-bin.zip
4. Comece por mudar a directoria para GeoServer-1.7.0/bin e execute startup.sh script:
% Cd GeoServer-1.7.0/bin

13

Curso GeoServer 1.7

% Sh startup.sh
5. V ao site http://localhost:8080/GeoServer

Mac OS X
Em princpio j existe um dmg installer. s fazer update dos documentos.

Web Archive
1.
2.
3.
4.
5.

V ao site http://GeoServer.org/display/GEOS/Stable.
Escolha a opo Web Archive e prossiga com o download.
Extraia o ficheiro GeoServer.war.
Abra o GeoServer.war dentro do servlet container.
V ao site http://localhost:8080/GeoServer

Nota: Substituir porta 8080, qualquer que seja a porta de servlet container que esteja escuta.

Aps a instalao
O GeoServer deve estar instalado e funcionar, mas altamente recomendvel que algumas
configuraes ps-instalao sejam realizadas.

Directrio de Dados
Por defeito o GeoServer est configurado para ser executado num directrio de dados interno.
Para garantir um bom upgrade quando instalar novas verses do GeoServer recomenda-se que
seja criado um directrio de dados externo.

14

Curso GeoServer 1.7

Server performance
O GeoServer no est configurado para um desempenho optimizado. Se o GeoServer for
executado num ambiente em que o desempenho mximo necessrio, recomendado que a
configurao padro seja alterada com base em Running in A Production Environment.

2.3

Actualizar o GeoServer

Realizar uma pequena actualizao


Uma pequena actualizao do GeoServer ocorre quando se passa para uma verso diferente. Por
exemplo, passar de GeoServer 1.7.0 a 1.7.1.
Para todas as actualizaes fortemente recomendado que GeoServer esteja a correr num
directrio de dados externos.
Nota: recomendvel que o directrio dos dados do GeoServer seja convertido num backup
antes de executar qualquer actualizao.

Standalone upgrade
Nota: Esta seco aplica-se ao GeoServer quando estiver a ser executado em Standalone
mode, e no dentro de um servlet container.

Se o GeoServer for configurado para funcionar num directrio de dados externo e o


GEOSERVER_DATA_DIR estiver configurado adequadamente, ao actualizar proceda
apenas instalao da nova verso GeoServer. A nova verso ir reconhecer o novo
ambiente e executar em conformidade.
Se o GeoServer for configurado para funcionar com um directrio de dados interno ento
o directrio da antiga instalao deve ser copiado e substitudo pelos dados da nova
instalao:
15

Curso GeoServer 1.7

% ls
GeoServer-1.7.0 GeoServer-1.7.1
% rm -rf GeoServer-1.7.1/data_dir
% cp -R GeoServer-1.7.0/data_dir GeoServer-1.7.1

Web Archive upgrade


Nota: Esta seco aplica-se quando o GeoServer estiver a ser executado em Web
Archive mode dentro de um servlet container ou servidor de aplicaes.

Actualizar o GeoServer dentro de um servlet container especifico que est em uso. Se o


GeoServer for configurado para funcionar como um directrio de dados externos:

Undeploy a antiga verso do GeoServer.


Deploy a nova verso do GeoServer.

Se o aplicativo Web utiliza a GEOSERVER_DATA_DIR para localizar a directoria no ficheiro


web.xml, execute os seguintes passos:

Edite o web.xml, e coloque o GEOSERVER_DATA_DIR a apontar para a localizao do


directrio de dados.
Inicie o GeoServer.

Se o GeoServer for configurado para funcionar como um directrio de dados interno:


Nota: Se fizer o Undeploying, a aplicao web ir apagar os dados da directoria. Deve
ser copiado a directoria de dados para uma localizao externa aplicao Web.
16

Curso GeoServer 1.7

Backup da directoria de dados.


Undeploy a antiga verso do GeoServer.
Deploy a nova verso do GeoServer.
Fazer uma cpia da directoria de dados para a raiz da aplicao Web, substituindo a
directoria existente.
Reinicie a aplicao web.
Exemplo:
% cp -R /opt/tomcat5/webapps/GeoServer/data /backups
<<undeploy old version>>
<<deploy new version>>
% rm -rf /opt/tomcat5/webapps/GeoServer/data
% cp -R /backups/data /opt/tomcat5/webapps/GeoServer
<<restart web application>>

Realizar uma actualizao completa


Uma actualizao completa do GeoServer ocorre quando se alterna para uma verso
mais recente do GeoServer que tem um "menor" nmero. Por exemplo, passar de
GeoServer 1.6.0 a 1.7.0, ou 1.5.5 a 1.7.1, etc.
Efectuar uma actualizao completa o mesmo processo que executar uma pequena
actualizao com um passo adicional. Para realizar uma actualizao completa:

Siga os passos descritos anteriormente


Parar o GeoServer.
Retire o Geotools do sistema de ficheiros de armazenamento temporrio.
17

Curso GeoServer 1.7

Reinicie o GeoServer.

Nota: Em sistemas Windows este directrio C:\Documents and Settings\<user>\Local


Settings\Temp. Em sistemas Linux e Mac OS esse directrio normalmente / tmp.

18

Curso GeoServer 1.7

3. Comear com o GeoServer


3.1 Web Administration Interface Quickstart
O Web Administration Tool uma base web usado para configurar o GeoServer, desde
acrescentar dados a tweaking service settings. Acede-se ferramenta web administrator
no endereo http://<host>:<port>/GeoServer.
Http://localhost:8080/GeoServer numa instalao padro na mquina local.

Logging in
A fim de alterar quaisquer configuraes o utilizador dever ser autenticado primeiro. Em qualquer
momento o utilizador ao navegar at Config na pgina principal iniciar a sua autenticao.

19

Curso GeoServer 1.7

Nota: Por defeito, o Username "admin" e a password "GeoServer".


Submit-Apply-Save Workflow
Para efectuar uma mudana de configuraes de servidores web com a ferramenta
admin segue-se um processo de trs fases:

1. Submit a pgina.

Neste ponto, a alterao enviada para o servidor, mas no aplicada ao GeoServer.

2. Apply a alterao.

20

Curso GeoServer 1.7

Uma vez que a alterao tenha sido aceite, est disponvel. No entanto, se o GeoServer se
desligar, a mudana no se mantm.

3. Save, para gravar as alteraes.

Ao fazer Save, todas as alteraes permanecem no disco at prxima vez que se reinicie o
GeoServer.

Map Preview

21

Curso GeoServer 1.7

O map preview visualiza com o OpenLayers cada mapa publicado. Pode ser uma ferramenta til
para verificar a configurao de um layer especfico ou para explorar visualmente um layer.
O map preview encontrado navegando at Welcome>Demo>Map Preview.

Sample request tool


O Sample request tool fornece uma interface baseado num formulrio para executar os pedidos do
GeoServer. Pode ser um instrumento til para a experimentao de pedidos GET e POST.
A ferramenta encontra-se ao navegar at Welcome>Demo>Sample Request.

22

Curso GeoServer 1.7

Permitindo que o usurio especifique o seu pedido, a ferramenta, mostra o pedido e tambm
oferece um conjunto de "pr-pedidos. Estes pedidos provm do ficheiro demo dentro do directrio
de dados do GeoServer.

3.2 Styling a Map


Quando um novo data set adicionado ao GeoServer lhe normalmente atribudo uma
simbolizao muito bsica. Para visualizar os dados correctamente temos de criar um estilo
especfico para esses dados.

23

Curso GeoServer 1.7

4. Directrio de dados do GeoServer


4.1 Introduo directoria de dados
O data directory onde o GeoServer guarda todos os dados da sua configurao. Esta
configurao define aspectos como: Que dados servem o GeoServer? Onde que os dados esto
localizados? Como devem os servios Web Map Service e Web Feature Service, interagir com o
servidor e com que dados? O directrio de dados tambm contm um nmero de ficheiros usados
pelo GeoServer onde este se apoia para vrias finalidades.
Abaixo temos a estrutura dos dados do directrio GeoServer:
data_directory/
catalog.xml
services.xml
coverages/
data/
demo/
featureTypes/
palettes/
plugIns/
security/
styles/
templates/
user_projections/
www/

catalog.xml and services.xml


O catalog.xml contm uma lista de todas as data sources configuradas para servir o GeoServer.
Contm referncias a shapefiles, bases de dados PostGIS, ficheiros GeoTiff, e muitos outros tipos
de dados. O catalog file tambm contm outras informaes como um conjunto de nomes
utilizados pelo Web Feature Service, e um conjunto de estilos SLD utilizados pelo Web Map
Service. O catalog.xml um ficheiro XML que tem o seguinte formato:
<catalog>
<datastores>
...
</datastores>

24

Curso GeoServer 1.7

<formats>
...
</formats>
<namespaces>
...
</namespaces>
<styles>
...
</styles>
</catalog>
O ficheiro services.xml contm todas as service level configuration. Os services files contm uma
entrada para cada servio criado pelo GeoServer. Isto inclui uma entrada Web Map Service, Web
Feature Service e WCS . O services.xml um ficheiro XML que tem o seguinte formato:
<services>
<service type="WMS">
..
</service>
<service type="WFS">
..
</service>
<service type="WCS">
..
</service>
</services>

Coverages and features Types


As directorias covareges e featureTypes contm metadados sobre "layers", que so criados pelo
GeoServer. Um layer vector corresponde ao directrio featureTypes, e um layer raster corresponde
directoria coverages. O termo layer refere-se a ambos os tipos.
Para cada layer criado pelo GeoServer criado uma sub-directoria abaixo das directorias
coverages ou featuresType, dependendo se o layer raster ou vector. A figura abaixo mostra o
que contm as duas respectivas directorias a partir dos dados da instalao de um directrio do
GeoServer.
coverages/
arc_sample/

25

Curso GeoServer 1.7

img_sample/
img_sample2_Pk50095/
mosaic_sample/
sfDem_dem/
featureTypes/
DS_giant_polygon_giant_polygon/
DS_poi_poi/
DS_poly_landmarks_poly_landmarks/
DS_tiger_roads_tiger_roads/
sfArchsites_archsites/
sfBugsites_bugsites/
sfRestricted_restricted/
sfRoads_roads/
sfStreams_streams/
states/
tasmania_cities/
tasmania_roads/
tasmania_state_boundaries/
tasmania_water_bodies/

Cada sub-directoria contm um ficheiro chamado info.xml que contm metadados sobre o layer.
Esses metadados incluem:

O sistema de referncia espacial ou "projeco" do dataset


Um spatial extent do dataset
O estilo utilizado por defeito quando o Web Map Service cria o layer

Dados
Para no se confundir com o GeoServer data directory, a directoria dados um local onde os
dados reais podem ser armazenados. Este normalmente usado para armazenar shapefiles,
raster, e ficheiros.
O principal benefcio de armazenar arquivos de dados dentro da directoria dados a portabilidade.
Considere um shapefile localizado externamente aos dados num directrio local
C:\gis_data\foo.shp. A entrada em Datastore no catalog.xml para este shapefile a seguinte:

26

Curso GeoServer 1.7

<datastore id="foo_shapefile">
<connectionParams>
<parameter name="url" value="file://C:/gis_data/foo.shp" />
</ connectionParams>
</ Datastore>

Experimente transportar a data directory para outro servidor que esteja a correr o GeoServer.
O problema que a localizao C:\gis_data\foo.shp provavelmente no existe no segundo servidor.
Assim o ficheiro deve ser copiado para a nova localizao, ou o catalog.xml deve ser alterado para
reflectir a nova localizao.

Tais medidas podem ser evitadas armazenando o ficheiro foo.shp dentro da directoria dados.
Nesse caso, a entrada Datastore em catalog.xml a seguinte:
<datastore id="foo_shapefile">
<connectionParams>
<parameter name="url" value="file:data/foo.shp"/>
</ connectionParams>
</ Datastore>

O valor atribudo reescrito para ficar relativo. Desta forma, toda a directoria de dados pode ser
arquivada, copiada para uma nova localizao, utilizada directamente, sem alteraes adicionais.

Demo
A directoria Demo contm os ficheiros que definem os sample request disponveis no Sample
Request Tool (http://localhost:8080/GeoServer/demoRequest.do).

27

Curso GeoServer 1.7

Palettes
A directoria Palettes usada para armazenar images palettes pr processadas. As Image Palettes
so usadas pelo GeoServer Web Map Server como forma de reduzir o tamanho das imagens
produzidas mas mantendo a sua qualidade.

Security
O directrio Security contm todos os ficheiros usados para configurar a segurana do subsistema
do GeoServer. Isto inclui um conjunto de ficheiros que definem as permisses de acesso
juntamente com os servios e dados onde cada utilizador autorizado a aceder.

Styles
A directoria Styles contm uma serie de ficheiros Styled layer Descriptor (SLD) que contm
informao sobre simbologia utilizada pelo GeoServer Web Map Service. Para cada ficheiro nesta
directoria existe um ficheiro correspondente no catalog.xml:
<style id="point_style" file="default_point.sld"/>

Templates
A directoria Template contm ficheiros utilizados pelo GeoServer Templating Subsystem. Estes
templates so utilizados para costumizar os outputs de vrias operaes do GeoServer.

User projections
A directoria User Projections contm um nico ficheiro chamado epsg.properties que usado para
definir sistemas de referncias espaciais que no fazem parte da base de dados oficial EPSG

WWW
A directoria WWW utilizada para permitir o GeoServer funcionar como um Web Server normal e
utilizada tambm por ficheiros normais. Embora no seja um substituto para um servidor web, a
directoria www pode ser til para servir aplicaes de OpenLayers.

28

Curso GeoServer 1.7

4.2 Criar uma nova directoria de dados


A maneira mais fcil de criar uma nova directoria de dados fazer uma cpia de uma j existente
dentro do GeoServer.
Se o GeoServer estiver em execuo no modo Standalone, a directoria de dados est localizada
em <installation root>/data_dir.

Nota: Em sistemas Windows o <installation root> est localizado em C:\Program Files\GeoServer


1.7.0.

Se o GeoServer estiver em execuo em modo Web Archive dentro de um servlet container, a


directoria de dados est localizado em <web aplication root>/data.
Uma vez encontrada a directoria de dados, necessrio copi-la para uma localizao externa.

4.3

Definir a directoria de dados

Configurar uma Directoria de Dados depender do tipo de instalao do GeoServer.

Windows
Em plataformas Windows, a localizao da directoria de dados do GeoServer controlada pela
GEOSERVER_DATA_DIR.

29

Curso GeoServer 1.7

Nota: Quando o GEOSERVER_DATA_DIR no est definido, utilizada a directoria data_dir abaixo


da raiz da instalao do GeoServer.

Para definir o GEOSERVER_DATA_DIR:


Em sistemas Windows XP:
A partir do Desktop ou no Menu Iniciar clique com o boto direito no cone Meu Computador e
seleccione Propriedades.
Seleccione Advanced e clique no boto Environment Variables.
Clique no boto New e crie um environment variable chamado GEOSERVER_DATA_DIR e coloque-o
numa pasta escolha.

Linux

30

Curso GeoServer 1.7

Em plataformas Linux a localizao da directoria de dados do GeoServer controlado pela


GEOSERVER_DATA_DIR environment variable. Definir a varivel que pode ser alcanada com o
seguinte comando (in a bash shell):
% Export GEOSERVER_DATA_DIR = / var / lib / GeoServer_data
Coloque o comando no. Bash_profile ou. Bashrc (novamente assumindo uma linha de comando).

Web Archive
Quando o GeoServer executado dentro de um servlet container, a directoria de dados pode ser
especificada de vrias maneiras. O mtodo recomendado o de estabelecer um servlet context
parameter.

Servlet context parameter


O Servlet context parameter especificado no ficheiro WEB-INF/web.xml da aplicao GeoServer:
<web-app>
...
<context-param>
<param-name> GEOSERVER_DATA_DIR </ param-name>
<param-value> / var / lib / GeoServer_data </ param-value>
</ contexto-param>
...
</ web-app>

Java system property


Dependendo do servlet container utilizado, tambm possvel especificar o directrio local de
dados com uma propriedade do sistema Java. Este mtodo pode ser til durante upgrades, pois
evita a necessidade de definir o directrio de dados em cada actualizao.
Definir as Propriedades do Sistema de Java depende do servlet container.

31

Curso GeoServer 1.7

No Tomcat:
Edite o ficheiro bin/setclasspath.sh sob a raiz da instalao do Tomcat. Especifique o sistema de
propriedade do GEOSERVER_DATA_DIR atravs da fixao das variveis CATALINA_OPTS:
CATALINA_OPTS = "-DGEOSERVER_DATA_DIR = / var / lib / GeoServer_data"

No Glassfish:
Edite o ficheiro domains/<<domain>>/config/domain.xml sob a raiz da instalao do Glassfish,
onde <<domain>> se refere ao domnio onde a aplicao Web do GeoServer implantada.
Adicionar um <jvm-options> dentro de <java-config>:
...
<java-config>
...
<jvm-options>-DGEOSERVER_DATA_DIR = / var / lib / GeoServer_data </ JVM-options>
</ java-config>
...

5. Web Administration Interface


5.1 Interface basics
A Web Administration Interface fcil de usar, na visualizao e configurao do GeoServer.

Acesso
Por defeito, o GeoServer vai iniciar-se em port 8080 acessvel atravs do seguinte URL:
http://localhost:8080/GeoServer

32

Curso GeoServer 1.7

Quando configurado correctamente, a pgina welcome aparece no nosso browser.

Pgina Welcome
A pgina welcome disponibiliza muita informao resumida nas barras existentes no lado
esquerdo da pgina. Estas barras coloridas iro mostrar graficamente qualquer erro do Web
Feature Service, Web Map Service, WCS e aspectos da GeoServer (se aplicvel).
A pgina de welcome contm muitos links para a configurao do GeoServer. H tambm links
exteriores para a homepage do GeoServer em http://GeoServer.org.
Links teis esto disponveis para os documentos WCS GetCapabilities, Web Feature Service
GetCapabilities, e Web Map Service GetCapabilities. Alm disso, um link rpido para o SRS List,
uma lista de todas as projeces existentes no GeoServer.
As maiorias das configuraes esto contidas em trs menus, o Admin Menu, Config Menu, e
Demo Menu.

5.2 Admin Menu


O Admin menu contm informaes sobre o GeoServer actualmente em execuo. A informao
apresentada :

5.3

Config Menu

Logging In
33

Curso GeoServer 1.7

Ao navegar para o Config menu ter de fazer Login. Esta medida de segurana evita alteraes ao
GeoServer por pessoas no autorizadas, O username e password admin e GeoServer. Essas
opes podem ser alteradas editando o ficheiro security/users.properties no GeoServer Data
Directory.

Apply, Save, Load

Server
A pgina Server Configuration, acedendo a partir do Server, onde so feitas as configuraes de
servidor global.

34

Curso GeoServer 1.7

5.3.1 Web Coverage Service (WCS)


Este captulo mostra como configurar o Web Coverage Service no GeoServer.

Contents
A pgina Web Coverage Service Contents permite que os Web Coverage Service sejam activados e
desactivados. Quando so desactivados, os requisitos WCS no so processados. A caixa Online
Resource um URL que contm as informaes para o Web Coverage Service.

35

Curso GeoServer 1.7

Web Coverage Service Description


A pgina de Web Coverage Service Description onde se encontra a informao acerca da WCS.

CoveragePlugins

36

Curso GeoServer 1.7

A pgina Web Coverage Service CoveragePlugins exibe uma lista de todos os formatos suportados
pelo GeoServer. Podem ser suportados outros formatos desde que se instalem as respectivas
extenses.

5.3.2 Web Map Service (WMS)


Este captulo mostra como configurar o Web Map Service no GeoServer.

Contents

37

Curso GeoServer 1.7

A pgina Web Map Service Contents permite que os WMS sejam activados e
desactivados. Quando so desactivados os requisitos WCS no so processados. A caixa
Online Resource um URL que contm as informaes para o Web Coverage Service.
Na Limited Capabilities CRS List temos uma lista dos sistemas de referncia espacial
(SRS). Por defeito, essa caixa est vazia, o que significa que ir assumir todas as
definies do GeoServer apoiadas no SRS. Ao preencher esta caixa, apenas os
expressamente mencionados sero suportados.
Este captulo mostra como configurar o Base Maps. Os grupos de layers so coleces de
Web Map Service que podem ser referenciados como uma s.

As opes de configurao para cada grupo de layers so:


Option
Layer-group
Name
Base Map Layers
Base Map Styles

Descrio
O nome do layer group
Uma lista dos layers que compem o layer group, separado por virgulas.
O estilo utilizado para o layer group. Se ficar em branco, os layers vo usar o

38

Curso GeoServer 1.7

SRS
Envelope

estilo definido por defeito.


A projeco a usar no layer group.
Caixa para o layer group. Coloque coordenadas, ou clique em Generate para as
criar automaticamente.

Para criar um novo grupo de layers, clique em Add New Layer-Group.

Description
A pgina WMS Description onde est disponvel a informao sobre o WMS .

Rendering
39

Curso GeoServer 1.7

A pgina Web Map Service Rendering tem vrias opes para o gerar WMS tiles.

5.3.3 Web Feature Service (WFS)


Configurar o Web Feature Service no GeoServer.

Contents
A pgina Web Feature Service Contents permite a configurao do WFS. O WFS pode ser activado
ou desactivado aqui. Quando desactivado, os pedidos WFS no sero processados. A caixa Online
Resource um URL que contm as informaes relevantes para o Web Feature Service.

Description
A pgina da Web Feature Service Description onde podemos encontrar informaes acerca do
WFS.

40

Curso GeoServer 1.7

Validao

5.3.4 Namespace
Um namespace onde se arruma as datastores e featuretypes. No GeoServer, um namespace
frequentemente utilizado para agrupar layers semelhantes. Esses layers so muitas vezes
referidos pelos seus namespace, colon, e as featuretype. (Ex: Topp:states). Dois featuretypes
podem existir com o mesmo nome, desde que estejam em namespace diferentes. (Ex: NS1:
mylayer, ns2: mylayer).
Aqui podemos registar, editar (configure) ou apagar (unresgister) um namespace. Podemos
tambm definir um namespace por defeito.

41

Curso GeoServer 1.7

Novo namespace
A pgina New permite criar um namespace. Digite um nome, clique Submit para editar o novo
namespace.

Editar um namespace
Em Edit podemos configurar novos ou j existentes namespaces. Digite uma URI (Uniform
Resource Indicator). Este um identificador nico, por vezes apenas um URL. Cada namespace
deve ter um nico URI. Pode-se usar este valor para prefixo, mas geralmente usado o mesmo
nome do namespace.

42

Curso GeoServer 1.7

5.3.5 Coveragestores
Um coveragestore um ficheiro ou grupo de ficheiros que contm uma ou mais coverages (dados
raster). necessrio registar um coveragestore no GeoServer antes de carregar as coverages na
coveragestore.

Aqui podemos registar, editar (configure), apagar (unregister) um coveragestore.

New
A pgina New onde os novos coveragestores so carregados. Seleccione uma opo em
Coverage Data Set Description. D um nome coveragestore em Coverage Data Set ID. Clique
Submit para continuar.

Edit
A pgina Edit onde podemos editar coveragestores existentes.

43

Curso GeoServer 1.7

5.3.6 Datastores
Um Datastore um ficheiro, um grupo de ficheiros, ou base de dados que contm featuretypes
(dados vectoriais). necessrio registar um Datastore no GeoServer antes de carregar um
featuretypes.

44

Curso GeoServer 1.7

Nesta pgina, podemos registar, editar (configurar), ou apagar (unregister) um Datastore.

New
A pgina New onde os novos datastores so carregados. Seleccione uma opo em Feature Data
Set Description e d um nome do Datastore na caixa Feature Data Set ID. Clique em Submit para
continuar.

Edit
Em Edit onde se podem configurar os datastores existentes.

45

Curso GeoServer 1.7

5.3.7 Style
Os Styles so mtodos rendering de dados georeferenciados. Para o GeoServer os Styles so
escritos em Styled Layer Descriptor (SLD), um subconjunto de XML. Aqui podemos registar, criar,
editar (configue), ou apagar (unregister) uma simbologia.

New
Digite o nome do Style e clique em New para ir para a pgina Edit.

46

Curso GeoServer 1.7

Edit
Em Edit temos duas opes para a introduo de um SLD. Existe a opo de digitar/colar no
cdigo SLD, ou seleccionar e carregar um ficheiro local que contm o SLD. Existem duas caixas,
uma para Fully Validate against the SLD Schema e Toggle Editor. A primeira, quando verificada,
garante que o cdigo seja totalmente compatvel com o esquema SLD. A segunda alterna entre
dois editores de texto.

47

Curso GeoServer 1.7

5.3.8 Feature Type


Uma featuretype uma layer de dados que contm dados geogrficos em formato vectorial. As
featuretypes esto contidas dentro das datastores, que precisam de ser carregadas antes de se
registar a featuretype.

48

Curso GeoServer 1.7

Nesta pgina, podemos registar, editar (configure), ou apagar (unregister) uma featuretype.

Criar uma nova Feature Type


Seleccione uma featuretype disponvel na lista, clique New e ser levado para a pgina Edit
featuretype. (Se o featuretype em questo no estiver na lista, certifique-se que o Datastore que
contm o featuretype est registado correctamente.)

Edit um Feature Type

49

Curso GeoServer 1.7

5.3.9 Coverages
Uma coverage um layer de dados que contm dados geogrficos em formato raster. Coverages
que esto dentro de coveragestores, devem ser registados antes da coverage.

Nesta pgina, podemos registar, editar (configure), ou apagar (unregister) uma covarege.

50

Curso GeoServer 1.7

Criar uma nova Coverage


Seleccione uma coverage disponvel a partir da lista, clique em New e ser levado para a pgina
Edit. (Se a coverage em questo no estiver na lista, certifique-se que o coveragestore que
contm a coverage est registada correctamente.).

Editar uma Coverage

51

Curso GeoServer 1.7

5.4 Demo Menu


O menu Demo contm links teis para diversas demonstraes e informaes relativas s pginas
GeoServer e as suas diversas funcionalidades.

5.4.1 Map Preview


A pgina Map Preview uma listagem de todos os featuretypes e Layer groups registados e
configurados no GeoServer. Aqui encontramos alguns outputs possveis para estes layers.

52

Curso GeoServer 1.7

Os outputs disponveis a partir desta pgina so:


Opo
Descrio
OpenLayers Gerar uma aplicao OpenLayers.
KML
Usa o KML para a sada.
Outputs GeoRSS, forma geogrfica do
GeoRSS
GeoRSS.
PDF
Cria um pdf do output WMS.
SVG
Cria um ficheiro SVG.

Openlayers output
Os outputs do OpenLayers tm alguns filtros avanados que no esto disponveis quando utiliza
uma verso base do Openlayers. A aplicao gerada contm vrias opes que permitem
configurar o display.

53

Curso GeoServer 1.7

Para mudar este menu, clique sobre o cone no canto superior esquerdo da janela OpenLayers.

As possveis opes de configurao so:


Opo
Tiling
Antialias
Format
Width/Height

Descrio
Carregar com um nico tile ou como uma matriz de tiles.
Define os antialias dos tiles. As opes so Full, Text Only, e Disabled.
Permite escolher o formato da imagem. As opes so PNG 24bit, PNG 8bit, GIF,
e JPEG.
Estes valores definem a largura e altura da janela do Openlayer. Escolhendo Auto

54

Curso GeoServer 1.7

Fliter

a aplicao define o tamanho ptimo.


Permite fazer queries ao dataset. As opes so CQL, OGC, e FeatureID. A querie
dever ser colocada na caixa ao lado deste campo.

6. Trabalhar com os dados


6.1 Shapefile
Nota: Embora o GeoServer tenha um bom suporte para o formato Shapefile, este no
recomendado num ambiente de produo. Bases de dados como o PostGIS so mais adequadas
na produo e oferecem um melhor desempenho e escalabilidade.

6.1.1 Adicionar um Shapefile


Tal como acontece com todos os formatos vectoriais, adicionar um Shapefile ao GeoServer envolve
a adio de um new data store atravs da ferramenta Web.

55

Curso GeoServer 1.7

Opes do Shapefile
url
create spatial index
charset
memory mapped
buffer

Localizao da shapefile.
Uma marca que indica que um spatial index deve ser criado para o
Shapefile.
Especificar o caractere usado quando se l a informao do ficheiro DBF.
Uma marca que indique se a memria i/o deve ser usada quando se l a
shapefile.

Caminhos absolutos e relativos dos ficheiros


Ao especificar a localizao de um Shapefile pode ser dado um caminho absoluto ou um caminho
relativo. Um caminho absoluto do ficheiro especifica a localizao da raiz do sistema de ficheiros.
Por exemplo:
arquivo: C: \ gis_data \ shapefiles \ my_shapefile.shp

56

Curso GeoServer 1.7

O caminho relativo especifica o local em relao raiz da directoria de dados do GeoServer. Por
exemplo:
dossier: dados / shapefiles / my_shapefile.shp

6.2 PostGIS
PostGIS uma base de dados espacial open source baseado no PostgreSQL.

6.2.1 Adicionar uma base de dados PostGIS


Tal como acontece com todos os formatos vectoriais, adicionar uma base de dados PostGIS no
GeoServer, envolve um new data store atravs da ferramenta Web.

57

Curso GeoServer 1.7

host
port
schema
user
password

wkb_enabled

A base de dados servidor.


A porta que a base de dados est escuta para ligaes. Por defeito para o
PostGis a porta 5432.
O esquema da base de dados para carregar tabelas. Por defeiro para o
PostGis public schema.
Nome do user para ligao base de dados.
Password a utilizar quando se faz a ligao base de dados.
Especificar quando Well Known Binary (WKB) ou Well Known Text (WKT)
deve ser usado quando se l ou escreve do e para o PostGis. Recomendase a utilizao do WKB por ser mais rpido e exacto que o WKT.
Marca que controla como a comparao de bounding box so feitas contra
as geometrias na base de dados.
Marca que afecta os clculos dos limites da tabela.

loose bbox
estimated_extent
max connections
min connections
validate connections Parmetros de configurao das Connection pool.

Utilizao da loose bounding box


Quando se define apenas uma bounding box para uma geometria, resulta num aumento
significativo da performance. A desvantagem que algumas geometrias podem ser consideradas
dentro de uma bounding box quando tecnicamente no o esto.
Se a principal utilizao da base de dados atravs do Web Map Service esta marca pode ser
definida com uma perda de preciso normalmente aceitvel. No entanto, se usar o Web Feature
Service fazendo uso das capacidades de filtragem da BBOX, esta marca no deve ser definida.

Extent previsto
Quando definido, o GeoServer far uso da funo PostGIS estimated_extent no clculo da extenso
espacial de uma tabela. A definio desta opo traduz-se no aumento da performance.

58

Curso GeoServer 1.7

Publicar uma view do PostGIS


Para publicar uma View do PostGIS utiliza-se o mesmo processo que utilizado para a publicao
de uma tabela. O nico passo adicional assegurar manualmente que a View tem uma entrada na
tabela geometry_columns.
Por exemplo, considere uma tabela com o schema:
my_table (id int PRIMARY KEY, name varchar, the_geom GEOMETRY)
Considere a seguinte view:
CREATE VIEW my_view as SELECT id, the_geom FROM my_table;
Assim a tabela no pode ser publicada pelo GeoServer. O passo seguinte necessrio para criar
manualmente a entrada geometry_columns:
INSERT INTO geometry_columns VALUES ('',' public ',' my_view ',' my_geom , 2, 4326, 'POINT');

Performance considerations
GEOS
Geometry Engine Open Source (GEOS) um componente adicional que opcionalmente pode ser
instalado com o PostGIS.
Se o PostGIS instalado no Windows, o GEOS automaticamente instalado. Noutras plataformas
como o Linux opcional. Recomenda-se que instale o GEOS numa verso qualquer do PostGIS
utilizada pelo Geoserver, pois este utilizar esta funcionalidade quando efectuar operaes
espaciais, como por exemplo interseces. Quando o GEOS est desactivado, estas operaes so
realizadas internamente pelo GeoServer.

Spatial indexing
recomendado criar um spatial index em tabelas com uma componente espacial. Se uma tabela
no tem um spatial ndex definido pode ficar mais lenta quando se efectuam queries.

59

Curso GeoServer 1.7

Problemas comuns
Primary keys
Todas as tabelas devem ter uma primary key. Qualquer tabela sem primary key definida
considerada como read only.

6.3 Directorias
Carregar e configurar mltiplas shapefiles pode ser um processo muito demorado. Mas se
estiverem todas na mesma directoria, podem ser adicionadas simultaneamente em datastores
individuais, usando a directoria datastore.

Adicionar uma directoria


Na pgina Datastore (Config> Dados> Datastores> New) na Web Administration Interface, Feature
Data Set Description, seleccione Directory of spacial files. D um nome datastore em Feature
Data Set ID e clique New.
Na prxima pgina, seleccione o namespace (este ser utilizado como um prefixo para cada
shapefile na directoria), descrio (se houver), e o caminho para a directoria. Quando terminar,
clique em Submit.
Todas as shapefiles contidas na directoria sero registadas, mas nenhuma delas estar disponvel
at que sejam configuradas individualmente (Config> Dados> Featuretypes> New).

6.4 External Web Feature Server


Overview

60

Curso GeoServer 1.7

O GeoServer tem a capacidade de carregar dados de um Web Feature Server (WFS) remotamente.
Isto til se o WFS no tiver algumas funcionalidades que o GeoServer contm. Se remotamente
o WFS tiver um WMS, mas se esse WMS no conseguir conectar os dados para um KML, os dados
podem ser conectados atravs do GeoServer.

Adicionar um WFS externo

Para se conectar a um WFS externo, necessrio carreg-lo como um novo Datastore. Dentro de
Create New Feature Data Set (Config -> Data -> Datastore -> New), Feature Data Set Description
seleccione Web Feature Server e clique New.

Opes do Web feature Server


A prxima pgina contm as opes de configurao para a ligao remota Web Feature Service.
Preencha o formulrio, em seguida clique em Submit.

61

Curso GeoServer 1.7

Necessri
o
Descrio
O nome da base de dados
Feature Data Set ID
N/A
definda na pgina anterior.
Quando esta caixa est
checked a base de dados est
Enabled
N/A
disponvel para o GeoServer
O namespace associado com
Namespace
Sim
esta datastore.
Description
No
Descrio da base de dados.
O URL para o documento
WFSDataStoreFactory:GET_CAPABILITIES_U
GetCapabilities do servidor
RL
Sim
WFS.
WFSDataStoreFactory:PROTOCOL
No
(T/F):
O username para autenticao
WFSDataStoreFactory:USERNAME
No
do WFS.
A password associada com o
username anterior para
WFSDataStoreFactory:PASSWORD
No
autenticao com o WFS.
WFSDataStoreFactory:ENCODING
No
WFSDataStoreFactory:TIMEOUT
No
WFSDataStoreFactory:BUFFER_SIZE
No
WFSDataStoreFactory:TRY_GZIP
No
(T/F):
WFSDataStoreFactory:LENIENT
No
(T/F):
Define o mximo de features
WFSDataStoreFactory:MAXFEATURES
No
para o retorno do WFS.
Opo

62

Curso GeoServer 1.7

Podemos adicionar featuretypes


Data,Featuretype -> New).

ao

navegar

at

Create

New

Feature

Type

(Config,

6.5 ArcSDE
ESRI's Arcsde um motor espacial que funciona sobre base de dados Oracle ou SQL Server. O
GeoServer com a extenso Arcsde suporta o ArcSDE 9.2 e 9.3. Foi testado com o Oracle 10g e
Microsoft SQL Server 2000 Developer Edition. A extenso ArcSDE baseada no driver Geotools
ArcSDE e utiliza as bibliotecas do ESRI Java API.
Existem dois tipos de dados ArcSDE que pode ser adicionados ao GeoServer: vetorial e raster.

Suporte vector
O Arcsde proporciona um acesso eficiente aos Layers vector, ("featureclasses), atravs de bases
de dados relacionadas. O GeoServer pode configurar featuretypes para featureclasses do ArcSDE.
Nota: Se a featureclass no tiver uma chave primria definida, ela estar disponvel apenas como
read-only.

Suporte Raster
O Arcsde acede a multi-band rasters armazenando os dados numa base de dados dividindo-a em
mosaicos e criando pirmides. Permite tambm que um mtodo de compresso seja definido para
os dados tiled blob e um mtodo de interpolao de dados para a reamostragem das pirmides
(pyramid resampling).
Todas as bandas comprimidas num nico layer raster tm de ter a mesma definio de pixel, que
pode ser 1, 4, 8, 16 e 32 bits.
Os rasters do ArcSDE podem ter associadas tabelas de cor desde que se caracterizem por ter uma
nica banda de 8 ou 16 bit unsigned.

63

Curso GeoServer 1.7

O ArcSDE suporta raster catalogs. Um raster catalog um mosaico de rasters com as mesmas
propriedades espectrais, mas em vez do mosaico a ser pr-processado, os rasters compreendidos
dentro do catlogo so independentes e a execuo do mosaico efectuada em runtime.

Detalhes Tcnicos
Compression methods
Number of bands
Bit depth for color-mapped rasters
Raster Catalogs

Status
LZW, JPEG
Qualquer nmero de bandas excepto para rasters de 1 e 4 bit.
8 bit e 16 bit
Qualquer tipo de armazenamento de pixel

Instalar extenses ArcSDE


Ficheiros GeoServer
1. Faa o download das extenses em GeoServer download page.
2. Extraia o contedo para a directoria WEB-INF/lib do GeoServer.

Ficheiros externos
H dois ficheiros que so necessrios mas que no so instalados com o GeoServer:
Ficheiro
jsde_sdk.jar
jpe_sdk.jar

Notas
Conhecido como jsde##_sdk.jar onde ## o nmero da verso, como 92 para a verso
ArcSDE 9.2
Conhecido como ##_sdk.jar onde ## o nmero da verso, como 92 para a verso ArcSDE
9.2

Devemos sempre certificar-nos que as verses de jsde_sdk.jar e jpe_sdk.jar so compatveis com o


ArcSDE, includo o service pack.
Estes ficheiros esto disponveis em C:\Program Files\ArcGIS\ArcSDE\lib.
Esto tambm no site da ESRI:
1. http://support.esri.com/index.cfm?fa=downloads.patchesServicePacks.listPatches&PID=66
2. Encontre o link para o ltimo service pack na sua verso do ArcSDE.
3. Clique em Installing this Service Pack ArcSDE SDK UNIX (independentemente do seu
alvo OS)

64

Curso GeoServer 1.7

4. Faa o download de qualquer um dos ficheiros (mas certifique-se que compatvel com
32/64 bit para o seu OS)
5. Abra o ficheiro, e extraia as JARs.
Para fazer o download do terceiro ficheiro (icu4j_3_2.jar):
1. V at ftp://ftp.software.ibm.com/software/globalization/icu/icu4j/3.2/
2. Faa o download do ficheiro icu4j_3_2.jar.
Quando fizer o download, copie todos os trs ficheiros para o directrio WEB-INF/lib do GeoServer.
Reinicie o GeoServer.

Adicionar um vector ArcSDE Datastore


Para trabalhar com um layer de dados em vector, necessrio registar o ArcSDE instance como
um datastore no GeoServer.
Aceda a Create new feature Data (config-data-datastore-new), em Feature Data Set Description
escolha ArcSDE e clique New.
Nota: Se Arcsde no existe como opo , a extenso no est instalada correctamente.

65

Curso GeoServer 1.7

Configurar o ArcSDE Vector Datastore


Preencha o formulrio, em seguida, clique em Submit.

Opo
Feature Data Set ID
Enabled
Namespace
Description
server
port
instance
user
password
pool.minConnections
pool.maxConnections
pool.timeOut

necessrio Descrio
N/A
O nome da base de dados foi definida na pgina anterior.
Quando esta caixa est checked a base de dados est disponvel
N/A
para o GeoServer
Yes
O namespace associado base de dados.
No
Descrio da base de dados.
Yes
O URL do exemplo ArcSDE instance.
Yes
A porta que o ArcSDE instance is set to listen to. Por defeito 5151.
No
O ArcSDE instance, depende da definio da base de dados.
Yes
O username para autenticar com o ArcSDE instance.
A password associada com o username anterior para autenticar
No
com o ArcSDE instance.
No
Parametros de configurao da Connection pool.
No
Parametros de configurao da Connection pool.
No
Parametros de configurao da Connection pool.

66

Curso GeoServer 1.7

Agora podemos adicionar featurestypes navegando at Create New Feature Type.

Adicionar um ArcSDE raster coveragestore


Primeiro necessrio registar o ArcSDE como um coveragestore no GeoServer.
Navegue at Create New Coverage Data Set. Na opo Coverage data Set Description escolha
ArcSDE Raster Format e clique em New.

Configurar um ArcSDE raster coveragestore


Preencha o formulrio, clique em Submit.

Opo

Necessrio Descrio

67

Curso GeoServer 1.7

Coverage Data Set


ID

N/A

Enabled
Namespace
Type

N/A
Sim
No

URL
Description

Sim
No

O nome da coveragestore dado na pgina anterior.


Quando a caixa est checked a coveragestore est disponvel para o
GeoServer.
O namespace associado com a coveragestore.
O tipo de coveragestore.
O URL do raster, da forma
sde://<user>:<pwd>@<server>/#<tableName>.
Descrio da coveragestore.

Agora podemos adicionar coverages navegando at Create New Coverage Type.

6.6 Geographic Markup Language (GML)


O Geographic Markup Language (GML) um formato baseado em XML para representar dados
espaciais baseadas em vectores.
Nota: O GeoServer no est construdo com suporte para o GML, ele deve ser instalado atravs
de uma extenso.

Instalar a extenso GML


1. Faa o download da extenso do GML na pgina download do GeoServer.

Aviso: Garanta que o download da extenso seja correspondente verso do GeoServer instalada

2. Extraia o contedo do ficheiro para o directrio WEB-INF/lib.

Adicionar um ficheiro GML


Assim que a extenso estiver devidamente instalada o GML aparecer como uma opo para criar
um novo data store.

68

Curso GeoServer 1.7

6.7 MySQL
O MySQL uma base de dados relacional open source com algumas funcionalidades espaciais
limitadas.
Nota: O GeoServer no est construdo com suporte para o MySQL, ele deve ser instalado atravs
de uma extenso.

Instalar uma extenso MySQL


1. Faa o download da extenso MySQL na pgina GeoServer download.

69

Curso GeoServer 1.7

Aviso: Garanta que o download da extenso seja correspondente verso do GeoServer instalada
2. Extraia o contedo do ficheiro para o directrio WEB-INF/lib.

Adicionar uma base de dados MySQL


Assim que a extenso estiver devidamente instalada o MySQL ir aparecer como uma opo para
criar uma nova Datastore.

70

Curso GeoServer 1.7

Opes MySQL
host
port
database
user
password
max connections
min connections
validate connections

O nome e ip do servidor mysql.


Porta onde o server mysql server aceita conexes.
O nome da base de dados a conectar.
Nome do user a conectar base de dados mysql.
A password a usar para conectar base de dados.

Parametros de configurao da Connection pool

6.8 Oracle
Oracle Spatial e Locator so as extenses espaciais da Oracle.
Nota: O GeoServer no est construdo com suporte para o Oracle, ele deve ser instalado atravs
de uma extenso.

Instalar a Extenso Oracle


1. Faa o download da extenso Oracle na pgina GeoServer download.
Aviso: Garanta que o download da extenso seja correspondente verso do GeoServer instalada
2. Extraia o contedo do ficheiro para o directrio WEB-INF/lib.

Oracle Call Interface (OCI)


Uma conexo pode ser estabelecida de duas formas. A forma standard para se conectar ao Oracle
atravs do driver JDBC, uma biblioteca Java totalmente porttil que funciona como um thin client
em qualquer computador. Esta a maneira recomendada para estabelecer uma conexo Oracle.
A alternativa estabelecer uma conexo OCI (Oracle Call Interface). Esta exige que a driver OCI
seja instalada na mesma mquina em que o GeoServer est a ser executado. Conectando com a
OCI tem o benefcio do aumento de desempenho.

71

Curso GeoServer 1.7

Adicionar uma base de dados Oracle


Assim que a extenso estiver devidamente instalada, a Oracle e Oracle OCI aparecer como uma
opo ao criar uma nova base de dados.

Opes Oracle

host
port
user

Nome e ip address do servidor oracle.


Porta onde o servidor oracle aceita conexes.
Nome do user para conectar base de dados oracle.

72

Curso GeoServer 1.7

password
instance
schema

A password a usar quando nos ligamos base de dados.


O nome da oracle instance a ser connectado.
O schema da base de dados para aceder as tabelas.
Parametros de configurao da Connection pool configuration.

max connections
min connections
validate connections

Opes Oracle OCI

alias
utilizador
senha
esquema

O nome do usurio para se conectar base de dados da Oracle.


A senha para usar quando conectar base de dados. Deixada em branco para nenhuma
password.
A base de dados do schema para aceder s tabelas.

6.9 Prxima gerao Oracle (NG)


Oracle Spatial e Locator so as extenses da Oracle.
Nota: O GeoServer no contm suporte para o Oracle, ele deve ser instalado atravs de uma
extenso.

Instalar a extenso Oracle NG


73

Curso GeoServer 1.7

1. Faa o download da extenso Oracle NG na pgina GeoServer download.


Aviso: Garanta que o download da extenso seja correspondente verso do GeoServer instalada
2. Extraia o contedo do ficheiro para o directrio WEB-INF/lib.

Adicionar uma base de dados Oracle


Assim que a extenso estiver devidamente instalada OracleNG aparecer como uma opo ao
criar uma nova Datastore.

Configurar uma Datastore Oracle

74

Curso GeoServer 1.7

Opo
host
port
database
schema
user
password
max connections
min connections
fetch size
connection timeout
validate connections
Loose bbox

Descrio
Nome do servidor Oracle e IP adress.
A porta onde o Oracle aceita ligaes.
Nome da base de dados a fazer a ligao.
O schema da base de dados para aceder as tabelas.
Nome do utilizador quando nos ligamos base de dados oracle.
Password de ligao base de dados. Deixe em branco quando no quiser Password.

Parmetros de configurao da Connection pool.


Controla como a bounding box comparisons feita em relao geometria da base
de dados.

75

Curso GeoServer 1.7

Utilizar loose bounding box


Quando a opo loose bbox se encontra definida, apenas a geometria bounding box utilizada.
Isto leva a uma maior performance. A desvantagem que algumas geometrias podem ser
consideradas dentro de uma bounding box quando tecnicamente no o esto.
Se o uso principal da base de dados atravs do Web Map Service esta marca pode ser definida
com segurana visto a perda de alguma preciso aceitvel. No entanto, se usar o Web Feature
Service e fizer uso da BBOX filtering capabilities, esta marca no deve ser definida.

6.10 SQL Server


Microsoft SQL Server (http://www.microsoft.com/sqlserver/2008/) uma base de dados relacional
com funcionalidade espacial.
Nota: O GeoServer no contm suporte para o SQL Server, ele deve ser instalado atravs de uma
extenso.

instalar a extenso SQL Server


1. Faa o download da extenso Oracle NG na pgina GeoServer download.
Aviso: Garanta que o download da extenso seja correspondente verso do GeoServer instalada
Extraia o contedo do ficheiro para o directrio WEB-INF/lib.

Driver SQL server JDBC


1. V at pgina de download Microsofts JDBC.
2. Clique no link download do SQL Server 2005 JDBC Driver 1.2
3. Clique no boto Download.

76

Curso GeoServer 1.7

Aceitar a licena e escolher o sistema operativo. Copie o ficheiro sqljdbc.jar para a directoria WEBINF/lib.

Adicionar uma base de dados SQL server


Assim que a extenso estiver devidamente instalada o SQL Server vai mostrar-se como uma opo
ao criar um novo data store.

77

Curso GeoServer 1.7

Opes do SQL server

Host nome do servidor ou ip address


Port a porta onde o sql server instance aceita as conexes

Database o nome da base de dados a conectar.


Schema o esquema da base de dados para aceder tabela.
User o nome do utilizador
Password password utilizada quando se faz a ligao base de dados.
Max connections, Min connections parmetros de configurao da connection pool.

78

Curso GeoServer 1.7

6.11 Vector Product Format


Nota: O GeoServer no contm suporte para o vector product format, ele deve ser instalado
atravs de uma extenso.

Instalar a extenso VPF


1. Faa o download da extenso VPF na pgina GeoServer download.
Aviso: Garanta que o download da extenso seja correspondente verso do GeoServer instalada
2. Extraia o contedo do ficheiro para o directrio WEB-INF/lib.

Adicionar um ficheiro VPF


Assim que a extenso estiver devidamente instalada o Vector Product Format Library vai mostrarse como uma opo ao criar um novo data store.

79

Curso GeoServer 1.7

6.12 Database Connection Pooling


Quando o GeoServer atende a um pedido que envolve carregar dados de uma tabela de uma base
de dados, a ligao base de dados tem de ser previamente estabelecida. Esta ligao vem com
um custo, ou seja o tempo necessrio para criar tal ligao.
O objectivo desta connection pool a de manter a ligao a uma base de dados subjacente entre
os pedidos. O benefcio desta conexo que esta s precisa de ocorrer no primeiro pedido.
Posteriormente podemos usar conexes existentes e conseguir um bom desempenho.
Sempre que um datastore sustentado por uma base de dados adicionado ao GeoServer, criada
uma internal connection pool.

80

Curso GeoServer 1.7

Opes de Connection pool

max
connections

min
connections
validate
connections

fetch size
connection
timeout

O nmero mximo de conexes que o pool pode suportar. Quando o nmero mximo de
conexes for ultrapassado, pedidos adicionais que exigem uma conexo de dados ser
interrompida at que uma ligao a partir do pool se torne disponvel. O nmero mximo
de conexes limita o nmero de pedidos simultneos que podem ser feitas base de
dados.
O nmero mnimo de ligaes que o pool consegue efectuar. O nmero de conexes
mantido mesmo quando no existem pedidos. Quando este nmero de conexes
ultrapassado devido a atender os pedidos, conexes adicionais esto abertas at o pool
atingir seu tamanho mximo.
Uma marca indica as conexes que devem ser validadas antes de serem utilizadas. A
vantagem de definir este sinalizador que uma ligao invlida nunca ser utilizada o que
pode evitar erros.
Nmero de registos lidos a partir da base de dados. Se estiver definido muito baixo (<50)
ir afectar negativamente o seu desempenho e se estiver definido muito alto vai consumir
muita memria do GeoServer e ir aparecer uma mensagem de erro. O valor ideal 1000
registos.
Tempo, em segundos, que a connection pool vai demorar at se ligar base de dados. Por
defeito est definido 20 segundos.

81

Curso GeoServer 1.7

6.13 JNDI e connection pools


Java Naming and Directory Interface (JNDI) uma tecnologia J2EE que juntamente com outros
permite ao administrador fornecer uma connection pool a uma aplicao que corre num Web
container. Algumas das vantagens desta abordagem so:

Os detalhes da ligao base de dados no so partilhados com as aplicaes


Algumas aplicaes no podem partilhar algumas connection pool
Permite ao administrador escolher a melhor performance da connection pool para casos
especficos (ex: uma aplicao Java a correr dentro de um Oracle Web Container e acesso
base de dados Oracle).

No caso especfico do GeoServer h uma vantagem adicional: o GeoServer recria as pool cada vez
que a configurao alterada, ou seja, os pedidos que esto sendo executados quando isto
acontece iro falhar. Se a connection pool gerada externamente isso no acontece. A
desvantagem do JNDI reside principalmente no procedimento para configurar a connection pool:
diferente para cada Web container e requer a edio de alguns ficheiros xml (GeoServer own
web.xml).

6.14 Recuperar uma connection pool de um JNDI


Ao iniciar o GeoServer 1.7.5 algumas datastore podem recuperar a conexo com o JNDI. Para
melhorar esta funcionalidade, use o data store que aparece como JNDI e use o nome da reference
pool (java:comp/env/{poolPath}).
Se a pool estiver ligada jdbc\oralocal a configurao do parmetro jndiReferenceName vai ser
java:comp/env/jdbc/oralocal.

82

Curso GeoServer 1.7

7.Styling
7.1 Introduo ao SLD
O Geospatial data no est associado a uma componente visual. Para ver os dados, deve escolher
o estilo, a cor, a espessura, e outros atributos visveis. No GeoServer, a simbologia realizada
utilizando uma linguagem de chamada SLD (Styled Layer Descriptor). O SLD uma linguagem
baseada em XML.
Nota: Visto o GeoServer utilizar o SLD exclusivamente para o styling, os termos "SLD" e "style"
sero muitas vezes utilizados alternadamente.

Tipos de Simbologia

83

Curso GeoServer 1.7

Os dados inseridos no GeoServer so constitudos por trs classes de formatos: pontos, linhas e
polgonos. Os pontos podem ser especificados com formas bem conhecidas como crculos,
quadrados, estrelas e at mesmo grficos personalizados ou de texto. As linhas so as mais
simples, apresentando apenas uma dimenso. Os polgonos tm formas bidimensionais, tm uma
linha de exterior e uma cor no seu interior.
Relativamente criao de simbologia as possibilidades so imensas. A definio da simbologia
pode ser baseada nos atributos dos dados, desta forma determinadas features sero
representadas de forma diferente. Tambm podem ser representadas de acordo com o zoom, ou
com o tamanho da feature. O GeoServer ainda permite a colocao de textos.

GeoServer e SLD
Cada layer (featuretype) registado no GeoServer precisa de ter pelo menos uma simbologia
associada. O GeoServer contm alguns estilos bsicos, e novos estilos podem ser acrescentados.
possvel alterar qualquer estilo associado a uma layer em qualquer momento. Quando se adiciona
um layer e um estilo no GeoServer ao mesmo tempo, o estilo deve ser adicionado em primeiro
lugar, de modo a que a nova layer possa ser associada com o estilo escolhido.

Um estilo bsico
Este SLD tem um layer que contm pontos e representa-o atravs de crculos vermelhos com um
tamanho de 6 pixels.

1. <? xml version = "1.0" encoding = "ISO-8859-1"?>


2. <StyledLayerDescriptor version = "1.0.0"
3. XSI: schemaLocation = "http://www.opengis.net/sld StyledLayerDescriptor.xsd"
4. xmlns = "http://www.opengis.net/sld"
5. xmlns: ogc = "http://www.opengis.net/ogc"
6. xmlns: xlink = "http://www.w3.org/1999/xlink"
7. xmlns: XSI = "http://www.w3.org/2001/XMLSchema-instance">
8. <NamedLayer>
9. <Name> Simple point</ Name>
10. <UserStyle>
11. <Title> GeoServer SLD Cook Book: Simple point</ Title>
12. <FeatureTypeStyle>
13. <Rule>

84

Curso GeoServer 1.7

14. <PointSymbolizer>
15. <Graphic>
16. <Mark>
17. <WellKnownName> Crculo </ WellKnownName>
18. <Fill>
19. <CssParameter Name= "fill"> # FF0000 </ CssParameter>
20. </ Fill>
21. </ Mark>
22. <Size> 6 </Size>
23. </ Graphic>
24. </ PointSymbolizer>
25. </ Rule>
26. </ FeatureTypeStyle>
27. </ UserStyle>
28. </ NamedLayer>
29. </ StyledLayerDescriptor>
30.
No deixe que este exemplo o intimide, apenas algumas linhas so realmente importantes para a
sua compreenso.
Linha 14 indica que estamos a usar um "PointSymbolizer", um estilo para um ponto.
Linha 17 diz que estamos a usar um "Nome bem conhecido", um crculo, para representar os
pontos. Existem muitos nomes conhecidos como "square", "star", "triangle", etc
Linhas 18-20 preencher com uma cor de # FF0000 (vermelho). Esta uma cor com cdigo RGB,
escrito em hexadecimal, em forma de RRGGBB.

Linha 22 especifica que o tamanho da figura de 6 pixels de largura. O resto da estrutura contm
metadados sobre o estilo, como Name/Title/Abstract.

Resolver problemas
O SLD um tipo de linguagem de programao, no entanto no cria uma pgina web ou um
script. Como tal, podero surgir problemas que podem exigir soluo. Ao adicionar um estilo no
GeoServer, ele automaticamente marcado para a validao com a especificao OGC SLD
(embora isso possa ser evitado), mas no ser verificada a existncia de erros. muito fcil
provocar um erro SLD de sintaxe vlido. Na maioria das vezes isso ir resultar num mapa em
branco (nada exibido), mas s vezes os erros podero impedir a visualizao total do mapa.

85

Curso GeoServer 1.7

A maneira mais fcil de corrigir os erros num SLD tentar isolar o erro. Se o SLD longo e inclui
diversas regras e filtros, tente remover temporariamente alguns deles para ver se os erros
desaparecem.
Para minimizar os erros durante a criao do SLD, recomendado usar um editor de texto prprio
para trabalhar com o XML.

7.2 SLD Cook Book


O SLD Cook Book uma coleco de "receitas" SLD para a criao de diversos tipos de estilos.
dividido em quatro seces, as primeiras trs baseadas em formatos vectoriais (pontos, linhas e
polgonos) e a quarta seco para rasters. Cada exemplo contm um inline snippet do cdigo
especfico para o estilo, mostrando uma imagem real no GeoServer, e um link para fazer o
download do SLD para criar o output.

7.2.1 Pontos
Pontos, em teoria, so o estilo mais simples. No entanto, existem muitos estilos diferentes para
um ponto talvez mesmo mais do que linhas e polgonos.
Aviso: Os exemplos de cdigos mostrados nesta pgina so cdigos SLD, omitindo as informaes
do cabealho e rodap necessrias para SLDs. Por favor, use os links para fazer o download na
ntegra dos SLDs para cada exemplo.

Layer de pontos
A layer de pontos usada para os exemplos a seguir contm informaes sobre as principais
cidades de um pas fictcio.
Feature ID
Ponto 1
Ponto 2
Ponto 3

nome
Borfin
Supox City
Ruckis

populao
157860
578231
98159

86

Curso GeoServer 1.7

Ponto
Ponto
Ponto
Ponto

4
5
6
7

Thisland
Synopolis
San Glissando
Detrania

34879
24567
76024
205609

7.2.1.1 Ponto Simples


Este exemplo especifica pontos a serem denominados como crculos vermelhos, com um dimetro
de 6 pixels.

Cdigo
1. <FeatureTypeStyle>
2. <Rule>
3. <PointSymbolizer>
4. <Graphic>
5. <Mark>
6. <WellKnownName> Crculo </ WellKnownName>
7. <Fill>
8. <CssParameter Name= "fill"> # FF0000 </ CssParameter>
9. </ Fill>
10. </ Mark>
11. <Size> 6 </ Size>
12. </ Graphic>
13. </ PointSymbolizer>
14. </ Rule>

87

Curso GeoServer 1.7

15. </ FeatureTypeStyle>


16.
Detalhes
Existe uma <Rule> em <FeatureTypeStyle> para este estilo, que a situao mais simples
possvel (Todos os exemplos posteriores iro partilhar esta caracterstica salvo especificao em
contrrio). Linha 6 especifica a forma do smbolo (um crculo), com a linha 8 determina a cor de
preenchimento de cor vermelha (# FF0000). Linha 11 define o tamanho do grfico de 6 pixels.

7.2.1.2 Ponto simples com limite


Este exemplo adiciona um limite em torno do ponto simples, a preto e com uma espessura de 2
pixel.

Cdigo
1.
2.
3.
4.
5.
6.

<FeatureTypeStyle>
<Rule>
<PointSymbolizer>
<Graphic>
<Mark>
<WellKnownName> Crculo </ WellKnownName>

88

Curso GeoServer 1.7

7. <Fill>
8. <CssParameter Name= "fill"> # FF0000 </ CssParameter>
9. </ Fill>
10. <Stroke>
11. <CssParameter Name= "stroke"> # 000000 </ CssParameter>
12. <CssParameter Name= "stroke-width"> 2 </ CssParameter>
13. </ Stroke>
14. </ Mark>
15. <Size> 6 </ Size>
16. </ Graphic>
17. </ PointSymbolizer>
18. </ Rule>
19. </ FeatureTypeStyle>
20.
Detalhes
Grande parte deste exemplo semelhante ao ponto simples mencionado acima. Linhas 10/13
especifica os limites, linha 11 define a cor preta (# 000000) e linha 12 configura a largura de 2
pixels. (omitir a Linha 12 se a espessura do limite for a de defeito 1 pixel))

7.2.1.3 Quadrado Rodado


Este exemplo usa um quadrado em vez de um crculo, de cor verde, de tamanho maior, e o
quadrado rodado a 45 graus.

89

Curso GeoServer 1.7

Cdigo
1. <FeatureTypeStyle>
2. <Rule>
3. <PointSymbolizer>
4. <Graphic>
5. <Mark>
6. <WellKnownName> Quadrado </ WellKnownName>
7. <Fill>
8. <CssParameter Name= "fill"> # 009900 </ CssParameter>
9. </ Fill>
10. </ Mark>
11. <Size> 12 </ Size>
12. <Rotation> 45 </ Rotation>
13. </ Graphic>
14. </ PointSymbolizer>
15. </ Rule>
</ FeatureTypeStyle>

Detalhes
A linha 6 define que o ponto ser um quadrado, linha 8 define a cor verde (# 009900). Linha 11
define o tamanho do ponto de 12 pixels, e rotao fixada em 45 graus na linha 12.

7.2.1.4 Tringulo Transparente


O exemplo substitui a forma por um tringulo, mantm o rebordo a negro, e define o enchimento
do tringulo a 20% de opacidade (transparente).

90

Curso GeoServer 1.7

Cdigo
1. <FeatureTypeStyle>
2. <Rule>
3. <PointSymbolizer>
4. <Graphic>
5. <Mark>
6. <WellKnownName> Tringulo </ WellKnownName>
7. <Fill>
8. <CssParameter Name= "fill"> # 009900 </ CssParameter>
9. <CssParameter Name= "fill-opacity"> 0,2 </ CssParameter>
10. </ Fill>
11. <Stroke>
12. <CssParameter Name= "stroke"> # 000000 </ CssParameter>
13. <CssParameter Name= "stroke-width"> 2 </ CssParameter>
14. </ Curso>
15. </ Mark>
16. <Size> 12 </ size>
17. </ Graphic>
18. </ PointSymbolizer>
19. </ Artigo>
20. </ FeatureTypeStyle>
21.
Detalhes
Linha 6, mais uma vez, define a forma, neste caso para um tringulo. Linha 8 define a cor de
preenchimento, e linha 9 define a opacidade a 0,2 (20% opaco). Linha 12 e linha 13

91

Curso GeoServer 1.7

determinam a cor e a largura do limite, respectivamente. Finalmente, linha 16 define o tamanho


do ponto a ser de 12 pixels.

7.2.1.5 Grfico

Cdigo
1. <FeatureTypeStyle>
2. <Rule>
3. <PointSymbolizer>
4. <Graphic>
5. <ExternalGraphic>
6. <OnlineResource
7. xlink: type = "simples"
8. xlink: href = "smileyface.png" />
9. <format> Image / png </ Format>
10. </ ExternalGraphic>
11. <Size> 32 </ Size>
12. </ Graphic>
13. </ PointSymbolizer>
14. </ Rule>
15. </ FeatureTypeStyle>
16.

92

Curso GeoServer 1.7

Detalhes
Este estilo utiliza um grfico externo. Linhas 5/10 para especificar os detalhes. Aqui, o grfico
est contido no mesmo directrio que o estilo, assim no necessrio nenhuma informao
relativa ao caminho, porm um URL externo poderia ter sido utilizado. Linha 8 define o caminho e
o nome do ficheiro do grfico, a linha 9 indica o formato (tipo MIME) do grfico (image/png). Linha
11 determina o tamanho do grfico exibido, o que pode ser independente do tamanho real do
grfico propriamente dito, embora, neste caso, eles so os mesmos (32 pixels).

7.2.1.6 Ponto com label


Este exemplo mostra uma label de texto num ponto simples, mostrando o atributo do ponto. Na
ausncia de qualquer outra personalizao, assim que um label ser exibido.

Cdigo
1.
2.
3.
4.
5.

<FeatureTypeStyle>
<Rule>
<PointSymbolizer>
<Graphic>
<Mark>

93

Curso GeoServer 1.7

6. <WellKnownName> Crculo </ WellKnownName>


7. <Fill>
8. <CssParameter Name= "fill"> # FF0000 </ CssParameter>
9. </ Fill>
10. </ Mark>
11. <Size> 6 </Size>
12. </ Graphic>
13. </ PointSymbolizer>
14. <TextSymbolizer>
15. <label>
16. <ogc:PropertyName> name </ ogc: PropertyName>
17. </ Label>
18. /> <font
19. <Fill>
20. <CssParameter Name= "fill"> # 000000 </ CssParameter>
21. </ Fill>
22. </ TextSymbolizer>
23. </ Rule>
24. </ FeatureTypeStyle>
25.
Detalhe
Linhas 3-13 (<PointSymbolizer>) so idnticos ao ponto simples. O label fixado no
<TextSymbolizer> nas linhas 14-22. Linhas 15-17 determina qual o texto a mostrar, neste caso
o valor do atributo "nome". A linha 20 define a cor do texto. No esquea a linha 18: embora
no exista qualquer contedo no <Font/>, ainda exigida pela especificao OGC SLD.

7.2.1.7 Ponto com um styled label


Este exemplo melhora o estilo do label colocando-o acima do ponto e especificando o tipo de letra
nome e tamanho.

94

Curso GeoServer 1.7

Cdigo

1. <FeatureTypeStyle>
2. <Rule>
3. <PointSymbolizer>
4. <Graphic>
5. <Mark>
6. <WellKnownName> Crculo </ WellKnownName>
7. <Fill>
8. <CssParameter Name= "fill"> # FF0000 </ CssParameter>
9. </ Fill>
10. </ Mark>
11. <Size> 6 </ size>
12. </ Graphic>
13. </ PointSymbolizer>
14. <TextSymbolizer>
15. <label>
16. <ogc:PropertyName> nome </ ogc: PropertyName>
17. </ Label>
18. <Font>
19. <CssParameter Name= "font-family"> Arial </ CssParameter>
20. <CssParameter Name= "font-size"> 12 </ CssParameter>
21. <CssParameter Name= "font-style"> normal </ CssParameter>
22. <CssParameter Name= "font-weight"> bold </ CssParameter>
23. </ Font>

95

Curso GeoServer 1.7

24. <LabelPlacement>
25. <PointPlacement>
26. <AnchorPoint>
27. <AnchorPointX> 0.5 </ AnchorPointX>
28. <AnchorPointY> 0,0 </ AnchorPointY>
29. </ AnchorPoint>
30. <Displacement>
31. <DisplacementX> 0 </ DisplacementX>
32. <DisplacementY> 5 </ DisplacementY>
33. </ Displacement >
34. </ PointPlacement>
35. </ LabelPlacement>
36. <Fill>
37. <CssParameter Name= "fill"> # 000000 </ CssParameter>
38. </ Fill>
39. </ TextSymbolizer>
40. </ Rule>
41. </ FeatureTypeStyle>
42.
Detalhe
Linhas 3-13 Indica o ponto simples. Os <TextSymbolizer> nas linhas 14-39 contm muito mais
detalhes sobre o label do que no exemplo anterior. Linhas 15-17 especificam o atributo a usar
para exibir o label. Linhas 18-23 definem a informao da fonte: linha 19 define o tipo de letra
"Arial", linha 20 define o tamanho da fonte para 12, linha 21 define o estilo da fonte para
"normal", e a linha 22 define o tipo de letra a "negrito".
Linhas 24-35 (<LabelPlacement>) determina a colocao do label em relao ao ponto. Isto a
<AnchorPoint> (linhas 26-29), que define o lugar de interseco entre o label e o ponto, que
aqui (linha 27) est definida para metade (0,5) ao longo da direco horizontal. Existe tambm
<Displacement> (linhas 30-33), o deslocamento do label em relao linha, que neste caso de
0 pixels na direco horizontal (linha 31)

e 5 pixels na direco vertical (linhas 32). Finalmente, linha 37 define a cor para preto (#
000000).
O resultado um label colocado centrado ligeiramente acima do ponto.

96

Curso GeoServer 1.7

7.2.1.8 Ponto com o label rodado


Este exemplo roda o label anterior de 45 graus e define 25 pixels de deslocamento para colocar o
label mais distante do ponto

Cdigo
1. <FeatureTypeStyle>
2. <Rule>
3. <PointSymbolizer>
4. <Graphic>
5. <Mark>
6. <WellKnownName> Crculo </ WellKnownName>
7. <Fill>
8. <CssParameter Name= "fill"> # FF0000 </ CssParameter>
9. </ Fill>
10. </ Mark>
11. <Size> 6 </ size>
12. </ Graphic>
13. </ PointSymbolizer>
14. <TextSymbolizer>
15. <label>
16. <ogc:PropertyName> nome </ ogc: PropertyName>
17. </ Label>
18. <Font>

97

Curso GeoServer 1.7

19. <CssParameter Name= "font-family"> Arial </ CssParameter>


20. <CssParameter Name= "font-size"> 12 </ CssParameter>
21. <CssParameter Name= "font-style"> normal </ CssParameter>
22. <CssParameter Name= "font-weight"> bold </ CssParameter>
23. </ Font>
24. <LabelPlacement>
25. <PointPlacement>
26. <AnchorPoint>
27. <AnchorPointX> 0.5 </ AnchorPointX>
28. <AnchorPointY> 0,0 </ AnchorPointY>
29. </ AnchorPoint>
30. <Displacement>
31. <DisplacementX> 0 </ DisplacementX>
32. <DisplacementY> 25 </ DisplacementY>
33. </ Displacement>
34. <Rotation> -45 </ Rotation>
35. </ PointPlacement>
36. </ LabelPlacement>
37. <Fill>
38. <CssParameter Name= "fill"> # 990099 </ CssParameter>
39. </ Fill>
40. </ TextSymbolizer>
41. </ Rule>
42. </ FeatureTypeStyle>
43.
Detalhes
Grande parte deste exemplo o mesmo que o estilo acima. Existem apenas trs diferenas
importantes. Linha 32 especifica 25 pixels de deslocamento vertical (em vez de 5 pixels). Linhas
54-56 especificam uma rotao de 45 graus (os valores aumentam no sentido horrio, e por isso
que o valor negativo.) Por ltimo, linha 38 define uma sombra de cor prpura (# 99099).

7.2.1.9 Attribute-based point


Este exemplo altera a aparncia dos pontos baseada no atributo populao.

98

Curso GeoServer 1.7

Cdigo
1. <FeatureTypeStyle>
2. <Rule>
3. <Nome> SmallPop </ Nome>
4. <Title> 1-50000 </ Title>
5. <ogc:Filter>
6. <ogc:PropertyIsLessThan>
7. <ogc:PropertyName> pop </ ogc: PropertyName>
8. <ogc:Literal> 50000 </ ogc: Literal>
9. </ ogc: PropertyIsLessThan>
10. </ ogc: Filter>
11. <PointSymbolizer>
12. <Graphic>
13. <Mark>
14. <WellKnownName> Crculo </ WellKnownName>
15. <Fill>
16. <CssParameter Name= "fill"> # 0033CC </ CssParameter>
17. </ Fill>
18. </ Mark>
19. <Size> 8 </ size>
20. </ Graphic>
21. </ PointSymbolizer>
22. </ Artigo>
23. <Rule>
24. <Nome> MediumPop </ Nome>
25. <Title> 50000-100000 </ Title>
26. <ogc:Filter>
27. <ogc:And>
28. <ogc:PropertyIsGreaterThanOrEqualTo>
29. <ogc:PropertyName> pop </ ogc: PropertyName>
30. <ogc:Literal> 50000 </ ogc: Literal>
31. </ ogc: PropertyIsGreaterThanOrEqualTo>
32. <ogc:PropertyIsLessThan>
33. <ogc:PropertyName> pop </ ogc: PropertyName>
34. <ogc:Literal> 100000 </ ogc: Literal>

99

Curso GeoServer 1.7

35. </ ogc: PropertyIsLessThan>


36. </ ogc: E>
37. </ ogc: Filter>
38. <PointSymbolizer>
39. <Graphic>
40. <Mark>
41. <WellKnownName> Crculo </ WellKnownName>
42. <Fill>
43. <CssParameter Name= "fill"> # 0033CC </ CssParameter>
44. </ Fill>
45. </ Mark>
46. <Size> 12 </ size>
47. </ Graphic>
48. </ PointSymbolizer>
49. </ Artigo>
50. <Rule>
51. <Nome> LargePop </ Nome>
52. Mais de 100.000 <Title> </ Ttulo>
53. <ogc:Filter>
54. <ogc:PropertyIsGreaterThanOrEqualTo>
55. <ogc:PropertyName> pop </ ogc: PropertyName>
56. <ogc:Literal> 100000 </ ogc: Literal>
57. </ ogc: PropertyIsGreaterThanOrEqualTo>
58. </ ogc: Filter>
59. <PointSymbolizer>
60. <Graphic>
61. <Mark>
62. <WellKnownName> Crculo </ WellKnownName>
63. <Fill>
64. <CssParameter Name= "fill"> # 0033CC </ CssParameter>
65. </ Fill>
66. </ Mark>
67. <Size> 16 </ size>
68. </ Graphic>
69. </ PointSymbolizer>
70. </ Artigo>
71. </ FeatureTypeStyle>
72.

Detalhes
Nota: Os label foram removidos neste exemplo para simplificar o estilo.
Este estilo contem mais de uma <Rule>. Cada regra varia de estilo baseado no valor do atributo
populao para cada ponto. A ordem das regras no importante.

100

Curso GeoServer 1.7

A primeira regra, nas linhas 2-22, especifica o estilo dos pontos cuja populao inferior a
50000. As Linhas 5/10 definem este filtro, com as linhas 6/9 define o filtro "less than", a linha 7
indica o atributo (denoting the atrribute), a linha 8, estabelece o valor de 50000. O grfico um
crculo (linha 14), e o tamanho de 8 pixels (linha 19).
A segunda regra (linhas 23-49) muito semelhante, especificando um estilo para os pontos cuja
populao entre 50000 e 100000. O filtro para a populao est definido nas linhas 36-37, e
mais longo do que a primeira regra porque dois critrios devem ser definidos:
PropertyIsGreaterThanOrEqualTo e PropertyIsLessThan. O tamanho do grfico alterado
para ser de 12 pixels na linha 46.
A terceira regra nas linhas 50-70, define um estilo para atribuir pontos cuja populao superior
a 100000. O filtro para a populao est definido nas linhas 53-58, e novamente a nica
diferena o tamanho do crculo, que nesta regra (linha 67) de 16 pixels.
O resultado desse estilo que as cidades com maior populao tm maiores pontos.

7.2.1.10 Zoom-based point


Este exemplo altera a aparncia dos pontos baseado no nvel de zoom.

101

Curso GeoServer 1.7

Zoom out

Zoom parcial

Zoom in
Cdigo
1. <FeatureType
Style>
2. <Rule>
3. <Name>
Large
</
Name>

102

Curso GeoServer 1.7

4. <MaxScaleDenominator> 160000000 </ MaxScaleDenominator>


5. <PointSymbolizer>
6. <Graphic>
7. <Mark>
8. <WellKnownName> Crculo </ WellKnownName>
9. <Fill>
10. <CssParameter Name= "fill"> # CC3300 </ CssParameter>
11. </ Fill>
12. </ Mark>
13. <Size> 12 </ size>
14. </ Graphic>
15. </ PointSymbolizer>
16. </ Rule>
17. <Rule>
18. <Name> Medium </ Name>
19. <MinScaleDenominator> 160000000 </ MinScaleDenominator>
20. <MaxScaleDenominator> 320000000 </ MaxScaleDenominator>
21. <PointSymbolizer>
22. <Graphic>
23. <Mark>
24. <WellKnownName> Crculo </ WellKnownName>
25. <Fill>
26. <CssParameter Name= "fill"> # CC3300 </ CssParameter>
27. </ Fill>
28. </ Mark>
29. <Size> 8 </size>
30. </ Graphic>
31. </ PointSymbolizer>
32. </ Rule>
33. <Rule>
34. <Name> Small </ Name>
35. <MinScaleDenominator> 320000000 </ MinScaleDenominator>
36. <PointSymbolizer>
37. <Graphic>
38. <Mark>
39. <WellKnownName> Crculo </ WellKnownName>
40. <Fill>
41. <CssParameter Name= "fill"> # CC3300 </ CssParameter>
42. </ Fill>
43. </ Mark>
44. <Size> 4 </Size>
45. </ Graphic>
46. </ PointSymbolizer>
47. </ Rule>
48. </ FeatureTypeStyle>
49.
Detalhes

103

Curso GeoServer 1.7

Zoom-based styles podem ser alguns dos mais complexos ficheiros SLD. Quando combinado com
attribute-based styles, os ficheiros SLD podem ficar muito pesados. No entanto, definir a
simbologia tendo em conta diversos zooms pode tornar os mapas mais realistas, pois quanto mais
nos aproximamos maiores ficam os objectos. precisamente o que este exemplo mostra. Os
pontos vo variar de tamanho baseando-se no nvel de zoom.
Este estilo contm trs regras. (A ordem das regras no importante). A primeira regra (linhas 216) para a maior escala (quando a vista "zoom in"). O zoom definido na linha 4, aplicvel a
qualquer mapa com uma escala de 160000000 ou menos. A regra desenha um crculo (linha 8),
com um tamanho de 12 pixels (linha 13). A segunda regra (linhas 17-32) para um zoom de
nvel mdio. O zoom est definido nas linhas 19-20, aplicvel a qualquer um mapa com escala
entre 160000000 e 320000000. A regra estabelece um crculo com um tamanho de 8 pixels (linha
29). A terceira regra (linhas 33-47) para a menor escala (quando a vista zoom out). O zoom
definido na linha 35, aplicvel a mapas com escala de 320000000 ou mais. A regra estabelece um
crculo com um tamanho de 4 pixels (linhas 44).
O resultado desse estilo que os pontos so desenhadas maiores nos zom in e menores no zoom
out.

7.2.2 Linhas
Linhas, por terem comprimento e no largura, podem parecer uma forma simples. No entanto,
existem muitos truques para tornar mais agradvel a visualizao das linhas, o que
especialmente importante quando se trata de estradas.

7.2.2.1 Linha simples


Este exemplo mostra uma linha com estilo bsico, cor preta com uma espessura de trs (3) pixels.

Optimizar o estilo de uma linha


Um truque usado frequentemente para melhorar o estilo de linhas a de chamar a linha duas
vezes, uma vez com uma pequena espessura, e outra vez com uma espessura um pouco maior.

104

Curso GeoServer 1.7

Uma vez que estas linhas so traadas duas vezes, a ordem do desenho muito importante.
Nesse estilo, todas as linhas so traadas cinza em primeiro lugar, seguido por todas as linhas
azuis. Isto no s assegura que as linhas azuis no sejam tapadas, mas tambm permite um
melhor estilo nas interseces.

7.2.2.2 Linhas tracejadas


Este exemplo assume a linha simples e cria uma linha tracejada. O estilo constitudo por cinco
pixels de linha, seguido por dois pixels de espao em branco.

7.2.2.3 Linhas de caminho de ferro


Este exemplo aproveita o uso de um hatch para criar uma linha de ferro. A linha e o Hatch so
pretos com uma espessura de pixel 2.

7.2.2.4 Label por defeito


Este exemplo mostra um texto sobre uma linha simples. Na ausncia de qualquer outra
personalizao, isto , como um label ser exibido.

7.2.2.5 Label seguido de linha

7.2.2.6 Label repetido


Se as linhas so muito longas, pode ser vantajoso repetir o label. No entanto, muitas repeties
podem atravancar o seu mapa.

105

Curso GeoServer 1.7

7.2.2.7 Label Deslocados


Este exemplo mostra que os label deslocados das suas linhas por uma distncia de dez pixels.

7.2.2.8 Attribute-based style


Existem vrias classes de estradas. Este exemplo mostra estilos das linhas diferentes com base na
classe da estrada

7.2.2.9 Zoom-based style


Este estilo permite-nos que as shapes aumentem quando se faz zoom in no mapa.

7.2.3 Polgonos
Polgonos so formas bidimensionais, com um limite e um interior. Muitos dos mesmos truques
utilizados para os pontos e linhas podem ser aplicadas aos polgonos.

7.2.3.1 Polgono Simples


Este exemplo mostra um polgono com o estilo em azul.

106

Curso GeoServer 1.7

Detalhes
Existe uma <Rule> em <FeatureTypeStyle> para este estilo, que a situao mais simples
possvel. (Todos os exemplos posteriores iro partilhar esta caracterstica salvo especificao em
contrrio). Linha 5 especifica a cor de preenchimento do polgono (# 000080). As linhas em redor
do polgono, como mostra na figura, um dos artefactos do renderer.
Cdigo
1. <FeatureTypeStyle>
2. <Rule>
3. <PolygonSymbolizer>
4. <Fill>
5. <CssParameter Name= "fill"> # 000080 </ CssParameter>
6. </ Fill>
7. </ PolygonSymbolizer>
8. </ Rule>
9. </ FeatureTypeStyle>
10.

7.2.3.2 Polgono simples com stroke


Este exemplo mostra o polgono acima, mas acrescenta um stroke de cinza, com um pixel.

107

Curso GeoServer 1.7

7.2.3.3 Polgono opaco


Este exemplo altera o estilo acima para 50% de opacidade do fill azul.

7.2.3.4 Grfico externo para fill


Este exemplo utiliza um grfico para o preenchimento interior do poligono. O grfico est contido
na mesma directoria do polgono.

7.2.3.5 Label por defeito


Este exemplo mostra um label de texto no polgono. Na ausncia de qualquer outra
personalizao, isto , como o label ser exibido.

7.2.3.6 Adicionar espao em volta do label


Este exemplo adiciona espao ao redor do label, para garantir que ele no se repete demasiado
perto.

7.2.3.7 Label halo


Este exemplo altera o aspecto visual do label, adicionando um halo branco.

7.2.3.8 Attribute-based style


Este exemplo simboliza o polgono com base na populao dos pases que representam.

7.2.3.9 Zoom-based style


Este exemplo estabelece que os label s aparecem em determinados nveis de zoom.

108

Curso GeoServer 1.7

7.2.4 Rasters
Os rasters so dados geogrficos exibidos numa grelha. Eles so semelhantes aos ficheiros
grficos PNG, mas em vez de cada ponto conter informao visual, contm informao geogrfica.
Os exemplos abaixo utilizam um layer de dados que contm um elevation model fictcio de uma
cidade.

7.2.4.1 Gradiente de duas cores


Este exemplo mostra um estilo com duas cores, verde em baixas altitudes e castanhas em
altitudes elevadas.

7.2.4.2 Gradiente de duas cores com transparncia


Este exemplo idntico ao anterior mas define a camada de 50% de opacidade.

7.2.4.3 Gradiente de trs cores com transparncia parcial


Este exemplo apresenta um estilo de trs cores, sendo a terceira cor transparente, de modo que a
cor verde diminui gradualmente em baixas altitudes.

7.2.4.4 Gradiente de muitas cores


Este exemplo mostra um estilo de oito cores.

109

Curso GeoServer 1.7

7.3 Referencias SLD


Um symbolizer especifica como os dados devem ser visualizados. H 5 tipos de symbolizers:
PointSymbolizer, que usado para retratar os dados ponto; LineSymbolizer, que usado para
retratar os dados linha; PolygonSymbolizer, que usado para retratar os dados polgono;
RasterSymbolizer, que utilizado para retratar os dados raster e TextSymbolizer, que usado para
retratar text labels.

7.3.1 PointSymbolizer
O estilo de pontos PointSymbolizer, so elementos que s contm a informao da posio do
ponto.
Syntax
O elemento externo o <Graphic> tag. Isto determina o tipo de visualizao. Existem cinco
possveis tags para incluir no interior do <Graphic> tag:
Tag
<ExternalGraphic>
<Mark>

Necessrio?
No (quando se utiliza
<Mark>)
No (quando se utiliza
<ExternalGraphic>)

<Opacity>

No

<Size>

Sim

<Rotation>

No

Descrio
Especifica um ficheiro imagem para usar
como o symbolizer.
Especifica um formato comum para usar
como o symbolizer.
Determina a opacidade (transparncia) de
symbolizers. Os valores variam entre 0
(totalmente transparente) a 1
(completamente opaco). O valor existente
por defeito 1.
Determina o tamanho do symbolizer em
pixels. Quando utilizado com um ficheiro de
imagem especifica a altura e largura da
imagem.
Determina a rotao do grfico em graus. A
rotao no sentido horrio aumenta. Os
valores negativos indicam rotao no sentido
anti-horrio. O valor existente por defeito
0.

Dentro da tag <ExternalGraphic> tag, existem tambm outras tags adicionais:

110

Curso GeoServer 1.7

Tag

Necessrio?

<OnlineResource>

Sim

<format>

Sim

Descrio
A localizao do arquivo de imagem. Pode ser um URL
ou um caminho local em relao ao SLD.
O tipo MIME do formato da imagem. A maioria dos
formatos padro de imagem da web suportada.

Dentro da <Mark>tag, existem tambm outras tags adicionais:


Tag

<WellKnownName>

Necessrio?

Sim

<Fill>

No (quando se
utiliza <Stroke>)

<Stroke>

No (quando se
utiliza <Fill>)

Descrio
O nome da forma comum. As opes so crculo,
quadrado, tringulo, estrela, cruz, ou x. Por defeito
quadrado.
Especifica como os symbolizer devem ser
preenchidos. As opes so um <CssParameter
name="fill"> especificando uma cor no formato #
RRGGBB, ou <GraphicFill> para um grfico
repetida.
Especifica como o symbolizer deve ser traada na
sua fronteira. As opes so um <CssParameter
name="fill"> especificando uma cor no formato #
RRGGBB ou <GraphicStroke> repetido para um
grfico.

Exemplo
Considere o seguinte Symbolizer tirado do exemplo na seco pontos no SLD Cook Book.

1. <PointSymbolizer>
2. <Graphic>
3. <Mark>
4. <WellKnownName>circle</WellKnownName>
5. <Fill>
6. <CssParameter name="fill">#FF0000</CssParameter>
7. </Fill>
8. </Mark>
9. <Size>6</Size>
10. </Graphic>
11. </PointSymbolizer>

111

Curso GeoServer 1.7

O Symbolizer contm um <Graphic> tag, que exigido. Dentro deste tag est o <Mark> tag e o
<Size> tag, que so os tags mnimos exigido dentro de <Graphic> (quando no esto usando a
<ExternalGraphic>tag). O <Mark>tag contm a <WellKnownName>tag e a <Fill> tag. No so
necessrias outras tags. Em resumo, este exemplo especifica o seguinte:
1. Os dados sero apresentados como pontos
2. Os pontos sero apresentados como crculos
3. Os Crculos sero apresentados, com um dimetro de 6 pixels e preenchidos com a cor
vermelha.

7.3.2 LineSymbolizer
Nos estilos LineSymbolizer, as linhas so elementos com uma geometria tridimensional que
contm posio e comprimento. As Linhas podem ser compostas por vrios segmentos.
Sintaxe
O tag exterior o <Stroke>. Este tag necessrio, e determina a visualizao da linha. Existem
trs possveis tags que podem ser includas dentro do <Stroke> tag.
Tag
<GraphicFill>
<GraphicStroke>
<CssParameter>

Necessrio?
No
No
No

Descrio
Apresenta os pixels da linha com um padro repetido.
Apresenta a linha com um grfico linear repetido.
Determina os parmetros do Styling.

Ao utilizar os tags <GraphicStroke> e <GraphicFill>, necessrio inserir o <Graphic>tag dentro


deles. A sintaxe para esta tag idntica referida em PointSymbolizer.
Dentro da <CssParameter>tag existem tambm parmetros adicionais que esto dentro desta
tag:

Parmetro
name =
"tempos"
name =
"stroke-width"
name =
"stroke-opacity"

Necessrio?
No
No

No

Descrio
Especifica a cor slida dada linha, sob a forma RRGGBB #.
Por defeito preto (# 000000).
Especifica a largura da linha em pixels. Por defeito 1.
Especifica a opacidade (transparncia) da linha. Os valores
possveis esto entre 0 (totalmente transparente) e 1
(totalmente opaco). Por defeito 1.

112

Curso GeoServer 1.7

No

Determina como as linhas so apresentadas nas interseces


com segmentos de linhas. Os valores possveis so mitre
(cantos rectos), round (cantos arredondados), e bevel (canto
na diagonal). Por defeito mitre.
Determina como as linhas so apresentadas no fim dos
segmentos de linha. Os valores possveis so butt (limites
rectos), round (limites arredondados) e square (limites
quadrados). Por defeito butt.
Codifica um trao padro com uma srie de nmeros
separados por espaos. Os nmeros mpares, determinam o
comprimento em pixel para desenhar a linha e os nmeros
pares determinam os espaos em branco entre as linhas. Por
defeito temos uma unbroken line.

No

Especifica a distncia em pixels no padro dasharray no qual


se comea a desenhar. Por defeito 0.

name =
"stroke-linejoin"

No

name =
"stroke-linecap"

No

name =
"strokedasharray"
name =
"strokedashoffset"

7.3.3 PolygonSymbolizer
Nos estilos LineSymbolizer Polygons, a geometria das linhas bidimensional. Podem conter
informaes sobre o estilo do seu limite (stroke) e do seu preenchimento (fill).
Sintaxe
Um <PolygonSymbolizer> pode ter duas tags externas:
Tag
<Fill>
<Stroke>

Necessrio?
No (quando se utiliza
<Stroke>)
No (quando se utiliza <Fill>)

Descrio
Determina o estilo para o preenchimento do
polgono.
Determina o estilo para o limite do polgono.

Os detalhes para a <Stroke> tag so idnticos LineSymbolizer referida acima.


Dentro da <Fill>tag existem outras tags:

Tag
<GraphicFill>
<CssParameter>

Necessrio?
No
No

Descrio
Preenche do polgono com um padro repetido.
Determina os parmetros de preenchimento.

113

Curso GeoServer 1.7

Ao utilizar o <GraphicFill> tag, necessrio inserir o <Graphic> tag dentro dela. A sintaxe para
esta tag idntica PointSymbolizer referida acima.
Dentro da <CssParameter> tag existem tambm parmetros adicionais que esto dentro desta
tag:
Parmetro

Necessrio?

name = "fill"

No

name = "fillopacity"

No

Descrio
Especifica a cor de preenchimento para o polgono, em forma
# RRGGBB. Por defeito cinza (# 808080).
Especifica a opacidade (transparncia) do preenchimento do
polgono. Os valores possveis esto entre 0 (totalmente
transparente) e 1 (totalmente opaco). Por defeito 1.

Exemplo:
Considere o seguinte Symbolizer tomado a partir do exemplo do simple point na seco Polygons
do SLD Cook Book.
1.
2.
3.
4.
5.
6.

<PolygonSymbolizer>
<Fill>
<CssParameter Name= "fill"> # 000080 </ CssParameter>
</ Fill>
</ PolygonSymbolizer>

O Symbolizer contm apenas um <Fill> tag. Dentro dessa tag h um <CssParameter> que
especifica uma cor para preencher o polgono (# 000080).

7.3.3 TextSymbolizer
O TextSymbolizer especifica labels de texto.
Syntaxe
Um <TextSymbolizer> contm as seguintes tags:
Tag
<label>
<Font>

Necessrio?
Sim
No

Descrio
Especifica o contedo do label de texto
Especifica a fonte de informao para os labels

114

Curso GeoServer 1.7

<LabelPlacement>

No

<Halo>
<Fill>

No
No

Define a posio do label relativa feature a que est


associada
Cria um fundo colorido em torno do label de texto, para
situaes de baixo contraste
Determina a cor de preenchimento do label de texto

Dentro da <Font> tag o <CssParameter> tag a nica tag includa. Existem quatro tipos de
parmetros para esta tag, todos includos no interior da <CssParameter>tag:
Parmetro
name = "fontfamily"
name = "fontstyle"
name = "fontweight"
name = "fontsize"

Necessrio?

No

Descrio
Determina o tipo de letra a utilizar para o label. Por defeito
Times.
Determina o estilo da fonte. As opes so normal, italic e
oblique. Por defeito normal.
Determina a espessura da fonte. As opes so normal e
bold. Por defeito normal.

No

Determina o tamanho da fonte em pixels. Por defeito 10.

No
No

Dentro da <Halo> tag existem duas tags para especificar os detalhes do halo:
Tag
<Radius>
<Fill>

Necessrio?
No
No

Descrio
Define o tamanho do raio do crculo em pixels. Por defeito 1.
Define a cor do halo em forma de # RRGGBB. Por defeito branco
(# FFFFFF).

7.3.4 Filtros
Semelhantes ao WHERE do SQL, os filtros so a linguagem para especificar quais os estilos a
aplicar s features nos data set.
Um filtro usado para seleccionar um subset de features de um dataset para aplicar um
symbolizer.
Atributos dos Filtros
Os filtros so usados para restringir dados no-geogrficos de uma feature. Exemplo:

115

Curso GeoServer 1.7

1.
2.
3.
4.
5.

<PropertyIsEqualTo>
<PropertyName> NOME </ PropertyName>
<Literal> Bob </ Literal>
</ PropertyIsEqualTo>

O filtro acima selecciona os elementos que tm um atributo ((NOME)) que tem um valor de "Bob".
Outras operaes semelhantes esto disponveis:

PropertyIsEqualTo
PropertyIsNotEqualTo
PropertyIsLessThan
PropertyIsLessThanOrEqualTo
PropertyIsGreatherThan
PropertyIsGreatherThanOrEqualTo
PropertyIsBetween

Filtros espaciais
Filtros espaciais so usados para limitar os atributos espaciais de uma feature. Exemplo:
1.
2.
3.
4.
5.
6.
7.
8.
9.

<Intersects>
<PropertyName> GEOMETRY </ PropertyName>
<Literal>
<gml:Point>
<gml:coordinates> 1 1 </ gml: coordenates>
</ gml: Point>
</ Literal>
</ Intersects>

O filtro acima selecciona a feature com uma geometria que intersecta o ponto. Uma grande
variedade de operaes espaciais est disponvel:

Intersects
Equals
Disjoint
Within
Overlaps
Crosses
DWithin

116

Curso GeoServer 1.7

Beyond
Distance

Filtros Lgicos
Filtros lgicos so usados para criar combinaes de filtros utilizando as operaes lgicas And, Or
e Not. Exemplo:
1. <And>
2. <PropertyIsEqualTo>
3. <PropertyName>NAME</PropertyName>
4. <Literal>Bob</Literal>
5. </PropertyIsEqualTo>
6. <Intersects>
7. <PropertyName>GEOMETRY</PropertyName>
8. <Literal>
9. <gml:Point>
10. <gml:coordinates>1 1</gml:coordinates>
11. </gml:Point>
12. </Literal>
13. </Intersects>
14. </And>

7.3.5 Regras
Uma regra combina uma srie de symbolizers com um filtro para definir a representao de uma
feature. Exemplo:
<Rule>
<ogc:Filter>
<ogc:PropertyIsGreaterThan>
<ogc:PropertyName>POPULATION</ogc:PropertyName>
<ogc:Literal>100000</ogc:Literal>
</ogc:PropertyIsGreaterThan>
</ogc:Filter>
<PointSymbolizer>
<Graphic>
<Mark>
<Fill><CssParameter name="fill">#FF0000</CssParameter>

117

Curso GeoServer 1.7

</Mark>
</Graphic>
</PointSymbolizer>
</Rule>
A regra acima aplica-se apenas as features com o atributo populao superior a 100.000,
simbolizando-as com um ponto vermelho.
Um documento SLD pode conter muitas regras. Mltiplas regras SLD's so a base para a "temathic
styling". Considere o exemplo acima expandido:
<Rule>
<ogc:Filter>
<ogc:PropertyIsGreaterThan>
<ogc:PropertyName>POPULATION</ogc:PropertyName>
<ogc:Literal>100000</ogc:Literal>
</ogc:PropertyIsGreaterThan>
</ogc:Filter>
<PointSymbolizer>
<Graphic>
<Mark>
<Fill><CssParameter name="fill">#FF0000</CssParameter>
</Mark>
</Graphic>
</PointSymbolizer>
</Rule>
<Rule>
<ogc:Filter>
<ogc:PropertyIsLessThan>
<ogc:PropertyName>POPULATION</ogc:PropertyName>
<ogc:Literal>100000</ogc:Literal>
</ogc:PropertyIsLessThan>
</ogc:Filter>
<PointSymbolizer>
<Graphic>
<Mark>
<Fill><CssParameter name="fill">#0000FF</CssParameter>
</Mark>
</Graphic>
</PointSymbolizer>
</Rule>

118

Curso GeoServer 1.7

O exemplo acima define uma regra adicional onde a POPULAO inferior a 100000 simboliza a
feature com um ponto verde.
As Regras permitem especificar a escala a que a regra ser aplicada. Isto permite diferentes
representaes da feature, dependendo da escala do mapa. Exemplo:
<Rule>
<MaxScaleDenominator>20000</MaxScaleDenominator>
<PointSymbolizer>
<Graphic>
<Mark>
<Fill><CssParameter name="fill">#FF0000</CssParameter>
</Mark>
</Graphic>
</PointSymbolizer>
</Rule>
<Rule>
<MinScaleDenominator>20000</MinScaleDenominator>
<PointSymbolizer>
<Graphic>
<Mark>
<Fill><CssParameter name="fill">#0000FF</CssParameter>
</Mark>
</Graphic>
</PointSymbolizer>
</Rule>
As regras acima especificam que numa escala inferior a 1:20000 as features so simbolizadas com
pontos vermelhos, e numa escala superior as 1:20000 so simbolizadas com pontos azuis.

7.4 Dicas e Truques do SLD


Lidar com vrios tipos de geometria
Pode haver necessidade de apresentar os dados com uma nica geometria, mas o tipo de
contedo pode ser diferente para cada feature (alguns com pontos outros com polgonos, etc.).
O SLD 1.0 no tem uma soluo para resolver estas situaes. Isto deve-se combinao de duas
questes.

119

Curso GeoServer 1.7

A primeira o facto de o ponto, linha ou polgono poder ser aplicada a outro tipo de geometria:

Os point symbolizers podem ser aplicados a qualquer tipo de geometria; se a geometria


no for um ponto, o centroide da feature vai ser utilizado.
Os line symbolizers podem ser aplicados a linhas e a polgonos
Os polygon symbolizers podem ser aplicados a linhas, se inicialmente se adicionar um
segmento ligado ao ltimo ponto da linha.

A segunda questo que no h nenhuma forma padro de aplicar um filtro para identificar o tipo
de atributo da geometria escolhida.
H uma serie de solues alternativas, exigindo a reestruturao de dados ou o uso de funes
non-standard filter.

Reestruturar os dados
Existem vrias formas de reestruturar os dados de modo a que possam ser apresentados sem
dificuldades usando Standard SLD Constructs.

1. Dividir uma tabela


A primeira dividir a tabela em vrias tabelas, cada uma contendo um tipo de geometria. Se por
exemplo a tabela tiver uma coluna com pontos, linhas e polgonos, vo ser geradas trs tabelas,
cada uma contendo um tipo de geometria.
2. Separar a geometria das colunas
A segunda utilizar uma tabela e separar a geometria das colunas. Assim a tabela depois de
reestruturada vai ter 3 colunas, pontos, linhas e polgonos, cada uma contendo apenas um tipo de
geometria. Depois da reestruturao o symbolizers vai-se referir a uma geometria especfica, por
exemplo:
<PolygonSymbolizer>
<Geometry><ogc:PropertyName>polygon</ogc:PropertyName></Geometry>
</PolygonSymbolizer>

120

Curso GeoServer 1.7

Assim cada symbolizer vai corresponder apenas ao tipo de geometria que suposto apresentar, e
vai ignorar as colunas com valor nulo.
3. Adicionar uma coluna de geometria
A terceira forma adicionar uma coluna do tipo geometria que permite utilizar filtering constructs,
e construir uma regra por tipo de geometria. No exemplo abaixo, um novo atributo, gtype vai ser
adicionado contendo pontos, linhas e polgonos.

<Rule>
<ogc:Filter>
<ogc:PropertyIsEqualsTo>
<ogc:PropertyName>gtype</ogc:PropertyName>
<ogc:Literal>Point</ogc:PropertyName>
</ogc:PropertyIsEqualsTo>
</ogc:Filter>
<PointSymbolizer>
...
</PointSymbolizer>
</Rule>
<Rule>
<ogc:Filter>
<ogc:PropertyIsEqualsTo>
<ogc:PropertyName>gtype</ogc:PropertyName>
<ogc:Literal>Line</ogc:PropertyName>
</ogc:PropertyIsEqualsTo>
</ogc:Filter>
<LineSymbolizer>
...
</LineSymbolizer>
</Rule>
<Rule>
<ogc:Filter>
<ogc:PropertyIsEqualsTo>
<ogc:PropertyName>gtype</ogc:PropertyName>
<ogc:Literal>Polygon</ogc:PropertyName>
</ogc:PropertyIsEqualsTo>
</ogc:Filter>
<PolygonSymbolizer>
...

121

Curso GeoServer 1.7

</PolygonSymbolizer>
</Rule>
Todas as sugestes dadas funcionam sobre o pressuposto que reestruturar os dados
tecnicamente possvel, o que normalmente verdade nas base de dados espaciais que fornecem
funes que permitem reconhecer o tipo de geometria.

Criar views
Um mtodo menos evasivo para obter os mesmos resultados sem alterar a estrutura da tabela
criar views com a estrutura pretendida. Isto permite que os dados originais se mantenham
intactos, e as views so usadas apenas para visualizao.

Usar funes SLD non-standard


SLD 1.0 utiliza o filtro OGC1.0 para filtrar os dados para serem renderered por cada regra. Uma
funo um conjunto de vrios parmetros de input que devolvem resultados. Pode implementar
muitas funcionalidades, como funes trigonomtricas, formatar datas, ou determinar o tipo de
geometria.
Qualquer document SLD que use funes vlido, mas no transportvel para outro software
SIG. Se isto no for um problema, filtrar por tipo de geometria pode ser feito usando a funo
geometryType, que define o tipo de geometria e devolve uma string, que pode ser um Point,
LineString, LinearRing, Polygon, MultiPoint, MultiLineString, MultiPolygon ou GeometryCollection.
Usando a funo, <Rule> correspondendo apenas a pontos pode ser escrita assim:
<Rule>
<ogc:PropertyIsEqualsTo>
<ogc:Function name="geometryType">
<ogc:PropertyName>geom</ogc:PropertyName>
</ogc:Function>
<ogc:Literal>Point</ogc:Literal>
</ogc:PropertyIsEqualsTo>
<PointSymbolizer>
...
</PointSymbolizer>

122

Curso GeoServer 1.7

</Rule>

O filtro torna-se mais complexo se fizer a ligao a algum tipo de geometria. Nesse caso pode ser
escrita assim:

<Rule>
<ogc:Filter>
<ogc:PropertyIsEqualsTo>
<ogc:Function name="in3">
<ogc:Function name="geometryType">
<ogc:PropertyName>geom</ogc:PropertyName>
</ogc:Function>
<ogc:Literal>LineString</ogc:Literal>
<ogc:Literal>LinearRing</ogc:Literal>
<ogc:Literal>MultiLineString</ogc:Literal>
</ogc:Function>
<ogc:Literal>true</ogc:Literal>
</ogc:PropertyIsEqualsTo>
</ogc:Filter>
<LineSymbolizer>
...
</LineSymbolizer>
</Rule>

8.Servios
O GeoServer serve-se de dados utilizando protocolos padro estabelecidos pelo Open Geospatial
Consortium. A Web Feature Service permite solicitar a caracterstica geogrfica de dados
(vectores). A Web Map Service permite que os pedidos de imagens sejam gerados a partir de
dados geogrficos. Finalmente, o Web Coverage Service permite os pedidos de dados coverage
(Raster). Estes servios so o corao do GeoServer.

123

Curso GeoServer 1.7

8.1 Web feature service


8.1.1 WEB basics
Diferenas entre verses WFS
As principais diferenas entre as verses WFS so:

WFS 1.1.0 por defeito do GML retorna a GML3. Em WFS 1.0.0 por defeito GML2 (O
GeoServer ainda suporta pedidos de ambos os formatos GML3 e GML2). O GML3 tem
formas ligeiramente diferentes de especificar uma geometria.
Em WFS 1.1.0, o caminho para especificar o SRS (Sistema de Referncia Espacial) um: xogc: def: crs: EPSG: XXXX, enquanto na verso 1.0.0 a especificao era
http://www.opengis.net/gm/srs/epsg.xml # XXXX. Essa mudana tem implicaes on the
axis order of the returned data.
O suporte WFS 1.1.0 on-the-fly reprojeco de dados, que permite que os dados sejam
retornados em uma SRS que no o nativo.

Ordem dos eixos


O WFS 1.0.0 devolve as coordenadas geogrficas em longitude/latitude (x/y). Esta a forma mais
comum de distribuio de dados.
Os padres so os seguintes:
WFS 1.1.0 pedido = latitude / longitude
WMS 1.0.0 pedido = longitude / latitude
O GeoServer, numa tentativa para minimizar a confuso e aumentar a interoperabilidade, adoptou
as seguintes convenes quando especifica projeces nos seguintes formatos:

EPSG: xxxx - longitude / latitude


http://www.opengis.net/gml/srs/epsg.xml # xxxx - longitude / latitude
urn: x-ogc: def: crs: EPSG: xxxx - latitude / longitude

8.1.2 WFS formatos output


O WFS devolve as features e a informao das features em vrios formatos possveis. Esta
seco mostra uma lista de formatos output. Em todos os casos a sintaxe para conseguir um
output :

124

Curso GeoServer 1.7

outputFormat = <outputformat>
onde o <outputformat> uma das opes abaixo.
Formato
GML2
GML3
Shapefile
JSON
CSV

Sintaxe
outputFormat=GML2
outputFormat=GML3
outputFormat=shape-zip
outputFormat=json
outputFormat=csv

Notas
Por defeito usa o WFS 1.0.0
Por defeito usa o WFS 1.1.0
Cria um arquivo ZIP

8.1.3 WFS vendor parameters


Os Web Feature Service Vendor Parameters so opes que no esto definidas nas especificaes
oficiais do WFS, mas so permitidos por ela. O GeoServer suporta uma gama de parmetros
personalizados WFS.

Filtros CQL
Ao especificar um pedido a um WFS GetFeature GET, pode ser especificado um filtro em CQL
(Common Query Language), em oposio codificao do pedido para o XML. O CQL suporta uma
sintaxe muito mais compacta e legvel comparado com os filtros OGC. O CQL no to flexvel
quanto os filtros OGC, no entanto, no pode codificar tantos tipos de filtros como a especificao
OGC. Em particular, os filtros por feature ID no so suportados.
Exemplo
Exemplo de um filtro com recurso ao OGC filter a partir do GET request:
filter=%3CFilter%20xmlns:gml=%22http://www.opengis.net/gml%22%3E%3CIntersects%3E
%3CPropertyName%3Ethe_geom%3C/PropertyName%3E%3Cgml:Point%20srsName=
%224326%22%3E%3Cgml:coordinates%3E-74.817265,40.5296504%3C/gml:coordinates%3E
%3C/gml:Point%3E%3C/Intersects%3E%3C/Filter%3E

O mesmo filtro usando CQL:

125

Curso GeoServer 1.7

cql_filter = intersect (the_geom, 20POINT% 20% (-74,817265% 2040.5296504))

Projeco
WFS 1.1 permite projectar dados (o GeoServer armazena os dados numa projeco e no GML volta
a outra projeco).
O GeoServer tambm utiliza 1.0 WFS. Ao fazer um WFS 1,0 GetFeature GET podemos adicionar o
seguinte parmetro para especificar a projeco SRS:
srsName = <srsName>
onde <srsName> o cdigo para a projeco (como EPSG: 4326).
Para POST requests, podemos adicionar o mesmo cdigo ao Query element.

Pedido de validao do XML


Por defeiro, o GeoServer um pouco mais permissivo do que a especificao Web Feature Servive
requer. Para reforar a validade dos pedidos XML, utilize o seguinte parmetro:
strict = [true | false]
onde false a opo por defeito.
Exemplo:
Considere o seguinte POST:
<wfs:GetFeature service= "WFS" version= "1.0.0" xmlns:wfs= "http://www.opengis.net/wfs">
<Query TypeName= "topp:states" />
</ wfs: GetFeature>
Esse pedido ser processado com sucesso no GeoServer, mas tecnicamente este pedido
invlido:

O Query element deve ser prefixado com wfs:

126

Curso GeoServer 1.7

O prefixo namespace no foi mapped para um namespace URI

Executando o comando acima com strict=true resulta num erro. Para o pedido ser processado, ele
deve ser alterado:
<wfs:GetFeature
service="WFS"
version="1.0.0"
xmlns:topp="http://www.openplans.org/topp">
<wfs:Query typeName="topp:states"/>
</wfs:GetFeature>

xmlns:wfs="http://www.opengis.net/wfs"

Filtro GetCapabilities namespace


Os pedidos Web Feature Service GetCapabilities podem ser filtrados para apenas retornar a layers
correspondentes a um determinado namespace. Para fazer isso, adicione o seguinte cdigo ao seu
pedido:
namespace = <namespace>
onde o <namespace> o prefixo que se deseja filtrar.
Usando um prefixo namespace invlido no ir causar quaisquer erro, mas o documento devolvido
no contm nenhuma informao.
Nota: Isto afecta apenas as capacidades do documento, e no quaisquer outros pedidos. Os
pedidos WFS no geram outros layers, mesmo quando especificado um namespace diferente,
continuam a ser processados.

8.1.3 Referncia Web Feature Service


O Web Feature Service (WFS) uma norma criada pela OGC que se refere ao envio e recepo de
dados georeferenciados atravs de HTTP. O WFS codifica e transfere informaes no Geography
Markup Language, um subconjunto do XML. A verso actual do WFS 1.1.0. o GeoServer suporta
tanto a verso 1.1.0 (por defeito desde o GeoServer 1.6.0) como a verso 1.0.0. Existem
diferenas entre estes dois formatos, algumas mais subtis do que outras. No entanto, a sintaxe,
muitas vezes permanece a mesma.

127

Curso GeoServer 1.7

Deve ser feita uma distino entre o Web Feature Service e Web Map Service, que se refere ao
envio e recepo de informao geogrfica aps ter sido apresentada como uma imagem digital.

Benefcios do WFS
Podemos pensar no Web Feature Service como o "cdigo-fonte" (source code) para os mapas que
normalmente seriam visveis (via WMS). O WFS leva a uma maior transparncia e veracidade das
aplicaes cartogrficas. O utilizador, em vez de simplesmente visualizar o mapa final, passa a
fazer parte do processo de produo, podendo escolher o tipo de informao que quer vizualizar,
atravs da seleco de layers e dos atributos dos dados e a forma como quer representar a
Informao Geogrfica atravs dos Styles. Os dados tambm podem ser copiados, melhor
analisados, e combinados com outros dados. As capacidades do WFS permitem aplicaes
colaborativas do mapeamento. Em suma, o WFS o que permite abrir dados georeferenciados.
Operaes
O WFS pode realizar as seguintes operaes:
Operao
GetCapabilities
DescribeFeatureType
GetFeature
LockFeature
Transaction

GetGMLObject

Descrio
Recupera uma lista de dados do servidor, bem como operaes e
parmetros vlidos do WFS
Recupera os atributos e informaes sobre um determinado conjunto de
dados
Recupera os dados actuais, incluindo a geometria e atribui valores
Impede que uma determinada feature seja editada
Edita featuretypes existentes atravs de criao, actualizao e
eliminao.
(Verso 1.1.0 somente) Recupera elementos percorrendo os XLinks que
se referem aos XML IDs. (Retrieves element instances by traversing
XLinks that refer to their XML IDs.)

Um servidor que suporta transactions WFS por vezes conhecido como um WFS-T. O GeoServer
apoia plenamente transactions.

GetCapabilities
A operao GetCapabilities um requisito para um servidor WFS de uma lista de operaes e
servios ("capabilities ") sendo oferecidos por esse servidor.

128

Curso GeoServer 1.7

Um GetCapabilities tpico deve ser semelhante a este (a http://www.example.com/wfs URL):


Usando um GET (HTTP padro):
http://www.example.com/wfs?
service=wfs&
version=1.1.0&
request=GetCapabilities
O equivalente usando POST:
<GetCapabilities
service="WFS"
xmlns="http://www.opengis.net/wfs"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd"/>
Os pedidos GET so simples de descodificar, portanto, iremos discuti-las em detalhe, mas os
pedidos POST so anlogos. (Os pedidos estariam todos numa nica linha, sem quebras de linha,
mas a nossa conveno quebrar linhas para uma maior clareza).
Aqui existem trs parmetros passados para o nosso servidor WFS, service=wfs, version=1.1.0, e
request=GetCapabilities. No mnimo, necessrio que um WFS contenha estes trs parmetros
(servio, verso, e pedido).
Existem cinco componentes principais que iremos discutir (outros componentes esto fora do
mbito deste documento.):
ServiceIdentification
Esta seco contm informaes bsicas do "cabealho" como o nome
e ServiceType. O ServiceType menciona que a verso WFS suportada.

ServiceProvider
Esta seco fornece informaes sobre a empresa por trs do servidor WFS, incluindo telefone,
site e e-mail.

129

Curso GeoServer 1.7

OperationsMetadata Esta seco descreve as operaes que o servidor WFS reconhece e os


parmetros para cada operao. Um servidor WFS pode ser configurado para no responder a
todas as operaes acima referidas.

FeatureTypeList
Esta seco lista as featuretypes disponveis. Elas esto listadas no formulrio "namespace:
featuretype".
Tambm a projeco do featuretype est listado aqui, juntamente com a
consequente caixa delimitadora para os dados da projeco.

Filter_Capabilities
Esta seco lista filtros disponveis para o pedido de dados. SpatialOperators (Igual, toques),
ComparisonOperators (Menor que, Maior que), e outras funes esto todas listadas aqui. Estes
filtros no so definidos nos documentos das Capabilities, mas a maioria deles (como as
mencionadas aqui) so evidentes.

Descrever o Tipo de feature


O objectivo da DescribeFeatureType pedir informaes sobre uma featuretype antes de solicitar
os dados reais. Especificamente, DescribeFeatureType ir pedir uma lista de caractersticas e
atributos para a featuretype, ou a lista de featuretypes disponveis.
Vamos dizer que queremos uma lista de featuretypes. O pedido GET seria:
http://www.example.com/wfs?
servio = wfs &
version = 1.1.0 &
request = DescribeFeatureType

130

Curso GeoServer 1.7

Observe novamente os trs campos obrigatrios (servio, verso, e pedido). Isso ir tornar a lista
de featuretypes, ordenadas por namespace.
Se queremos informaes sobre um determinado featuretype, o pedido GET seria:
http://www.example.com/wfs?
servio = wfs &
version = 1.1.0 &
pedido = DescribeFeatureType&
typeName = namespace: featuretype
A nica diferena entre os dois pedidos a adio de typeName=namespace: featuretype, onde
featuretype o nome da featuretype e o namespace o nome do namespace onde est contida a
featuretype.

GetFeature
A operao GetFeature solicita os dados espaciais actuais. Este o "cdigo fonte" (source code)
falado anteriormente.
A maneira mais simples de executar um comando GetFeature :
http://www.example.com/wfs?
service=wfs&
version=1.1.0&
request=GetFeature&
typeName=namespace:featuretype
No recomendado para executar este comando na Web, pois este vai tornar as geometrias de
todas as features numa featuretype (Isto pode ser uma grande quantidade de dados). Uma forma
de limitar os outputs especificar uma feature. Neste caso, o pedido GET seria:
http://www.example.com/wfs?
service=wfs&
version=1.1.0&
request=GetFeature&
typeName=namespace:featuretype&
featureID=feature

131

Curso GeoServer 1.7

Aqui h o parmetro adicional de featureID=feature. Substituir a feature com o ID da feature que


desejamos recuperar.
Se o nome da feature desconhecida, ou se pretender limitar a quantidade de features
devolvidas, h o parmetro. maxFeatures:
http://www.example.com/wfs?
service=wfs&
version=1.1.0&
request=GetFeature&
typeName=namespace:featuretype&
maxFeatures=N
No exemplo acima, N o nmero de features.
Uma questo que pode surgir neste ponto a forma como o servidor WFS sabe quais as N
features. A m notcia que ela depende da estrutura interna dos dados, que no podem ser
dispostos de forma muito til. A boa notcia que possvel classificar os recursos baseados num
atributo, atravs da seguinte sintaxe.
http://www.example.com/wfs?
service=wfs&
version=1.1.0&
request=GetFeature&
typeName=namespace:featuretype&
maxFeatures=N&
sortBy=property
No exemplo acima, sortBy=property determina o tipo. Substituir o property com o atributo que se
deseja classificar. Por defeito classifica os dados de forma ascendente. Alguns servidores exigem
especificar a ordenao WFS, mesmo quando ascendente. Se assim for, anexar +A ao pedido.
Para ordenar descendente, adicionar +D:
http://www.example.com/wfs?
service=wfs&
version=1.1.0&
request=GetFeature&
typeName=namespace:featuretype&
maxFeatures=N&
sortBy=property+D

132

Curso GeoServer 1.7

Para no limitar a busca feature, mas sim por atributo, use propertyName sob a forma
propertyName = property. Podemos especificar uma nica propriedade, ou mltiplas propriedades
separados por vrgulas. Para uma nica propriedade de todos as features, utilizar o seguinte:
http://www.example.com/wfs?
service=wfs&
version=1.1.0&
request=GetFeature&
typeName=namespace:featuretype&
propertyName=property
Para uma nica propriedade de uma feature:
http://www.example.com/wfs?
service=wfs&
version=1.1.0&
request=GetFeature&
typeName=namespace:featuretype&
featureID=feature&
propertyName=property
Ou mais de uma propriedade de uma feature:
http://www.example.com/wfs?
service=wfs&
version=1.1.0&
request=GetFeature&
typeName=namespace:featuretype&
featureID=feature&
propertyName=property1,property2
Tambm possvel fazer uma query baseada na geometria. No existem muitas ferramentas
disponveis no GET para efectuar queries espaciais, umas delas a bounding box ou BBOX. Esta
permite fazer a query as features que esto contidas nas coordenadas que ns especificamos:
bbox=a1,b1,a2,b2 onde a, b, c, e d so as coordenadas.
Para especificar o sistema de coordenadas, adicione srsName=CRS ao pedido do WFS, onde o CRS
o sistema de coordenadas de referncia.
O pedido para o returning features baseado nos limites da feature o seguinte:
http://www.example.com/wfs?

133

Curso GeoServer 1.7

service=wfs&
version=1.1.0&
request=GetFeature&
typeName=namespace:featuretype&
bbox=a1,b1,a2,b2

8.1.4 WFS Schema Mapping


Uma das funes do GeoServer WFS representar automaticamente o schema do dataset para
um feature type schema. A representao cartogrfica automtica segue as seguintes regras:

nome
nome
nome
o tipo

da
da
de
de

feature para o nome do dataset


feature para o nome do dataset com a descrio do Type agregada
cada atributo do dataset para um nome de uma parte contida no featuretype
cada atributo para o tipo de XML schema type (ex: xs:int, xs:double, etc...)

Como exemplo vamos considerar um dataset com o seguinte esquema:


myDataset(intProperty:Integer, stringProperty:String, floatProperty:Float, geometry:Point)
Este dataset vai ser mapeado com o seguinte XML schema:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:gml="http://www.opengis.net/gml"
xmlns:topp="http://www.openplans.org/topp"
targetNamespace="http://www.openplans.org/topp"
elementFormDefault="qualified">
<xsd:import
namespace="http://www.opengis.net/gml"
schemaLocation="http://localhost:8080/GeoServer/schemas/gml/3.1.1/base/gml.xsd"/>
<xsd:complexType name="myDatasetType">
<xsd:complexContent>
<xsd:extension base="gml:AbstractFeatureType">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" name="intProperty" nillable="true"
type="xsd:int"/>
<xsd:element maxOccurs="1" minOccurs="0" name="stringProperty" nillable="true"
type="xsd:string"/>

134

Curso GeoServer 1.7

<xsd:element maxOccurs="1" minOccurs="0" name="floatProperty" nillable="true"


type="xsd:double"/>
<xsd:element maxOccurs="1" minOccurs="0" name="geometry" nillable="true"
type="gml:PointPropertyType"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element
type="topp:myDatasetType"/>

name="myDataset"

substitutionGroup="gml:_Feature"

</xsd:schema>

Costumizar um Schema
O GeoServer WFS suporta uma quantidade limitada de costumizao no que respeita ao schema
output. Um schema pode ser usado para:

Limitar os atributos que esto expostos no feature type schema


Alterar os tipos de atributos do Schema
Mudar a estrutura do Schema

Um mapped schema costumizado criando um ficheiro chamado schema.xsd na directoria de


dados do GeoServer. A ttulo de exemplo considere a utilizao delimitada pelos atributos do
dataset anterior. Atravs da feature type schema, o pedido GetFeature ter a seguinte aparncia:
<topp:myDataset gml:id="myDataset.1">
<topp:intProperty>1</topp:intProperty>
<topp:stringProperty>one</topp:stringProperty>
<topp:floatProperty>1.1</topp:floatProperty>
<topp:geometry>
<gml:Point srsName="urn:x-ogc:def:crs:EPSG:4326">
<gml:pos>1.0 1.0</gml:pos>
</gml:Point>
</topp:geometry>
</topp:myDataset>
Agora considere o seguinte caso, remover o floatProperty do atributo:

135

Curso GeoServer 1.7

1. O schema original alterado e o floatProperty removido, resultando na seguinte definio:


<xsd:complexType name="myDatasetType">
<xsd:complexContent>
<xsd:extension base="gml:AbstractFeatureType">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" name="intProperty"
type="xsd:int"/>
<xsd:element maxOccurs="1" minOccurs="0" name="stringProperty"
type="xsd:string"/>
<!-- remove the floatProperty element
<xsd:element maxOccurs="1" minOccurs="0" name="floatProperty"
type="xsd:double"/>
-->
<xsd:element maxOccurs="1" minOccurs="0" name="geometry"
type="gml:PointPropertyType"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>

nillable="true"
nillable="true"

nillable="true"

nillable="true"

2. O resultado foi gravado num ficheiro chamado schema.xsd.


3. O ficheiro schema.xsd copiado para uma directoria feature type em topp:myDataset:
copy schema.xsd $GEOSERVER_DATA_DIR/featureTypes/<ds>_myDataset/
O <ds> o nome da data store que contm myDataset

Para que o novo schema seja apanhado pelo GeoServer a configurao tem de ser novamente
carregada.
Outro DescribeFeatureType pedido pelo topp:myDataset resulta no facto do floatProperty estar
ausente:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:gml="http://www.opengis.net/gml"
xmlns:topp="http://www.openplans.org/topp"
targetNamespace="http://www.openplans.org/topp"
elementFormDefault="qualified">

136

Curso GeoServer 1.7

<xsd:import
namespace="http://www.opengis.net/gml"
schemaLocation="http://localhost:8080/GeoServer/schemas/gml/3.1.1/base/gml.xsd"/>
<xsd:complexType name="myDatasetType">
<xsd:complexContent>
<xsd:extension base="gml:AbstractFeatureType">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" name="intProperty" nillable="true"
type="xsd:int"/>
<xsd:element maxOccurs="1" minOccurs="0" name="stringProperty" nillable="true"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="geometry" nillable="true"
type="gml:PointPropertyType"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element
type="topp:myDatasetType"/>

name="myDataset"

substitutionGroup="gml:_Feature"

</xsd:schema>

Outro pedido GetFeature resulta em features onde o floatProperty est ausente:


<topp:myDataset gml:id="myDataset.1">
<topp:intProperty>1</topp:intProperty>
<topp:stringProperty>one</topp:stringProperty>
<topp:geometry>
<gml:Point srsName="urn:x-ogc:def:crs:EPSG:4326">
<gml:pos>1.0 1.0</gml:pos>
</gml:Point>
</topp:geometry>
</topp:myDataset>

Type changing

137

Curso GeoServer 1.7

O type changing limitado, pois s se conseguem fazer alteraes mantendo o mesmo tipo
(inteiros para inteiros, temporal para temporal, etc.). O caso mais comum para os atributos de
geometria. Muitas vezes os dataset no tm os metadatos necessrios para reportar o tipo
especfico (point, linestring, polygon, etc) de geometria. Neste caso o esquema de mapeamento
automtico resultaria no seguinte:
<xsd:element
maxOccurs="1"
minOccurs="0"
type="gml:GeometryPropertyType"/>

name="geometry"

nillable="true

"

No entanto, frequente o usurio saber o tipo especfico de geometria, por exemplo ponto. O
elemento acima poderia ser alterado para:
<xsd:element
maxOccurs="1"
type="gml:PointPropertyType"/>

minOccurs="0"

name="geometry"

nillable="true

"

8.2 Web Map Service


8.2.1 Formatos de output WMS
O WMS permite-nos ter vrios formatos possveis. Esta pgina apresenta uma lista dos formatos
de output. Em todos os casos, a sintaxe para definir um formato de output :
format = <format>
onde <format> uma das opes abaixo.
Formato
PNG

Sintaxe
format = image / png

PNG8

format = image/png8

JPEG

format = image / jpeg

GIF

format = image / gif

TIFF

format = image / tiff

TIFF8
GeoTiff

format = image/tiff8
format = image /
Geotiff

GeoTIFF8

format =
image/geotiff8

Notas
Por defeito
Mesma como PNG, mas calcula uma paleta de 256
cores (8 bits), assim a imagem geralmente menor

Idntica ao TIFF, mas calcula uma paleta ptima de


256 cores (8 bits), assim o tamanho da imagem
geralmente menor
Idntica TIFF, mas inclui extras GeoTiff metadados
Idntica TIFF, mas inclui extras GeoTiff metadados e
calcula uma paleta ptima de 256 cores (8 bits), assim
o tamanho da imagem geralmente menor

138

Curso GeoServer 1.7

SVG
PDF

format = image / svg


format = application /
pdf

GeoRSS

format = rss

KML

format = kml

KMZ
OpenLayers

format = kmz
format = application /
openlayers

Gera uma aplicao OpenLayers HTML.

8.2.2 WMS vendor parameters


A especificao WMS no permite filtrar muitos dados.

Filter
A especificao WMS no permitem muita filtragem dos dados.
O parmetro filter codifica uma lista de filtros OGC (em XML).
Exemplo de um filtro OGC codificados como parte de um pedido GET:
filter=%3CFilter%20xmlns:gml=%22http://www.opengis.net/gml%22%3E%3CIntersects%3E
%3CPropertyName%3Ethe_geom%3C/PropertyName%3E%3Cgml:Point%20srsName=
%224326%22%3E%3Cgml:coordinates%3E-74.817265,40.5296504%3C/gml:coordinates%3E
%3C/gml:Point%3E%3C/Intersects%3E%3C/Filter%3E

CQL_filter
O parmetro CQL_filter semelhante ao parmetro filter, desta forma esperado que o filtro seja
codificado utilizando CQL (Common Query Language). Isto torna o pedido muito mais legvel. No
entanto, CQL no to flexvel quanto os filtros OGC. Filtros por feature ID no so suportados.
Exemplo do filtro acima usando CQL:

139

Curso GeoServer 1.7

cql_filter = intersect (the_geom, 20POINT% 20% (-74,817265% 2040.5296504))

Featureid
No filtro featureid por feature ID, dado um valor nico a todas as features. Vrias features podem
ser seleccionadas atravs da separao da feature id por uma vrgula, como se v neste exemplo:
featureid = states.1, states.45

Buffer
O parmetro buffer especifica o nmero de pixels extras que devem ser tidas em conta quando se
faz um rendering a um mapa (usando a operao GetMap). Isto importante para a captura de
features que esto fora da caixa delimitadora, mas cujo estilo suficiente para ser visvel. O
GeoServer ir tentar calcular este buffer automaticamente por anlise do SLD, mas isto pode
falhar se os tamanhos e larguras das linhas no tiverem literal values.
A sintaxe para a utilizao de um buffer :
buffer = <bufferwidth>
onde <bufferwidth> onde o raio do buffer em pixels.
O Buffer tambm se aplica na operao GetFeatureInfo. Isto cria um "raio de pesquisa", onde a
caracterstica info ser devolvida para a rea em redor do local do pedido. Isto til quando se
trabalha com mapas OpenLayers (tais como os gerados pelo Map Preview), pois no necessrio
clicar precisamente num ponto para a informao da feature ser devolvida.
O valor por defeito do buffer de 0 pixels para o Bitmap e 2 pixel para GetFeatureInfo.

Paleta
A forma de especificar a paleta :
palete = <image>
Onde <image> onde o nome do ficheiro de imagem da paleta. Para forar uma paleta Website, a
sintaxe palette=safe.

140

Curso GeoServer 1.7

Tiled
Quando se utiliza o OpenLayers como ferramenta tiled client pode haver problemas de duplicao
de layer. Para resolver isto o GeoServer pode criar metatiles tendo que se definir o tile size para
256x256 pixels.
O parmetro tiled a definir o seguinte:
tiled = [yes| no]
Para a funo o metatiling deve estar definido com yes.

Tilesorigin
O tilesorigin, tambm necessrio para metatiling, o parmetro o seguinte:
tilesorigin = x, y
Onde x e y so as coordenadas do canto inferior esquerdo (a "origem") da layer em OpenLayers.

Kmattr
O kmattr determina se o KML devolvido pelo GeoServer deve incluir atributos clicveis ou no.
Este parmetro afecta principalmente tornando o Google Earth. A sintaxe :
kmattr = [true | false]

Kmscore
O parmetro kmscore determina quando o GeoServer render os dados vectoriais ou raster. A
sintaxe :
kmscore = <value>
Os valores possveis para esse parmetro so entre 0 (raster output) e 100 (vector output).

141

Curso GeoServer 1.7

maxFeatures e startIndenx
O GeoServer WMS suporta os parmetros maxFeatures e startIndex. Ambos podem ser usados em
conjunto para fornecer apoio "paging". Isso til em situaes como KML crawling, onde
desejvel obter o mapa em seces, quando h um grande nmero de features.
O parmetro startindex especifica com um ndice inteiro a ordem das features a serem
visualizadas.
O parmetro maxfeatures estabelece um limite para o montante de features rendered, usando um
nmero inteiro positivo. Quando utilizado com startindex, as features rendered sero
disponibilizados comeando pelo valor startindex.

Namespace
Os pedidos do WMS GetCapabilities podem ser filtrados para somente disponibilizar layers
correspondentes a um determinado namespace. A sintaxe :
namespace = <namespace>
Onde <namespace> o prefixo namespace.

8.2.2 WMS reference


O Web Map Service (WMS) uma norma criada pela OGC que se refere ao envio e recepo de
imagens atravs do HTTP.
WMS pode executar as seguintes operaes:
Operao
GetCapabilities
GetMap
GetFeatureInfo
DescribeLayer

Descrio
Recupera uma lista de dados do servidor, bem como operaes e parmetros
WMS vlidos
Recupera um map image baseada em dados geogrficos
Recupera informaes sobre uma feature em particular num map image
Recupera uma descrio XML de um map layer

142

Curso GeoServer 1.7

143

You might also like