Saya berdebat dengan salah satu kolega saya di OpenLayers v / s Leaflet. Saya menyatakan bahwa OpenLayers adalah API yang jauh lebih baik jika kami ingin membangun sebuah proyek, di mana Anda memerlukan konektivitas langsung ke Geoserver dan PostGIS.
Kemudian saya menemukan Open Data Kit , yang terlihat cukup baru tetapi memiliki fitur konektivitas dengan Geoserver dan PostGIS.
Jadi detail proyek saya adalah sebagai berikut,
- Gunakan antarmuka peta untuk mengambil Info Fitur
- Buat alat yang disesuaikan yang mengambil lat / lon dari pengguna ke mana ia mengklik peta dan kemudian mengambil Data Iklim dari raster (yang ditangani oleh skrip py di server)
- Mengizinkan pengguna mengunggah excel, yang dikirim ke skrip py, yang mengembalikan GeoJSON, yang menciptakan Fitur Vektor di peta
- Bolehkan pengguna untuk membuat poligon vektor, yang akan mengambil Fitur yang berpotongan dari Lapisan WFS.
- Mengambil Layer dari PostGIS Datastore di GeoServer dan menampilkan layer pada peta.
Jadi sekarang saya bingung mana yang lebih baik dan mengapa menggunakan OpenLayers di atas Leaflet lebih masuk akal atau tidak?
Jawaban:
Saya telah menggunakan OpenLayers dan Leaflet di aplikasi saya. Sudah ada begitu banyak diskusi tentang topik ini di forum ini dan yang lainnya di planet-internet. Mereka biasanya jatuh ke dalam 2 kubu - fitur dan fleksibilitas OpenLayers versus kesederhanaan Leaflet. Saya tidak akan terkejut jika seseorang menumbuhkan inisiatif "OpenLeaf" segera menikahi yang terbaik dari kedua dunia!
Saya menemukan Leaflet sangat mudah digunakan, ukuran 64K yang mungil, dibandingkan dengan lebih dari 700K Openlayers, dan dalam beberapa langkah Anda dapat membuat aplikasi yang memiliki kesegaran dan eye-candy dari aplikasi GIS web dan seluler saat ini. Stack Anda - GeoServer, PostGIS dll., Adalah stack standar, sehingga OpenLayers atau Leaflet dapat dengan mudah dimasukkan.
Karena itu, saya masih akan pergi dengan OpenLayers karena alasan berikut
sumber
Selebaran sepanjang jalan. Saya merasa Leaflet adalah langkah selanjutnya pada evolusi klien browser berbasis ubin sumber terbuka. Ka-Map -> OpenLayers -> Leaflet.
Leaflet mudah digunakan dan melakukan apa yang tertulis di kaleng. OpenLayers menjadi kembung dengan berusaha menjadi segalanya bagi semua orang, Leaflet melakukan 20% hal yang diperlukan 80% dari waktu.
sumber
Meskipun saya menggunakan Leaflet dalam aplikasi webGIS saya, OpenLayers memiliki lebih banyak keunggulan dibandingkan Leaflet. Sebagai contoh jika Anda ingin menggunakan aplikasi Anda di perangkat seluler, OpenLayers adalah suatu keharusan untuk saat ini.
Ada banyak sumber daya yang terkait dengan OpenLayers, namun saya pikir mengembangkan aplikasi dengan Leaflet lebih mudah daripada OpenLayers (lebih mudah untuk membaca kode dan memahami strukturnya). Jika Anda memiliki batasan waktu dan memiliki sedikit pengalaman dengan Javascript, menggunakan Leaflet mungkin merupakan solusi yang lebih baik untuk menyelesaikannya dengan lebih cepat. Atau jika Anda ingin mengembangkan aplikasi yang sangat sederhana, Leaflet bisa lebih mudah untuk beradaptasi pada awalnya.
Tetapi setelah saya mengembangkan aplikasi dengan Leaflet, sekarang saya mengatakan saya berharap saya telah menggunakan OpenLayers di awal. Karena ketika aplikasi Anda menjadi kompleks (seperti memanggil lapisan kompleks dari basis data, mengembangkan aplikasi seluler yang kuat, dll.), Leaflet mulai membatasi kemampuan Anda. Jadi, saya pikir menghabiskan sedikit lebih banyak waktu untuk memahami dan mempelajari struktur OpenLayers pada tahap pembelajaran pada akhirnya akan sia-sia.
Karena rincian proyek dipertimbangkan;
Gunakan antarmuka peta untuk mengambil Info Fitur:
Leaflet dan OpenLayers dapat melakukannya dengan sempurna. Intinya di sini adalah untuk mendapatkan koordinat acara klik dan mengirim permintaan ke server. Tautan permintaan akan sama untuk kedua aplikasi.
Buat alat yang disesuaikan yang membawa lat / lon dari pengguna ke tempat ia mengklik peta dan kemudian mengambil Data Iklim dari raster (yang ditangani oleh skrip py di server):
Saya mencapainya sendiri di Leaflet (saya juga menyebut data iklim). Saya tidak mengambil data raster dari server tetapi intinya di sini adalah membuat tautan permintaan, yang mudah untuk kedua aplikasi. Namun jika Anda ingin memilih poligon pada tahap ini agak sulit dicapai di Leaflet.
Mengizinkan pengguna mengunggah excel, yang dikirim ke skrip py, yang mengembalikan GeoJSON, yang membuat Fitur Vektor di peta:
Kira-kira garis pekerjaan yang sama untuk Leaflet dan OpenLayers. Saya tidak bisa mengatakan mana yang lebih baik.
Izinkan pengguna untuk membuat poligon vektor, yang akan mengambil Fitur yang berpotongan dari Lapisan WFS:
Saya tidak tahu tentang kemampuan mengedit OpenLayers tetapi Leaflet memiliki plugin bernama Leaflet Draw, yang mudah digunakan dan memanipulasi gambar (di sisi javascript) setelah menggambar selesai. Leaflet juga memiliki dukungan WFS-T jika Anda ingin memanipulasi data spasial pada server WFS. OpenLayers mungkin lebih baik dari itu, saya tidak tahu.
Mengambil Layer dari PostGIS Datastore di GeoServer dan menampilkan layer pada peta:
OpenLayers jelas lebih baik untuk pekerjaan ini karena lebih mudah untuk menghubungkan server PostGIS.
Omong-omong, ada suite aplikasi yang disebut OpenGeo Suite yang mencakup OpenLayers, GeoServer, dan PostGIS; yang akan menyelesaikan semua masalah yang dimiliki pengembang aplikasi GIS berbasis web.
sumber
Ada perbandingan besar pada dua kerangka kerja dalam presentasi ini :
Dan artikel lain juga memiliki ringkasan yang bagus:
Dari http://blog.thinkgeo.com/2015/09/09/leaflet-vs-openlayers-3-which-is-the-better-client-side-javascript-mapping-library/
sumber
Saya baru saja melewati keputusan ini untuk proyek seluler baru saya dan pemenangnya adalah OpenLayers. Leaflet, pada tulisan ini, agak lamban di ponsel. Transisi untuk pan / zoom tidak terasa mulus dan kadang-kadang membingungkan. Tidak mau asli, saya mencoba OpenLayers dan pengalamannya jauh lebih baik. Masih tidak sebagus asli, tapi jelas bisa digunakan dan merupakan opsi nyata.
sumber
Saya akan mengatakan periksa dokumentasi API untuk keduanya. Bagi saya tampaknya
OpenLayers
menawarkan banyak fitur, namun waktu pengembangan / debugging lebih lama.Leaflet
lebih seksi dan lebih mudah daripada OL, tetapi jika Anda ingin melakukan banyak hal dengan peta Anda, saya pikir suatu hari nanti Anda mungkin memerlukan fitur yang belum diimplementasikanLeaflet
!Saya sangat merekomendasikan untuk melihat API! OpenLayers & Leaflet
Anda juga mungkin perlu mempertimbangkan bahwa rilis stabil saat ini untuk Leaflet adalah
0.5.1
tetapi2.12
untuk OpenLayers.NB Jika saya ingin mengembangkan aplikasi seluler, saya pikir saya akan melakukannya
Leaflet
.sumber
Ada tutorial dasar yang membandingkan API dari OpenLayers 3 dan Leaflet dengan meminta Anda membuat hal yang sama di keduanya. Ini ditulis oleh Astun Technology dan tugas tutorialnya adalah:
Inilah tautannya: https://astuntechnology.github.io/osgis-ol3-leaflet/index.html
sumber
Itu tergantung pada apa yang Anda coba lakukan. Leaflet lebih sederhana dan lebih cepat untuk 80% proyek peta web.
Cara yang sama Anda tidak perlu pesawat ruang angkasa untuk berkeliling lingkungan Anda, sebagian besar waktu saya menemukan OpenLayers terlalu rumit untuk melakukan hal-hal yang sangat sederhana, khususnya dari Versi 3.
Misalnya, membuat pemilih lapisan membutuhkan 5-6 baris kode di Leaflet, sedangkan di OpenLayers 4 Anda harus membuatnya dari awal. Anda memiliki alat yang luar biasa untuk melakukannya, tetapi sebagian besar waktu Anda tidak ingin pemilih lapisan yang disesuaikan, hanya yang berfungsi dengan baik.
Hal penting lain yang perlu dipertimbangkan adalah bahwa sebagian besar informasi, tutorial dan debat di internet adalah tentang OpenLayers 2. Mereka ketinggalan zaman, karena Versi 3 tidak kompatibel dengan Versi 2. Dan kita sekarang di Versi 4. Versi 2 memiliki banyak hal sederhana seperti pemilih lapisan, sembulan, dll bersama dengan fungsi yang lebih kompleks; tetapi untuk alasan apa pun mereka hanya menghapus hal-hal itu untuk berkembang menjadi sistem yang kompleks dan sangat kuat. Selain itu, sekarang ada lebih banyak informasi tentang Leaflet daripada tahun 2012, dan ini adalah teknologi yang lebih matang.
Sebagai kesimpulan, tanyakan pada diri Anda apakah Anda membutuhkan mobil atau pesawat ruang angkasa. Anda tidak akan terbang dengan mobil, tetapi mengendarai pesawat ruang angkasa untuk berbelanja bisa sangat rumit.
sumber