Membandingkan berbagai perpustakaan pemetaan JavaScript?


138

Saya sedang mengerjakan sistem pemetaan berbasis web dan saya mencoba mencari tahu perpustakaan mana yang akan digunakan.

Ini adalah tautan ke perbandingan perpustakaan yang tersedia:

masukkan deskripsi gambar di sini

Daftar perpustakaan sejauh ini:

  • Google Maps
  • Microsoft Virtual Earth
  • MapQuest
  • Leaflet - "Komentar lebih kecil, lebih cepat, lebih baru, dan lebih mudah juga dapat dibaca sebagai fitur yang lebih sedikit dan lebih sedikit diuji." -Geographika (lihat di bawah)
  • ArcGIS API untuk JavaScript - Berfungsi paling baik dengan ArcGIS Server (lihat di bawah). Google Maps dan ekstensi Bing map juga tersedia, memungkinkan Anda menggunakan ESRI API dengan Google / Bing maps (meskipun ini berlaku untuk sebagian besar perpustakaan).
  • API Peta Yahoo
  • Melalui Michelin
  • OpenLayers - Dokumentasi yang luas dan sejumlah fungsionalitas yang baik plus kemampuan untuk menggunakan penyedia peta yang berbeda.
  • Mapquery - MapQuery telah dirilis dan sekarang memiliki beberapa dokumentasi yang bermanfaat. Ini memiliki tujuan yang sangat berharga yaitu menggabungkan OpenLayers dan jQuery. Jika Anda terutama tertarik pada gagasan OpenLayers + jQuery, atau jika Anda ingin berkontribusi ke Perpustakaan Pemetaan JavaScript, maka libatkan dan kontribusikan upaya Anda. Namun jika Anda hanya ingin menjadi pengguna akhir, atau baru di bidang ini, itu mungkin bukan untuk Anda.
  • Mapstraction - Menjadikan hal-hal yang sangat sederhana, terutama bekerja dengan banyak penyedia basemap. Namun ini masih dalam proses dan fungsinya masih kurang, seperti dokumentasi. (Mis. "Objek GeoJSON dengan tipe" FeatureCollection "adalah objek kumpulan fitur." Tidak terlalu informatif.) Tampaknya masih dikembangkan secara aktif tetapi pada 4/4/11 belum ada komitmen pada Github sejak Januari.
  • deCarta - Memiliki javascript seluler dan desktop - yang pertama sesuai dengan HTML5 / CSS3 dan yang kedua memiliki lebih banyak kompatibilitas browser. Kode sumber disediakan. Persyaratan pengembang yang ramah untuk API komersial. Anda diizinkan memberi merek peta dan ada beberapa gaya peta yang berbeda. Anda dapat memilih data NAVTEQ atau OSM. Mereka juga memiliki beberapa API Seluler. - diedit oleh TheSteve0 - seorang karyawan deCarta
  • Buatan cloud
  • Polymaps - Mempermudah komposit data raster dan vektor dari berbagai sumber. Memungkinkan Anda dengan mudah menambahkan pewarnaan, pengelompokan, dan interaksi Anda sendiri. Berjalan cepat, mengelola pemuatan ubin latar belakang dengan baik, dan Javascript hanya 30k. Satu sisi potensial: menggunakan SVG yang artinya tidak dan tidak akan bekerja di MSIE 7 atau 8. Ini berfungsi dengan baik di setiap browser lain dan harus bekerja di IE9
  • Lompat - lompat adalah pustaka peta ringan yang berfungsi sendiri, artinya, bukan pembungkus untuk OpenLayers atau GoogleMaps API. Saat ini sedang dikembangkan, tetapi banyak fitur penting bekerja dengan baik.
  • ModestMaps - Pustaka pemetaan JS yang lebih kecil, lebih cepat, lebih baru dari pembuat Mapbox dan TileMill.
  • Mapiator

