Ulotka: jak narysować zakrzywione linie?

17

Próbuję więc narysować zakrzywione linie w mojej aplikacji opartej na mapie Ulotki.

O ile mi wiadomo, Ulotka nie obsługuje obecnie rysowania zakrzywionych linii, więc moje pytanie dotyczy naprawdę tego, jak najlepiej uzyskać tam funkcję falistą.

Problem stał się trudniejszy, ponieważ mój kod będzie musiał być zgodny z IE-8, co oznacza, że ​​czysty SVG nie jest rozwiązaniem. (Ulotka faktycznie wraca do VML, jeśli wykryje, że nie obsługuje SVG ...)

Tak więc jedną z możliwości byłoby napisanie kodu rozszerzenia ulotki opartego na SVG z własnym powrotem do VML. To byłoby naprawdę dużo pracy. : /

Czy ktoś ma lepszą propozycję?

fgysin przywraca Monikę
źródło
Właśnie teraz zdałem sobie sprawę, że nigdy nie zaakceptowałem odpowiedzi. Wybrałem ten autorstwa @dobrych, ponieważ Raphaël wydaje się być bardzo ładną biblioteką i zapewnia niezłą rezerwę VML. Mogę również zajrzeć do pliku arc.js.
fgysin przywraca Monikę

Odpowiedzi:

5

Biorąc pod uwagę wymagania dotyczące obsługi IE8, nie mamy wielu opcji na stole. Mogę przywołać tylko jedną bibliotekę SVG, która ma awarię VML - Raphaël.js. Możesz więc wypróbować tę implementację warstwy Raphaëla dla Ulotki. https://github.com/dynmeth/RaphaelLayer Sam nie próbowałem wtyczki, ale z powodzeniem użyłem Raphaëla. Mam nadzieję, że znajdziesz zastosowanie.

Oto działający przykład (zdjęcie prowadzi do wersji demo) http://visualizingurbanfutures.com/2012/09/09/06/maps-with-raphael-js/

Jeśli nie jest to wymaganie IE8, chciałbym użyć D3 dla dowolnych wektorów w internetowym GIS.

najlepiej
źródło
8

Możesz użyć wtyczki arc.js do ulotki, aby narysować zakrzywione linie.

neogeomat
źródło
Arc.js rysuje świetne trasy po okręgu, a nie dowolne krzywe.
Marc Pfister
3

Utworzenie własnej warstwy niestandardowej jest prawdopodobnie jednym z rozwiązań tego problemu. Ale tak, zgadzam się, że byłoby to cholernie dużo pracy. Inną opcją byłoby narysowanie własnych krzywych (beziera, b-splajnu lub czegoś podobnego) na podstawie współrzędnych geograficznych. Nie mam pojęcia, czy to ładnie wygląda, ale mogłem sobie wyobrazić, że wynik nie byłby taki zły i jest zdecydowanie o wiele szybszy. Istnieje wiele skryptów JS dla takich algorytmów. Warto rozważyć przesłanie danych do czegoś takiego jak UTM do obliczeń.

Jeśli znajdziesz coś daj nam znać ...

Yojimbo
źródło