Mostrando postagens com marcador Leaflet. Mostrar todas as postagens
Mostrando postagens com marcador Leaflet. Mostrar todas as postagens

domingo, agosto 17, 2014

WMS GetFeatureInfo Utilizando MapServer e Leaflet

No Leaflet existem duas formas bem usuais de se obter os dados tabulares de uma feição através do clique do usuário em uma determinada camada. Uma delas é através do uso de marcadores (Markers), que é mais utilizada para a representação de pontos. A outra  é  o formato GeoJSON, que é uma excelente opção para exibir camadas de polígonos e de linhas neste aplicativo.

Porém, quando uma camada GeoJSON possui muitas feições ou uma grande quantidade de vértices, seu carregamento pode comprometer o desempenho do aplicativo. Uma saída para este problema é utilizar o formato WMS habilitando a requisição GetFeatureInfo como é mostrado no exemplo a seguir.

1 - Configuração do Mapfile como Servidor WMS:


A configuração do servidor WMS é feita através da definição dos itens obrigatórios para o seu funcionamento, a nível de MAP e de LAYER, definidos na documentação do MapServer no item "Setting Up a WMS Server Using MapServer". 



2 - Configuração do Template HTML para a requisição GetFeatureInfo:


Neste arquivo são definidos os dados que serão exibidos na janela de atributos através do GetFeatureInfo WMS Request. 


3 - Configuração do Leaflet:


Para habilitar esta funcionalidade  é necessário configurar a camada WMS no Leaflet, como é exibido a seguir:

Já com a função IDENTIFY abaixo, é possível associar ao clique do mouse uma requisição GetFeatureInfo, através da obtenção das variáveis BBOX, WIDTH, HEIGHT, X e Y. Com elas é definida a variável URL que fará esta requisição ao servidor WMS e trará o resultado de forma assíncrona com método $.ajax do jQuery.

A página HTML contendo o Leaflet fica então desta forma:


4 - Resultado:


Ao clicar em um município, é exibido uma janela contendo os atributos, como mostra a figura abaixo:


Você pode baixar os códigos deste exemplo neste link.

Sugestões de Leitura:


quinta-feira, janeiro 16, 2014

Conversão de Tabelas Espaciais para o Formato GeoJSON Utilizando PHP

Neste exemplo irei utilizar o CodeIgniter para realizar a conversão de uma tabela espacial (rodovias) para o formato GeoJSON, utilizando MVC.

Primeiro deve-se criar um Model. Com a função geojson_output(), observem que a geometria da tabela é convertida para GeoJSON e reprojetada para WGS-84:


Em seguida o Controller, que vai receber os dados do Model e enviar para a View:


Por último a View, que renderiza os dados no formato GeoJSON:


Para ver os dados da tabela neste formato (Figura 1), é necessário acessar a url que contém o "controller/método" utilizado, no meu caso:
http://localhost/sirh/rodovias/geojson_link

Figura 1 - Resultado da conversão







Seguindo a documentação do Leaflet é bastante simples carregar os dados neste formato. O resultado pode ser conferido na Figura 2.

Figura 2 - GeoJson exibido na interface do Leaflet

terça-feira, junho 18, 2013

Configuração de Layers WMS do Mapserver no Leaflet

Aqui temos um exemplo de como configurar a biblioteca Leaflet com algumas camadas WMS do Mapserver.

Configuração do Mapfile:


Configuração da aplicação com o Leaflet:


Resultado: