Leaflet: cara menggambar garis melengkung?


17

Jadi, saya mencoba menggambar garis lengkung di aplikasi saya yang didasarkan pada peta Leaflet.

Sejauh yang saya tahu Leaflet tidak mendukung menggambar garis lengkung saat ini, jadi pertanyaan saya sebenarnya lebih tentang bagaimana cara terbaik untuk mendapatkan beberapa garis lengkung funtionalitas di sana.

Masalahnya menjadi lebih sulit karena kode saya harus kompatibel dengan IE-8, yang berarti SVG murni bukanlah solusi. (Leaflet sebenarnya melakukan back-back ke VML jika mendeteksi bahwa tidak ada dukungan SVG yang hadir ...)

Jadi satu kemungkinan adalah menulis sendiri kode ekstensi leaflet berdasarkan SVG dengan fallback sendiri ke VML. Ini akan menjadi pekerjaan yang sangat berat. : /

Apakah ada yang punya usul yang lebih baik?


Baru saja menyadari bahwa saya tidak pernah menerima jawaban. Saya memilih yang oleh @dobrych karena Raphaël tampaknya menjadi perpustakaan yang sangat bagus dan menyediakan fallback VML yang bagus. Saya mungkin melihat ke arc.js juga.
fgysin mengembalikan Monica

Jawaban:


5

Mengingat persyaratan dukungan IE8, kami tidak memiliki banyak pilihan. Saya hanya dapat mengingat satu lib SVG yang memiliki fallback VML - Raphaël.js Jadi Anda dapat mencoba implementasi plugin lapisan Raphaël ini untuk Leaflet. https://github.com/dynmeth/RaphaelLayer Saya tidak mencoba plugin sendiri, tetapi berhasil menggunakan Raphaël. Semoga Anda dapat menemukan penggunaannya.

Berikut adalah contoh kerjanya (tautan gambar ke demo) http://visualizingurbanfutures.com/2012/09/06/maps-with-raphael-js/

Jika tidak persyaratan IE8, saya akan menggunakan D3 untuk vektor di GIS web.



3

Membuat lapisan kustom Anda sendiri mungkin merupakan salah satu solusi untuk mengatasi masalah itu. Tapi ya, saya setuju itu akan banyak pekerjaan. Pilihan lain adalah menggambar kurva Anda sendiri (bezier, b-spline atau sesuatu seperti itu) berdasarkan koordinat geografis. Saya tidak tahu apakah itu terlihat bagus, tetapi saya bisa membayangkan bahwa hasilnya tidak akan terlalu buruk dan itu pasti jauh lebih cepat dicapai. Ada banyak skrip JS untuk algoritme semacam itu. Mungkin perlu mempertimbangkan untuk memproyeksikan data Anda menjadi sesuatu seperti UTM untuk perhitungan.

Jika Anda menemukan sesuatu tolong beri tahu kami ...

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.