Professional Documents
Culture Documents
Manual de
GeoServer verso
1.7
Data
Alteraes introduzidas
18 Novembro 2009
Documento Inicial
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
4.
5.
Config menu.................................................................................... 30
5.3.2
Datastores.................................................................................39
5.3.7
Style.......................................................................................... 40
5.3.8
Feature Type..............................................................................42
5.3.9
Coverages.................................................................................44
7.Styling....................................................................................................... 72
7.1 Introduo ao SLD............................................................................... 72
4
1. Introduo
Este documento contempla todos os aspectos da utilizao do GeoServer, desde a instalao s
funcionalidades mais avanadas.
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
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.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.
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.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.
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.
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.
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
11
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.
Web Archive (WAR) existente dentro de um external servlet container tal como o Tomcat
Modo Standalone existente dentro do Jetty container.
12
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.
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
% 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
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
Standalone upgrade
Nota: Esta seco aplica-se ao GeoServer quando estiver a ser executado em Standalone
mode, e no dentro de um servlet container.
% 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
Reinicie o GeoServer.
18
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
1. Submit a pgina.
2. Apply a alterao.
20
Uma vez que a alterao tenha sido aceite, est disponvel. No entanto, se o GeoServer se
desligar, a mudana no se mantm.
Ao fazer Save, todas as alteraes permanecem no disco at prxima vez que se reinicie o
GeoServer.
Map Preview
21
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.
22
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.
23
24
<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>
25
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:
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
<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
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
4.3
Windows
Em plataformas Windows, a localizao da directoria de dados do GeoServer controlada pela
GEOSERVER_DATA_DIR.
29
Linux
30
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.
31
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>
...
Acesso
Por defeito, o GeoServer vai iniciar-se em port 8080 acessvel atravs do seguinte URL:
http://localhost:8080/GeoServer
32
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.3
Config Menu
Logging In
33
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.
Server
A pgina Server Configuration, acedendo a partir do Server, onde so feitas as configuraes de
servidor global.
34
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
CoveragePlugins
36
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.
Contents
37
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.
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
SRS
Envelope
Description
A pgina WMS Description onde est disponvel a informao sobre o WMS .
Rendering
39
A pgina Web Map Service Rendering tem vrias opes para o gerar WMS tiles.
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
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
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
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.
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
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
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
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
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
48
Nesta pgina, podemos registar, editar (configure), ou apagar (unregister) uma featuretype.
49
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
51
52
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
Para mudar este menu, clique sobre o cone no canto superior esquerdo da janela OpenLayers.
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
Fliter
55
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.
56
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.
57
host
port
schema
user
password
wkb_enabled
loose bbox
estimated_extent
max connections
min connections
validate connections Parmetros de configurao das Connection pool.
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
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
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.
60
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.
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.
61
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
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
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
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
64
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.
65
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
Opo
Necessrio Descrio
67
N/A
Enabled
Namespace
Type
N/A
Sim
No
URL
Description
Sim
No
Aviso: Garanta que o download da extenso seja correspondente verso do GeoServer instalada
68
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.
69
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.
70
Opes MySQL
host
port
database
user
password
max connections
min connections
validate connections
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.
71
Opes Oracle
host
port
user
72
password
instance
schema
max connections
min connections
validate connections
alias
utilizador
senha
esquema
74
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.
75
76
Aceitar a licena e escolher o sistema operativo. Copie o ficheiro sqljdbc.jar para a directoria WEBINF/lib.
77
78
79
80
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
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).
82
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
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.
84
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
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.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
Ponto
Ponto
Ponto
Ponto
4
5
6
7
Thisland
Synopolis
San Glissando
Detrania
34879
24567
76024
205609
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
Cdigo
1.
2.
3.
4.
5.
6.
<FeatureTypeStyle>
<Rule>
<PointSymbolizer>
<Graphic>
<Mark>
<WellKnownName> Crculo </ WellKnownName>
88
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))
89
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.
90
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
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
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).
Cdigo
1.
2.
3.
4.
5.
<FeatureTypeStyle>
<Rule>
<PointSymbolizer>
<Graphic>
<Mark>
93
94
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
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
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
98
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
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
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.
101
Zoom out
Zoom parcial
Zoom in
Cdigo
1. <FeatureType
Style>
2. <Rule>
3. <Name>
Large
</
Name>
102
103
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.
104
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.
105
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.
106
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.
107
108
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.
109
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.
110
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.
<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
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.
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
No
No
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.
Tag
<GraphicFill>
<CssParameter>
Necessrio?
No
No
Descrio
Preenche do polgono com um padro repetido.
Determina os parmetros de preenchimento.
113
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
<LabelPlacement>
No
<Halo>
<Fill>
No
No
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
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
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
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
</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
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.
119
A primeira o facto de o ponto, linha ou polgono poder ser aplicada a outro tipo de geometria:
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.
120
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
</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.
122
</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
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.
124
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
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
125
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.
126
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"
127
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
ServiceProvider
Esta seco fornece informaes sobre a empresa por trs do servidor WFS, incluindo telefone,
site e e-mail.
129
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.
130
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
132
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
service=wfs&
version=1.1.0&
request=GetFeature&
typeName=namespace:featuretype&
bbox=a1,b1,a2,b2
nome
nome
nome
o tipo
da
da
de
de
134
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:
135
nillable="true"
nillable="true"
nillable="true"
nillable="true"
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
<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>
Type changing
137
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
"
Sintaxe
format = image / png
PNG8
format = image/png8
JPEG
GIF
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
138
SVG
PDF
GeoRSS
format = rss
KML
format = kml
KMZ
OpenLayers
format = kmz
format = application /
openlayers
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
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
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
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.
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
143