OpenLayers adalah yang saya gunakan saat ini. Anda dapat melakukan banyak hal dengannya dan mendukung sebagian besar tipe data. Namun itu bukan yang terbaik untuk semuanya. Sebagai contoh, Leaflet tampak lebih mulus dalam banyak hal, dengan pemudaran gambar dan perubahan visual lainnya. Jika Anda menyukai jQuery, Anda mungkin ingin melihat MapQuery yang merupakan kombinasi dari jQuery dan OpenLayers.

Jawaban:


93

Pertanyaan ini telah dikonversi ke Wiki Komunitas dan wiki dikunci karena ini adalah contoh pertanyaan yang mencari daftar jawaban dan tampaknya cukup populer untuk melindunginya dari penutupan. Itu harus diperlakukan sebagai kasus khusus dan tidak boleh dipandang sebagai jenis pertanyaan yang didorong pada ini, atau situs Stack Exchange, tetapi jika Anda ingin berkontribusi lebih banyak konten untuk itu maka jangan ragu untuk melakukannya dengan mengedit jawaban ini .


Untuk pengembang latar belakang non-GIS yang membuat aplikasi pemetaan fungsi tunggal - Saya mungkin akan merekomendasikan Leaflet (sekarang didukung oleh MapBox). Mudah digunakan dan kecil. Lebih banyak fungsi bergantung pada plugin dengan kualitas dan dukungan yang beragam.

Aplikasi tipe online GIS - gunakan OpenLayers3 - memiliki rangkaian lengkap sumber data, kontrol, dll. Di satu perpustakaan. Ini juga dapat digunakan untuk aplikasi pemetaan sederhana, jadi jika Anda memiliki campuran maka saya akan menggunakan ini untuk semuanya.

Google masih memiliki kombinasi pustaka / data (mis. StreetView tidak tersedia di tempat lain).

Esri memiliki pembuat aplikasi web GUI, dan seperti disebutkan di bawah ini, mengapa menyulitkan hal-hal jika Anda sudah menggunakan tumpukan mereka.

API Komersial (Google, Bing, Yahoo)

Dengan menggunakan API komersial apa pun, Anda harus menanggung segala perubahan yang dilakukan oleh penyedia terhadap API atau Ketentuan Layanan. Apa yang terjadi misalnya jika tiba-tiba portal pemerintah lokal Anda yang menggunakan Google Maps tiba-tiba muncul iklan di atasnya ? Ingin menggunakan kembali kode Google Maps JavaScript Anda untuk situs Intranet? Anda akan harus membayar biaya lisensi $ 10.000.

Microsoft sering memiliki ketentuan yang lebih pasti dan tetap untuk layanan mereka (jika membayar) sehingga risiko di sini mungkin lebih sedikit.

Serangan balik baru-baru ini terhadap Twitter adalah contoh bagus dari pengembang yang memiliki API yang berubah di bawahnya. Jika Anda tidak membayar untuk suatu layanan maka Anda (atau sistem Anda) adalah yang dijual.

Google mulai mengisi daya untuk penggunaan peta mereka mulai Oktober 2011

Esri

Seperti yang disebutkan orang lain jika Anda menggunakan tumpukan Esri maka API ArcGIS untuk JavaScript tidak diragukan lagi akan berfungsi dengan baik di atasnya. Berasal dari latar belakang GIS Esri mungkin lebih memikirkan tugas dan fitur GIS tradisional daripada raksasa web "neo-geografi" (meskipun ini hanya pendapat / perasaan).

OpenLayers telah membangun dukungan untuk lapisan ArcGIS REST , dan jika Anda ingin menggunakan kembali kode Anda untuk situs web yang bukan berbasis ESRI, sekali lagi API terbuka akan memberi Anda yang terbaik.

Gunakan OpenLayers ...

Saya benar-benar tidak bisa berpikir mengapa pengembang akan menggunakan API selain OpenLayers. Proyek Open Source menyebabkan proyek Open Source terkait sehingga ada banyak komponen dapat digunakan kembali di luar sana seperti perpustakaan GeoExt , MapQuery , dan GeoPrisma .

