Então, estou tentando desenhar linhas curvas no meu aplicativo, que é baseado em um mapa do Leaflet.
Até onde eu sei, o Leaflet não suporta desenhar linhas curvas no momento, então minha pergunta é realmente mais sobre como obter melhor a funcionalidade de linhas curvas lá.
O problema ficou mais difícil porque meu código precisará ser compatível com o IE-8, o que significa que SVG puro não é solução. (Na verdade, o folheto faz um retorno ao VML se detectar que não há suporte para SVG ...)
Portanto, uma possibilidade seria escrever um código de extensão de folheto baseado em SVG com seu próprio fallback para VML. Isso seria muito trabalho. : /
Alguém tem uma proposta melhor?
leaflet
polyline-creation
svg
fgysin restabelecer Monica
fonte
fonte
Respostas:
Considerando o requisito de suporte do IE8, não temos muitas opções na mesa. Lembro-me apenas de uma lib SVG que possui fallback de VML - Raphaël.js. Você pode tentar esta implementação de plug-in de camada Raphaël para o Leaflet. https://github.com/dynmeth/RaphaelLayer Eu não experimentei o plugin, mas usei o Raphaël com sucesso. Espero que você possa encontrar um uso dele.
Aqui está o exemplo de trabalho (links de imagens para demonstração) http://visualizingurbanfutures.com/2012/09/06/maps-with-raphael-js/
Se não fosse o requisito do IE8, eu usaria o D3 para quaisquer vetores no GIS da web.
fonte
Você pode usar o plug- in arc.js do folheto para desenhar linhas curvas.
fonte
Criar sua própria camada personalizada é provavelmente uma solução para resolver esse problema. Mas sim, eu concordo que seria muito trabalho. Outra opção seria desenhar suas próprias curvas (bezier, b-spline ou algo parecido) com base nas coordenadas geográficas. Eu não tenho idéia se isso parece bom, mas eu poderia imaginar que o resultado não seria tão ruim e é definitivamente muito mais rápido alcançado. Existem muitos scripts JS para esses algoritmos. Pode valer a pena considerar projetar seus dados em algo como UTM para o cálculo.
Se você encontrar smth. fora por favor nos avise ...
fonte