Olá galera,
O vídeo de hoje é atendendo o pedido de +Helder soares de menezes - seguidor do nosso canal no YouTube. A solicitação é para aplicar filtros digitados em um formulário em uma camada de mapa. Para exemplificar vou utilizar o MapServer com uma camada WMS.
Os códigos utilizados podem ser baixados através do https://github.com/larsurilch/ol3
Um grande abraço a todos e até a próxima.
Bom dia
ResponderExcluirDesenvolvo atualmente um site em openlayers2, com funcionalidades prontas https://egov1.santos.sp.gov.br/sigsantosweb20/sigsantoswebsd/
Estou migrando para o open layers 3, ja consegui juntar o mapa do open street map com meus mapas em geoserver wms. mas nao consigo reprojetar para ficarem "exatos". teria alguma dica ou exempo ? meus mapas estao em sad69 e sirgas 2000
Olá Paulo,
ExcluirTem os próprios exemplos no site do OL3. Dá uma olhada no seguinte link: http://openlayers.org/en/v3.10.1/examples/wms-custom-proj.html
Abraço
Então Benicio, mas é justamente isso, já entrei no site do espg.io, já verifiquei o código que seria para o sirgas 2000, mas não consigo implementar essa solução, falta documentação para testar, para eu terminar a migração falta apenas esse detalhe
ResponderExcluirObrigado
Olá Pedro,
ResponderExcluirÉ bem provável que essa versão nova do OL não implemente o SIRGAS 2000. Nesse caso como na versão 2 deve-se o Proj4js. Olhando na API do OL3 achei exatamante falando a respeito disso. http://openlayers.org/en/v3.1.0/apidoc/ol.proj.html
Abraço
Boa tarde
ResponderExcluirAdicionei o 31983.js, mudei as coordenadas e nada, está jogando todos os meus WMS para perto da inglaterra, rsss, complicado não ter suporte, não dá pra utilizar dessa maneira, alguém já fez algo parecido nessa versão do Open Layers será ?
Obrigado
Olá Paulo,
ExcluirCom certeza deve ser algum detalhe. Com relação ao suporte se realmente for bug, eu costumo colocar no GitHub. Tem algumas coisas abertas com relação a projection no link https://github.com/openlayers/ol3/issues?utf8=%E2%9C%93&q=projection
Abraço
Olá Benício,
ResponderExcluirVim aqui em uma das suas postagens qualquer pois estou com um problema numa das minhas aplicações com OpenLayers.
Sei que não se trata especificamente sobre o tema deste video, mas envio por aqui o link do meu problema, que postei no StakExchange.
Caso o senhor, por gentileza, puder me dar uma luz, eu ficaria muito grata.
Att,
https://gis.stackexchange.com/questions/270356/how-do-i-add-a-captionlegend-inside-a-button-when-turning-on-off-a-layer
Olá Lilian,
ExcluirAté onde compreendi vc quer colocar a legenda da dúvida em cima do mapa a ser visualizado correto?! Se for isso, vc já utiliza uma div com o id=map. Eu criaria mais uma div com o id=legend e usando CSS posicionaria ela em cima do mapa.
Abraço
Na verdade Sr.Benício o que eu desejo é fazer aparecer/desaparecer uma legenda através de botão.
ExcluirA legenda em questão que deve aparecer é a da layer que estiver "ligada/desligada" no meu webgis.
Tentei um teste simples para isso, colocando uma tag "img", fazendo a chamada do OPL3 com "GetLegendGraphic" dentro de um botão.
Entretanto, mesmo após criar uma função pro "button", ele não me faz aparecer a legenda.
Fiz o que o senhor sugeriu também.
Olá Lilian,
ExcluirTerminei de subir um vídeo no canal https://www.youtube.com/watch?v=oWKCO-_xjQA e seu respectivo código no GitHub.
Espero que ajude a resolver seu problema.
Abraço
Olá Benício, como vai?
ExcluirBom, aproveito esse espaço pra pedir uma nova ajuda, em uma aplicação completamente diferente da que eu comentei aqui no blog.
Estou precisando criar um microserviço de TMS. Tenho uma imagem raster e gostaria de fazê-la aparecer numa visualização LeaFlet.
Usei a biblioteca Rasterio para gerar um TMS, e consegui, mas tudo local.
Criei um servidor em Flask, e agora gostaria de "subir" essa TMS dinamicamente.
Já teve experiência com isto?
Poderia me auxiliar?
Olá Lilian,
ExcluirTudo tranquilo. Eu conheço um pouco de Leaflet mas não conheço e nunca trabalhei com Flask. :-(
Acho que dessa vez vou ficar te devendo.
Abraço
Oi, professor. Acompanho suas aulas com o Openlayers, pois estou trabalhando numa aplicação que requer o uso dessa ferramenta.
ResponderExcluirEste video da postagem (filtros numa camada wms) me ajudou bastante no desenvolvimento do meu trabalho.
Enfim, gostaria de pedir a sua ajuda em relação a como aplicar animações numa camada WMS. Peguei o exemplo do site do Openlayers, mas só consegui fazer funcionar no mapa com a camada padrão,igual como tá no site, quando tentei implementar no meu mapa com wms as animações não funcionaram.
Gostaria de aplicar as funções, como no exemplo do site, mais especificamente a 'pan to london', fly to bern e bounce to istanbul.
https://openlayers.org/en/latest/examples/animation.html
Valeu. Obrigado.
Olá Phelipe,
ExcluirNa teoria era para funcionar sem problemas já que a animação do view e não da camada que está sendo exibida. Agora se você estiver trabalhando com camadas em projeções diferentes aí pode dar problema. Ao tentar executar alguma animação é exibido algum erro?!
Abraço
Ôpa, Benicio. Obrigado por responder.
ExcluirPois, é ainda não consegui resolver esse problema. Não te respondi antes porque estava trabalhando com outra coisa.
Agora voltei ao Openlayers. Sobre a sua pergunta, tenho a variável view instanciada como global, mas a animação não ocorre. Já a projeção da minha camada é 4326.
A animação, por enquanto, não é o mais importante na minha aplicação. Queria aproveitar que você perguntou se não estava aparecendo alguma mensagem. Tô tentando implementar o exemplo "WMS GetFeature Info (Image Layer)". Quando clico em um ponto do meu mapa ele exibe uma mensagem de erro.
A mensagem é essa:
msWMSFeatureInfo(): WMS server error. Requested layer(s) are not queryable.
Sabe o que pode ser?
Obrigado.
Olá Phelipe,
ExcluirPara o GetFeature Info ser possível, você tem que habilitar no servidor de mapas. Somente após isso, será possível a extração de dados.
Abraço
Benicio, já estava habilitado no meu .MAP (dentro de METADATA) da seguinte maneira...
Excluir"wms_enable_request" "*".
Também tentei:
"wms_enable_request" "GetMap GetFeatureInfo"
Porém, nenhum dos dois dá certo. O erro é esse: 'msWMSFeatureInfo(): WMS server error. Requested layer(s) are not queryable.'
Obrigado pela ajuda.
Olá Phelipe,
ExcluirO parâmetro do METADATA é esse mesmo.
Tem algum TEMPLATE definido?!
Abraço
Olá Bencio. Tem sim um template, nesse template (HTML) é onde aparece a exceção.
ExcluirEssa é a descrição completa do erro, que é exibida no template, quando clico em um ponto do mapa: msWMSFeatureInfo(): WMS server error. Requested layer(s) are not queryable. msValidateParameter(): Regular expression error. Parameter pattern validation failed. msEvalRegex(): Regular expression error. String failed expression test.
Olá Phelipe,
ExcluirNunca vi esse erro e nunca tive problemas com GetFeatureInfo. Também não sei como está configurado seu .map
Benicio, você poderia me arrumar, por favor, um .MAP que utilize o GetFeatureInfo que esteja funcionando pra eu ter como base?
Excluirmeu email é phelipeguedes89@gmail.com ou phelipe.guedes@hotmail.com
obrigado.
Olá Phelipe,
ExcluirTentar colocar por aqui caso alguém mais precise desse tipo de informação. Vou colocar as partes do .MAP que precisam ter.
WEB
TEMPLATE ../config/template.html
METADATA
"tile_map_edge_buffer" "20"
"labelcache_map_edge_buffer" "-20"
"wms_title" "WMS"
"wms_onlineresource" ""
"wms_srs" "EPSG:4326 EPSG:3857"
"ows_enable_request" "*"
"wms_abstract" "Serviço WMS"
"wms_feature_info_mime_type" "text/html"
"wms_encoding" "UTF-8"
"ows_sld_enabled" "true"
END
END
Já dentro da minha LAYER eu tenho o seguinte.
ExcluirLAYER
TEMPLATE "../config/template.html"
NAME "generated_layer"
POSTLABELCACHE FALSE
PROCESSING "LABEL_NO_CLIP=ON"
LABELCACHE ON
METADATA
"wms_title" "generated_layer"
"gml_include_items" "all"
"gml_featureid" "__id__"
"ows_featureid" "__id__"
"wfs_featureid" "__id__"
"wfs_srs" "EPSG:4326 EPSG:3857"
"ows_srs" "EPSG:4326 EPSG:3857"
"wfs_getfeature_formatlist" "OGRKML"
END
TYPE POLYGON
.
.
.
END
Benicio, não deu pra eu testar o meu .map de acordo com o seu exemplo, trabalhei em outras coisas, não utilizei o openlayers.
ExcluirAssim que possível, farei o teste.
Muito obrigado mesmo pela ajuda e compreensão.
Olá, Benicio.
ResponderExcluirCara, desculpa por não ter te dado um retorno logo. Tive que dar uma pausa no Openlayers e fazer outras aplicações.
Infelizmente,não consegui prosseguir com o trabalho. Parei no "GetFeatureInfo", justamente no erro que mencionei anteriormente. Ao clicar no ponto, o erro era exibido. Modifiquei de acordo com o seu código, porém não tive sucesso.
Mais uma vez, meu muito obrigado pela ajuda.
Continue com esse trabalho.
Valeu.