Saya hanya akan menambahkan bahwa hanya karena sebuah proyek Open Source tidak secara otomatis membuatnya lebih baik daripada setara komersial - tetapi OpenLayers API cocok dengan kompetisi komersial dalam kasus ini, dan kemampuan untuk melihat bagaimana sumber itu bekerja, unit test, the buat skrip dll. berarti Anda dapat dengan mudah membangun fitur baru di atasnya.

Ada beberapa kritik terbaru terhadap OpenLayers, terutama terkait dengan kompleksitas, gaya, dan ukuran. Ada beberapa argumen yang dibuat untuk ini di sini dan di sini oleh Christopher Schmidt salah satu pengembang utama OpenLayers.

Perlu dicatat bahwa jika Anda memerlukan API pemetaan Sumber Terbuka sederhana, maka lihat Leaflet Cloudmade .

Komentar yang lebih kecil, lebih cepat, lebih baru, dan lebih mudah juga dapat dibaca sebagai lebih sedikit fitur dan kurang diuji.

Pindai dokumentasi API untuk Leaflet dan OpenLayers . Yang terakhir termasuk item seperti lapisan WFS, alat pengeditan, dan dukungan SLD. Ini juga telah diuji di banyak lingkungan yang berbeda, dan berfungsi di IE6 (memungkinkan pengguna otoritas pemerintah dan lokal).

Untuk tampilan data spasial yang lebih sederhana, Leaflet terlihat ideal, dan lebih mudah untuk memulai. Namun saya akan tetap menggunakan OpenLayers untuk aplikasi GIS yang lebih kaya fitur.

Peringatan

Salah satu kelemahan yang mungkin terjadi adalah seringnya inovasi baru dilihat pertama kali dalam sistem penyedia komersial - namun hampir selalu menyaring OpenLayers pada waktunya.

Akhirnya saya yakin ada beberapa skenario di mana API lain lebih cocok - pada perangkat keras khusus, untuk cocok dengan organisasi sistem TI lainnya, atau jika Anda sudah mengetahui API dalam-luar dan dapat membuat sistem dikembangkan dalam separuh waktu .

Semua API yang Anda sebutkan mampu menghasilkan sistem pemetaan online yang hebat, tetapi pilihan Anda juga harus sesuai dengan kebutuhan pengembangan Anda atau perusahaan Anda di masa depan.


50

Ada pemain baru di depan pemetaan javascript - Leaflet . Dikembangkan oleh CloudMade di bawah lisensi BSD.

Terlihat sangat menjanjikan.

masukkan deskripsi gambar di sini

( Sumber )


3
Wah ini sepertinya perpustakaan yang mengesankan. Saya terkejut saya tidak menyadari yang ini.
dkroy

2
Berikut ini adalah perbandingan perilaku navigasi leaflet dan openlayers.
dkroy

2
Bagan alur yang bagus. Leaflet sebenarnya sangat bagus.
Mr_Chimp

7
Setelah mencoba menggunakan Leaflet untuk beberapa hal yang lebih kompleks, saya harus mengakui bahwa itu cukup terbatas dibandingkan dengan OpenLayers atau GeoExt. Sangat mudah diatur dan terlihat sangat bagus tetapi ada batasan untuk apa yang dapat Anda lakukan dalam hal interaksi. Sekali lagi, masing-masing memiliki tempat itu.
Mr_Chimp

3
Salinan bagan yang diperbarui (dari Januari 2012) tersedia di: geotux.tuxfamily.org/index.php/en/geo-blogs/item/…
Will.

35

Saya memiliki proyek Google Maps / arcgis api dan sekitar setahun yang lalu, saya memutuskan untuk mencoba OpenLayers. Semakin saya bekerja dengannya semakin saya menyukainya sehingga saya memutuskan untuk bermigrasi. Saya mengurangi 30 - 100 baris kode google menjadi 1 - 3 baris berulang-ulang di seluruh kode saya. Hanya karena OpenLayers memiliki fungsi untuk apa yang ingin saya lakukan dan harus secara manual memasukkan kode untuk google maps.


