Começamos ontem uma série de posts sobre o OpenLayers, onde iremos abordar as funcionalidades disponíveis nesse framework. Ontem começamos pelo básico, apresentando a estrutura de um mapa e suas camadas, hoje trataremos mais a fundo as propriedades das camadas (layers).
1. Módulo 2: Camadas
Cada mapa no OpenLayers poder ter uma ou mais camadas. A camada contém toda a informação espacial que o usuário visualiza no mapa.
Existem diferentes tipos de camadas. Algumas camadas podem ser solicitadas como “tiles”, ou seja, pedaços que irão compor o mapa. Temos dois exemplo para isto os layers utilizados através do protocolo WMS (Web Map Service), e também os layers proprietários como os do Google e Yahoo. Outro forma é carregar os dados da camada, para isso é possível utilizar o padrão WFS (Web Feature Service), que retorna todas as informações disponíveis.
2. Camadas WMS
O arquivo 1-basico.html criado no módulo anterior usa uma camada WMS. WMS é um acrônimo para Web Map Service. Ele é um protocolo definido pela OGC (Open Geospatial Consortium) para comunicação de dados espaciais renderizados como imagem.
Uma camada WMS é criado no OpenLayers através de quatro parâmetros, sendo que o último é opcional.
- name {String} Nome da camada
- url {String} URL do serviço WMS (e.g. http://wms.jpl.nasa.gov/wms.cgi)
- params {Object} Um objeto com informações para o método GetMap
- options {Ojbect} Opções extra de configuração
Mais informações sobre a classe WMS Layers podem ser obtidas na documentação online. Você pode também realizar algumas modificações no seu exemplo trocando as camadas para isso você pode acessar o site WMS Site, e escolher as layers que deseja visualizar no seu mapa. Use o arquivo 1-basico.html para isso, ou crie um novo.
3. Camadas Comerciais
Além das camadas que são de acesso público, você pode também adicionar ao seu mapa camadas comerciais. O OpenLayers dá suporte as camadas do Google Maps, Yahoo Maps, Virtual Earth e MultiMap.
Veja o exemplo abaixo, como ficaria a adição de uma camada do Google Maps no seu mapa (Clique na imagem para vê-la no tamanho real).
4. Camadas WFS
Nesta seção criaremos camadas WFS. WFS é um acrônimo para Web Feature Server, um padrão da OGC. Ao invés do WFS retornar imagens ele retorna dados serializáveis, no padrão GML, dos vetores. Camadas solicitadas por WFS no OpenLayers são transformadas em pontos, linhas, polígonos no seu navegador. Veja na imagem abaixo como ficaria um mapa com uma camada WFS:




[...] Fonte: Fernando Quadro [...]
Senhores(as),
Para complementar, caso haja algum problema ao combinar camadas de diversas fontes, o texto de Christopher Schmidt referenciado no blog do Felipe Costa pode ser bastante interessante, deem uma olhada.
Abraço,
Fernando Quadro
Nao consegui fazer funcionar o exemplo…
No console de erros do firefox aparece o seguinte:
G_PHYSICAL_MAP is not defined
…
Gostaria de saber se tem alguma forma de utilizar os métodos zoom-in e zoom-out da classe Map, de forma que a imagem não seja replicada, pois utilizei uma imagem local e quando executo o método zoom-in a imagem é replicada em quadros de tamanho padrão, e de início a imagem já fica repliada em quatro quadros.
Grato,
Antônio.
Antonio,
Pelo que você esta relatando você tem que desabilitar o Tilecache, que é este método de carregar as imagens em quadro.
Abraço
Fernando,
Gostaria de saber se é possivel especificar um estilo SLD pra layer, em algum parametro. Assim como existe um param para o nome da layer, se existe pra colocar uma sld.
Obrigado.
Filipe,
Não sei se entendi corretamente, mas sim existe um parâmetro para passar um SLD tanto no OpenLayers quanto em uma requisição WMS, que são:
SLD, SLD_BODY ou Styles
Abraço,
Fernando Quadro
Algum destes pode receber uma String representando o xml do estilo(sld)? Estou tentando passar uma String no param SLD mas sem sucesso…
Veja:
…
params=”{SLD:’#{mapBean.estilo}’}” />
….
public String getEstilo() {
return “<?xml version="1.0" encoding="UT…….";
}
Obrigado!
Filipe,
Usa o SLD_BODY.
Abraço,
Fernando Quadro
Boa tarde,
Gostaria de saber como salvar as alterações feitas no WFS.
Boa tarde, estou fazendo uma aplicação com google maps em gwt openlayers, se você souber por favor me ajude. Quando eu coloco o google maps funciona, mas não fica no tamanho do conteiner. Será que na hora da requisição, na hora que eu passo a key, eu preciso colocar tamanho tambem? ou é outra coisa?
Agradeço desde já.
[...] Introdução ao OpenLayers: Layers [...]