Eu estava debatendo com um dos meus colegas no OpenLayers v / s Leaflet. Afirmei que o OpenLayers é uma API muito melhor se queremos construir um projeto, no qual você precisa de conectividade direta com o Geoserver e o PostGIS.
Então eu encontrei o Open Data Kit , que parece bem novo, mas possui os recursos de conectividade com o Geoserver e o PostGIS.
Então, os detalhes do meu projeto são os seguintes,
- Use a interface do mapa para buscar informações sobre os recursos
- Crie uma ferramenta personalizada que leve o usuário para onde ele clica no mapa e, em seguida, busca os dados climáticos da varredura (que é tratada por um script py no servidor)
- Permite que o usuário faça o upload do excel, que é enviado para o script py, que retorna um GeoJSON, que cria recursos vetoriais no mapa
- Permitir que o usuário crie polígonos vetoriais, que buscarão os Recursos que ele cruza na Camada WFS.
- Busca a camada do armazenamento de dados PostGIS no GeoServer e exibe as camadas no mapa.
Então agora estou confuso sobre o que é melhor e por que usar o OpenLayers sobre o Leaflet faz mais sentido ou não?
Respostas:
Eu usei o OpenLayers e o Leaflet nos meus aplicativos. Tem havido muita discussão sobre este tópico neste fórum e outros no planeta-internet. Eles geralmente se enquadram em dois campos - recursos e flexibilidade do OpenLayers versus simplicidade do Leaflet. Eu não ficaria surpreso se alguém criar uma iniciativa "OpenLeaf" logo se casando com o melhor dos dois mundos!
Achei o Leaflet muito simples de usar, um tamanho pequeno de 64K, em comparação com mais de 700K Openlayers, e em muito poucas etapas você pode criar aplicativos com o frescor e o charme dos aplicativos de GIS na Web e móveis de hoje. Sua pilha - GeoServer, PostGIS etc., é uma pilha padrão; portanto, OpenLayers ou Leaflet podem ser facilmente incorporados.
Dito isto, eu continuaria com o OpenLayers pelos seguintes motivos
fonte
Folheto até o fim. Sinto que o Leaflet é o próximo passo na evolução dos clientes de navegador baseados em blocos de código aberto. Ka-Map -> OpenLayers -> Folheto.
O folheto é simples de usar e faz exatamente o que diz na lata. O OpenLayers ficou inchado ao tentar ser tudo para todas as pessoas, o Leaflet faz 20% das coisas necessárias 80% do tempo.
fonte
Embora eu tenha usado o Leaflet no meu aplicativo webGIS, o OpenLayers tem muito mais vantagens sobre o Leaflet. Por exemplo, se você deseja usar seu aplicativo em dispositivos móveis, o OpenLayers é obrigatório no momento.
Existem muitos recursos relacionados ao OpenLayers, no entanto, acho que o desenvolvimento de aplicativos com o Leaflet é mais fácil que o OpenLayers (é mais fácil ler um código e entender a estrutura). Se você tem um limite de tempo e tem pouca experiência com Javascript, usar o Leaflet pode ser uma solução melhor para fazê-lo mais rapidamente. Ou se você deseja desenvolver um aplicativo muito simples, o Leaflet pode ser muito mais fácil de se adaptar a princípio.
Mas depois que desenvolvi um aplicativo com o Leaflet, agora digo que gostaria de ter usado o OpenLayers no início. Como quando seu aplicativo se torna complexo (como chamar camadas complexas de um banco de dados, desenvolver um aplicativo móvel robusto etc.), o Leaflet começa a limitar suas habilidades. Então, acho que gastar um pouco mais de tempo para entender e aprender a estrutura do OpenLayers no estágio de aprendizado acabará valendo a pena.
Conforme os detalhes do projeto considerados;
Use a interface do mapa para buscar informações sobre os recursos:
O Leaflet e o OpenLayers podem fazer isso perfeitamente. O objetivo aqui é obter as coordenadas do evento click e enviar a solicitação ao servidor. O link de solicitação será o mesmo para os dois aplicativos.
Crie uma ferramenta personalizada que leva o usuário lat / lon até onde ele clica no mapa e, em seguida, busca os Dados Climáticos da varredura (que é tratada por um script py no servidor):
Consegui isso no Leaflet (a propósito, eu também estava chamando os dados climáticos). Eu não estava buscando os dados rasterizados de um servidor, mas o objetivo aqui é criar um link de solicitação, o que é fácil para os dois aplicativos. No entanto, se você deseja selecionar um polígono nesta fase, é um pouco difícil de obter no Leaflet.
Permite que o usuário faça upload do excel, que é enviado para o script py, que retorna um GeoJSON, que cria recursos vetoriais no mapa:
Aproximadamente a mesma linha de trabalho para o Leaflet e o OpenLayers. Não sei dizer qual é o melhor.
Permita que o usuário crie polígonos vetoriais, que buscarão os Recursos que ele cruza na Camada WFS:
Não tenho idéia das habilidades de edição do OpenLayers, mas o Leaflet possui um plugin chamado Leaflet Draw, que é fácil de usar e manipular os desenhos (no lado do javascript) após a conclusão do desenho. O Leaflet também oferece suporte ao WFS-T se você deseja manipular os dados espaciais no servidor WFS. OpenLayers pode ser melhor que isso, eu não sei.
Busca a camada do armazenamento de dados PostGIS no GeoServer e exibe as camadas no mapa:
Definitivamente o OpenLayers é melhor para este trabalho, pois é mais fácil conectar o servidor PostGIS.
A propósito, existe um conjunto de aplicativos chamado OpenGeo Suite que inclui OpenLayers, GeoServer e PostGIS; que resolverá todos os problemas que um desenvolvedor de aplicativos GIS baseado na web tem.
fonte
Há uma ótima comparação nas duas estruturas nesta apresentação :
E outro artigo também tem um ótimo resumo:
De http://blog.thinkgeo.com/2015/09/08/leaflet-vs-openlayers-3-which-is-the-better-client-side-javascript-mapping-library/
fonte
Acabei de passar por essa decisão para o meu novo projeto móvel e o vencedor é o OpenLayers. O folheto, no momento em que este artigo foi escrito, era bastante lento no celular. As transições para panorâmica / zoom não pareceram suaves e às vezes eram desorientadoras. Antes de ser nativo, tentei o OpenLayers e a experiência é muito melhor. Ainda não é tão bom quanto o nativo, mas definitivamente utilizável e uma opção real.
fonte
Eu diria que verifique a documentação da API para ambos. Para mim, parece que
OpenLayers
oferece um amplo conjunto de recursos, porém o tempo de desenvolvimento / depuração é mais longo.Leaflet
é mais sexy e muito mais fácil do que o OL, no entanto, se você quiser fazer muito com seu mapa, acho que um dia você poderá precisar de um recurso que ainda não foi implementadoLeaflet
!Eu realmente recomendo dar uma olhada nas APIs! OpenLayers & Leaflet
Além disso, você pode precisar de considerar que a versão estável atual para Folheto é
0.5.1
, mas é2.12
para OpenLayers.PS: Se eu quiser desenvolver um aplicativo móvel, acho que posso ir
Leaflet
.fonte
Há um tutorial básico que compara as APIs do OpenLayers 3 e do Leaflet, permitindo que você construa a mesma coisa nos dois. Foi escrito pela Astun Technology e as tarefas do tutorial são:
Aqui está o link: https://astuntechnology.github.io/osgis-ol3-leaflet/index.html
fonte
Depende do que você está tentando fazer. O folheto é mais simples e rápido para 80% dos projetos de mapas da web.
Da mesma forma que você não precisa de uma espaçonave para percorrer seu bairro, na maioria das vezes eu achei o OpenLayers muito complexo para fazer coisas realmente simples, especialmente da Versão 3.
Por exemplo, a criação de um seletor de camada leva talvez de 5 a 6 linhas de código no Leaflet, enquanto no OpenLayers 4 você precisa construí-lo do zero. Você tem ferramentas incríveis para fazer isso, mas na maioria das vezes não deseja um seletor de camada personalizado, apenas um que funcione bem.
Outra coisa importante a considerar é que a maioria das informações, tutoriais e debates na Internet são sobre o OpenLayers 2. Eles estão desatualizados, pois a Versão 3 não é compatível com a Versão 2. E agora estamos na Versão 4. Versão 2 tinha muitas coisas simples, como seletor de camadas, pop-ups, etc., além de funções mais complexas; mas, por qualquer motivo, eles apenas deletaram esses tipos de coisas para evoluir para um sistema complexo e muito poderoso. Além disso, agora há muito mais informações sobre o Leaflet do que em 2012, e é uma tecnologia mais madura.
Como conclusão, pergunte-se se você precisa de um carro ou de uma nave espacial. Você não voa de carro, mas dirigir uma nave espacial para fazer compras pode ser realmente complicado.
fonte