2
Semuanya baik. Terima kasih atas masukan Anda! Saya tidak yakin ada jawaban yang tepat untuk ini sehingga pendapat dan anekdot bermanfaat.
Mr_Chimp

2
+1 Saya selalu memilih OpenLayers daripada Google Maps jika tugasnya adalah menampilkan lebih dari satu tangan yang penuh spidol.
underdark

20

CartoDB adalah alat untuk menganalisis, vizualising, dan berbagi data geospasial Anda di PostGIS. Ini adalahplatform basis data geospasial sumber terbuka yang menyediakan lapisan SQL API. Hal ini memungkinkan pengembang untuk membuat querys ke cloud PostrgreSQL + database OpenGIS dioptimalkan untuk keperluan geospasial.

masukkan deskripsi gambar di sini



12

Saya membandingkan (dengan highlight & catatan) kode yang diperlukan untuk melakukan tugas sederhana, spesifik & umum di:

  • MapQuest
  • Google Maps
  • bing
  • Ovi
  • Esri
  • OpenLayers
  • jQuery Geo

di sini: http://trippingthebits.com/geopres/

Posting ini untuk presentasi yang saya berikan di jQuery Geo, yang sayangnya hilang dari daftar Anda.


Itu artikel yang bagus. Saya suka kode warna Anda! Ide yang sangat bagus.
Mr_Chimp

jQuery Geo FTW!
Sameer

1
@SameerAlibhai terima kasih! Tetap disini, kami akan segera menerbitkan Release Candidate 1.
ryanttb

11

Saya ingin memvisualisasikan bola dunia di dalam browser yang Cesium bagus. (Bekerja tanpa plugin tetapi browser Membutuhkan dukungan WebGL)

Dapat menampilkan tampilan 3D, 2D, dan 2.5D

Cesium mendukung 3D, 2D, dan 2.5D

Dukungan untuk berbagai format raster / vektor (KML dll.)

Dukungan untuk data raster / vektor differnet

Gratis mengontrol Kamera dan penerbangan Kamera

Kontrol kamera

... dan semua yang ada di dalam browser (modern).


2
wow, ini benar-benar proyek yang sangat bagus! :)
Krystian

1
OK, tapi kemudian bisakah Anda menjelaskan kepada kami mengapa Cesium tidak mendukung (dan banyak lainnya) WFS standar (Layanan Fitur Web)? Menurut saya itu adalah pemirsa yang sangat kuat, tetapi bukan sistem GIS sama sekali.
Pengusaha Web-GIS

11

Saya tidak kompeten untuk melakukan perbandingan penuh, tetapi saya telah melakukan tiga proyek kecil yang berbeda dengan Polymaps dan dapat mengomentari itu. Kekuatan utamanya adalah membuatnya sangat mudah untuk menggabungkan data raster dan vektor dari berbagai sumber. Itu dapat memenuhi semua kebutuhan Anda, terutama dalam membiarkan Anda dengan mudah menambahkan pewarnaan, pengelompokan, dan interaksi Anda sendiri. Polymaps juga cukup efisien: ini berjalan dengan cepat, mengelola pemuatan ubin latar belakang dengan baik, dan Javascript hanya 30k.

Kelemahan utama dengan Polymaps adalah menggunakan SVG yang berarti tidak dan tidak akan bekerja di MSIE 7 atau 8. Ini berfungsi baik di setiap browser lain dan harus bekerja di IE9, tapi saya tidak yakin seberapa baik diuji itu. SVG juga merupakan kekuatan: mudah diprogram dan renderingnya tampak hebat, terutama meningkatkan fitur vektor dan raster dalam peningkatan kecil.

Satu peringatan tentang perpustakaan: jika Anda ingin menggunakan ubin raster Google sebagai basemap Anda harus menggunakan perpustakaan Javascript mereka. OpenStreetMap, dll. Memiliki lisensi yang lebih permisif yang memungkinkan Anda memilih perpustakaan.

