Folheto: como desenhar linhas curvas?

17

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?

fgysin restabelecer Monica
fonte
Só agora percebi que nunca aceitei uma resposta. Eu escolhi o do @dobrych porque o Raphaël parece ser uma biblioteca muito boa e fornece um bom retorno de VML. Também posso olhar para o arc.js.
fgysin restabelece Monica 11/11

Respostas:

5

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.

dobrych
fonte
8

Você pode usar o plug- in arc.js do folheto para desenhar linhas curvas.

neogeomat
fonte
O Arc.js desenha ótimas rotas circulares, não curvas arbitrárias.
Marc Pfister
3

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 ...

Yojimbo
fonte