Saat menggunakan Leaflet untuk memvisualisasikan dataset besar (GeoJSON dengan 10.000 fitur poin), tidak mengherankan browser crash atau hang. Sub-sampel 1000 fitur dari dataset yang sama berfungsi dengan sempurna. Sayangnya saya tidak bisa membagikan dataset untuk dicoba oleh orang lain.
Adakah yang punya solusi yang lebih baik untuk memvisualisasikan kumpulan data sebesar itu? (tujuan utamanya adalah untuk mengecilkan ini menjadi 2 juta fitur) Saya bahkan bersedia mempertimbangkan kerangka visualisasi offline jika alternatif berbasis browser seperti Polymaps atau d3.js dll dianggap tidak mampu.
Sunting: Lupa untuk menyebutkan, pengguna harus dapat memfilter set data berdasarkan atribut. Jadi dari fitur N , hanya fitur pencocokan n <= N yang mungkin perlu dirender secara dinamis.
sumber
Jawaban:
Saya penulis Leaflet. Ada plugin pengelompokan yang luar biasa untuk ini, Leaflet.markercluster . Ini sangat cepat dan efisien (lihat contoh marker 50k), terlihat dan bekerja dengan sangat lancar dengan animasi yang bagus, dan memiliki banyak pilihan yang sesuai dengan kebutuhan Anda.
sumber
PruneCluster
Terlihat juga menjanjikan.Anda dapat menggunakan TileMill dan membuat poin sebagai gambar raster, dengan interaktivitas cepat dari UTFGrid . Ini berskala ke jutaan titik dan poligon, seperti peta sensus ini , karena secara cerdas hanya mengirimkan data yang dibutuhkan untuk area tertentu, tepat saat dibutuhkan.
Sejauh yang saya tahu, tidak ada metode cepat lain untuk melakukan ini selain memiliki server WFS yang sangat cepat, yang agak sulit untuk mempertahankan / skala ke banyak pemirsa.
Pengungkapan: berfungsi untuk MapBox , menulis sedikit kode. Tapi TileMill gratis / open source, dll.
sumber
Sudahkah Anda melihat ke kluster leaflet? Posting blog oleh penulis menjelaskannya di sini
Opsi lain yang patut dilihat adalah menggunakan leaflet dalam kombinasi dengan GIS Cloud . Lihatlah demo ini untuk melihatnya menangani banyak geometri dengan sangat cepat. Sangat mengesankan. Saya sama sekali tidak berafiliasi dengan GISCloud.
sumber
Anda seharusnya tidak pernah menampilkan jutaan titik pada peta. Bukan hanya karena masalah kinerja utama, tetapi juga dari sudut pandang pengguna karena bagi mereka tentu akan sulit untuk menafsirkan data ini. Gunakan beberapa cara pengumpulan data (pengelompokan, pengumpulan ke area poligon, dll.) Dikombinasikan dengan tipe tampilan yang berbeda pada tingkat zoom yang berbeda (mis. Tunjukkan data titik "mentah" hanya pada tingkat zoom yang sangat tinggi dan gunakan data teragregasi di tempat lain). Contohnya adalah situs real estat seperti zillow.com .
sumber
Saya sarankan Anda mengurangi jumlah fitur poin yang diberikan: Mata manusia tidak akan dapat melihat 10.000 poin, apalagi 2.000.000.
Yang bisa Anda coba adalah secara dinamis meminta dataset dari server khusus (yang harus Anda atur), mis
Server Anda kemudian akan menghitung poin mana yang akan dikembalikan, tergantung pada apa yang ingin dilihat pengguna saat ini. Bergantung pada faktor pembesaran dan kliping, Anda hanya perlu mengembalikan persentase poin yang sangat kecil tanpa memperburuk pengalaman pengguna.
Kelemahan: Menyiapkan server (Anda harus menemukan perpustakaan untuk memfilter poin geo) & rendering lebih lambat (setelah setiap zoom atau seret, permintaan server perlu dibuat)
sumber
Saya punya solusi untuk memetakan 50 hingga 100 juta catatan, Anda perlu menggunakan solusi sisi server untuk melakukan kisi dan berbasis dinamis. Anda tidak dapat membalas pada API peta web (Google, atau orang lain) untuk melakukan rendering sisi klien ....
[http://96.231.36.9:8080/rbgis/google_map.html[[1] coba tautan di atas dan lihat caranya
sumber