Daher versuche ich, in meiner Anwendung, die auf einer Leaflet-Karte basiert, gekrümmte Linien zu zeichnen.
Soweit ich weiß, unterstützt Leaflet das Zeichnen von gekrümmten Linien im Moment nicht. Meine Frage ist also, wie ich die Funktionalität von gekrümmten Linien am besten nutzen kann.
Das Problem wird erschwert, weil mein Code IE-8-kompatibel sein muss, was bedeutet, dass reines SVG keine Lösung ist. (Leaflet führt tatsächlich einen Fallback zu VML durch, wenn festgestellt wird, dass keine SVG-Unterstützung vorhanden ist ...)
Eine Möglichkeit wäre also, selbst einen Flyer-Erweiterungscode zu schreiben, der auf SVG mit einem eigenen Fallback auf VML basiert . Das wäre verdammt viel Arbeit. : /
Hat jemand einen besseren Vorschlag?
leaflet
polyline-creation
svg
fgysin setzt Monica wieder ein
quelle
quelle
Antworten:
In Anbetracht der Anforderungen an die IE8-Unterstützung stehen nicht viele Optionen zur Verfügung. Ich kann mich nur an eine SVG-Bibliothek mit VML-Fallback erinnern - Raphaël.js. Sie können also diese Raphaël-Layer-Plugin-Implementierung für Leaflet ausprobieren. https://github.com/dynmeth/RaphaelLayer Ich habe das Plugin nicht selbst ausprobiert, sondern Raphaël erfolgreich eingesetzt. Hoffe, Sie können eine Verwendung finden.
Hier ist das Arbeitsbeispiel (Bildlinks zur Demo) http://visualizingurbanfutures.com/2012/09/06/maps-with-raphael-js/
Wenn nicht IE8-Anforderung, würde ich D3 für alle Vektoren im Web-GIS verwenden.
quelle
Sie können das arc.js- Plugin für Broschüren verwenden, um gekrümmte Linien zu zeichnen.
quelle
Das Erstellen einer eigenen benutzerdefinierten Ebene ist wahrscheinlich eine Lösung für dieses Problem. Aber ja, ich bin damit einverstanden, dass es eine Höllenarbeit sein würde. Eine andere Möglichkeit wäre, eigene Kurven (Bezier, B-Spline oder ähnliches) basierend auf den geografischen Koordinaten zu zeichnen. Ich habe keine Ahnung, ob das schön aussieht, aber ich könnte mir vorstellen, dass das Ergebnis nicht so schlecht wäre und es definitiv viel schneller erreicht wird. Es gibt viele JS-Skripte für solche Algorithmen. Es lohnt sich möglicherweise zu überlegen, Ihre Daten für die Berechnung in so etwas wie UTM zu projizieren.
Wenn Sie etw finden raus lass es uns wissen ...
quelle