Eu tenho um serviço de mapa da web (WMS no geoserver). Tem uma visualização atual que é decente. Os dados são divididos em meses atualmente usando guias. Gostaria de visualizar os dados usando um cliente de mapa da web baseado em código aberto e um controle deslizante de tempo.
Eu já vi alguns exemplos, mas estou procurando uma solução genérica na qual basicamente eu possa alterar as camadas de segundo plano (também WMS), wms de origem e atributos relevantes. Isso permite experimentar ainda mais a solução. A camada de tempo wms (wms-t) não deve alterar as camadas wms de fundo. Eles devem permanecer controlados por um arquivo de configuração ou por uma interface de seleção interativa não relacionada ao controle deslizante de tempo.
Os serviços atuais podem ser acessados através do parâmetro wms time:
time = 2014-1 time = 2014-5 etc
Deve ser possível que o usuário defina valores e intervalos mínimos / máximos, ou o cliente deve ser capaz de adivinhar isso sozinho, com base nas informações de getcapabilities.
ESRI ou outras soluções comerciais (fonte fechada) não são opções possíveis para esta pergunta.
Respostas:
Não conheço nenhum cliente da Web com um controle deslizante de tempo fora da caixa para camadas WMS-T. A dimensão WMS é estranhamente uma propriedade do protocolo WMS que falta em muitas ferramentas que usei.
Desenvolvi uma solução para lidar com todas as dimensões (tempo e outras) com base no OpenLayers. Você pode encontrá-lo aqui: Exemplo de dimensão WMS
A camada neste exemplo é definida no Mapserver com um valor padrão (2013) e todos os valores propostos (2000 a 2013).
Quando você clica no ícone de filtro à direita, uma solicitação GetCapabilities é enviada e os valores de tempo são analisados no XML a ser proposto na lista suspensa HTML. Você verá no código que obtemos uma versão em cache da solicitação GetCapabilities por motivos de desempenho.
Mais tarde, exibirei um calendário jQueryUI ou um controle deslizante jQueryUI adaptado para lidar com o tempo das camadas WMS-T.
Assim, você pode ver que, com o OpenLayers e poucas linhas de código, você pode obter o que precisa. Espero que ajude!
fonte
Você pode tentar isso, http://lib.heron-mc.org/heron/1.0.3/examples/timeslider/index.html
Este exemplo tem um controle deslizante incrível, espero que ele atenda a todos os seus requisitos.
UPDATE: Outro bom exemplo:
http://timemap.googlecode.com/svn/tags/2.0.1/examples/kenya.html
fonte
Na maioria das vezes, os controles deslizantes não animam imagens de mapa de bitmap de um servidor WMS ou lado a lado. Eles estão animando pontos que estão sendo renderizados como pontos (marcadores, SVG, Canvas) no lado do cliente.
Para que uma animação seja eficaz, o cliente precisa ter todos os dados disponíveis antes de iniciar a animação. Se precisar voltar ao servidor para qualquer coisa, o atraso dessa solicitação arruinará o efeito.
O exemplo dado por Ashutosh acima é o melhor que você poderia esperar, onde não há animação.
Se você estiver usando pontos, poderá enviar todas as coordenadas ao cliente e fazer um loop sobre elas no controle deslizante de tempo. Aqui está o padrão-ouro desse método:
https://srogers.cartodb.com/viz/337d9194-6458-11e3-85b5-e5e70547d141/public_map
fonte
O MapStore http://mapstore.geo-solutions.it/mapstore/ da GeoSolutions parece ter todos os componentes necessários, mas talvez eles não tenham sido empacotados em um pacote de instalação prontamente disponível. Na galeria de demonstração, este portal meteorológico possui um controle deslizante de tempo
http://geoportale.lamma.rete.toscana.it/MapStore/public/?locale=en
Este possui visualizações de calendário para selecionar datas de início e término
http://wiz.acque.net/portal/geonetwork?locale=en
E este leva datas de início e término de dois controles deslizantes
http://cip-pakistan.geo-solutions.it/MapStore/
fonte