(Jawaban ini berasal dari 2011 dan banyak yang telah berubah. Polymaps tidak lagi dipertahankan. Pada titik ini Leaflet adalah pustaka sumber terbuka yang disukai.)


4
Hanya pembaruan atas jawaban saya; Polymaps belum memiliki perkembangan dalam beberapa tahun. Itu masih perpustakaan yang menarik dengan beberapa kemampuan unik, tetapi saya tidak akan menggunakannya untuk proyek baru. Hari ini saya menggunakan Leaflet.
Nelson

9

Saya seorang mahasiswa pascasarjana kartografi dan pendatang baru di pemetaan web, tetapi saya telah mengerjakan sebuah proyek untuk membandingkan berbagai teknologi di luar sana dan menyusun panduan dasar "bagaimana" untuk memulai dengan pemetaan web. Analisis saya sama sekali tidak komprehensif, dan saya telah mencoba untuk merasakan setiap perpustakaan melalui bermain-main dengan mereka dan melalui posting seperti ini dari programmer yang lebih berpengalaman. Saya akan senang mendapat tanggapan.


(+1) Terima kasih atas kontribusi Anda - selamat datang di komunitas kami!
whuber


7

Mapfluence dari Urban Mapping juga ada dalam campuran. Platform pemetaan yang di-host yang menawarkan layanan geoser berbasis web, dapat diakses dengan tenang dan dengan JavaScript (peningkatan dokumentasi / tutorial dalam perjalanan) API. Atau OL jika Anda menginginkannya. Kami memberikan ubin pangkalan kami sendiri , memiliki katalog besar data berdasarkan permintaan, dan mendukung data dan permintaan visualisasi lainnya.

Lihat webinar O'Reilly pada Rabu tentang geoservices + data besar untuk tinjauan umum tentang apa yang ada di geo.


7

Anda juga bisa melihat Geoma . Ini adalah kerangka kerja GIS yang ditulis dalam Java (termasuk klien Java menggunakan GWT). Namun, saat ini ada plug-in yang sedang berjalan untuk menyediakan API sisi klien lengkap dalam JavaScript. Belum cukup stabil tapi patut dilihat. Keuntungan menggunakan Geomajas adalah integrasi yang kuat antara back-end dan klien yang memiliki beberapa keunggulan termasuk kemampuan untuk dengan mudah menurunkan pekerjaan ke server dan ditambahkan terutama untuk keamanan.


6

Saya akan merekomendasikan ammap: http://www.ammap.com Mereka dulu memiliki peta flash, tetapi baru-baru ini memperkenalkan peta JavaScript dengan banyak fitur hebat.


4

Jika Anda mencari pustaka visualisasi data, lihat Highmaps , dari orang-orang di belakang Highcharts (termasuk saya - saat ini dipekerjakan sebagai pengembang perangkat lunak). Ini gratis untuk penggunaan non-komersial, berfungsi baik dengan browser seluler (dukungan sentuhan penuh) dan IE lama hingga IE6. Mendukung fitur dinamis canggih seperti drilldown dan tooltips kaya.

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini



1
Cukup adil, diedit.
Oystein

3

Metodologi yang menarik dapat ditemukan untuk membandingkan fitur yang Anda inginkan dari perpustakaan pemetaan JavaScript (tidak terbatas pada use case ini). Ini dipresentasikan pada acara NACIS 2012 oleh Richard Donohue & al. . Bagian yang menarik adalah tentang bagaimana mereka membuat klasifikasi tergantung pada tujuan dan fitur yang diperlukan.



2

Mungkin Anda juga bisa mempertimbangkan Bangau . Itu dibangun di atas Ext dan membuka lapisan bersama-sama mereka memiliki banyak template yang dapat Anda sesuaikan.

Kandidat potensial lainnya adalah GeoJS .

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.