Dalam pengalaman Anda, berapa banyak fitur titik yang dapat ditambahkan ke lapisan vektor OpenLayers (OpenLayers.Layer.Vector baru ("Point Layer")) sebelum ia berjalan sangat lambat?
Kasus penggunaan saya adalah untuk menampilkan poin dari tabel database. Pengguna dapat memutuskan kerangka waktu mana yang akan divisualisasikan. Oleh karena itu hasilnya dapat dari sangat sedikit hingga berpotensi 100.000 poin. Saya ingin memperkenalkan batas yang masuk akal dan memperingatkan pengguna jika permintaannya akan mengembalikan lebih banyak fitur.
openlayers
web-mapping
underdark
sumber
sumber
Jawaban:
Saya tidak punya jawaban pasti untuk Anda, tetapi Anda saya mengumpulkan halaman di mana Anda dapat bermain-main dengan jumlah poin yang berbeda pada peta OL: http://derekswingley.com/lab/olpts/
sumber
Jika tampilan menjadi lambat karena nomor fitur terlalu tinggi, itu berarti bahwa data untuk ditampilkan tidak cocok untuk tingkat zoom. Biasanya, ketika kepadatan fitur terlalu tinggi, tampilan tidak dapat dibaca lagi (lihat contoh ini ). Bahkan jika tidak ada batas pemrosesan dan semua perangkat layar dapat menampilkan fitur 1000000000000 dalam 0,001 pada layar kecil, visualisasi akan tetap mustahil.
Hukum radix Töpfer menyatakan bahwa kepadatan fitur harus tetap di bawah ambang batas konstan apa pun tingkat zoom. Cara untuk mengatasi masalah ini dan mengadaptasi data ke skala visualisasi adalah untuk mengubahnya menggunakan operasi generalisasi seperti ini atau ini lainnya .
sumber
Saya pikir tidak mungkin memberikan jawaban yang kuat untuk pertanyaan ini. Titik render / poligon sepenuhnya tergantung pada browser dan perangkat keras (CPU & memori) tidak dengan OpenLayers. Saya punya masalah dengan Openlayers dan IE6 untuk salah satu rendering Lake (Polygon). tapi, itu dimuat dengan baik di Firefox. Dan pilihan terbaik adalah memantau penggunaan memori dan CPU dengan Chrome atau beberapa alat akan lebih baik.
sumber
Seperti yang lain, saya tidak punya jawaban mengenai pertanyaan itu, tetapi menerapkan strategi BBox dapat membantu Anda menjaga hanya data yang diperlukan karena hanya menampilkan fitur yang berada di dalam kotak batas yang diberikan.
sumber
Di OpenLayers 6, ada penyaji titik WebGL yang seharusnya memungkinkan Anda membuat 100-an dari ribuan fitur, dengan penyaringan berbasis waktu. Anda Mungkin ingin melihat versi terbaru dari bengkel resmi di https://openlayers.org/workshop/en/webgl/ .
Dengan OpenLayers 2, yang saya benar-benar tidak merekomendasikan untuk menggunakan lagi, maksimum untuk frame rate yang dapat diterima akan menjadi beberapa ratus fitur saja.
sumber
Saya tersandung pada kasus penggunaan yang sama, tidak yakin apakah itu akan sesuai dengan kebutuhan yang disebutkan di atas tetapi
Clustering
dalam OL 5 adalah apa yang saya adopsi.Pengelompokan seperti kata-kata menyarankan mengambil sekelompok poin dan menggabungkan mereka ke titik lain misalnya Anda memiliki 100 poin di kota tertentu semua poin akan terlihat sebagai satu poin dari zoom katakanlah
4
tetapi sebagai poin individu dari zoom mari katakan10
apa yang bisa Anda lakukan adalah ketika zoom dilakukan4
Anda dapat bergabung dengan titik-titik tersebut sebagai satu, apa yang dilakukan ini membantu mengurangi jumlah poin yang akan diberikan di area tertentu.Dengan kata lain, katakanlah Anda memiliki 10.000 poin untuk ditampilkan di peta dan mereka cukup dekat satu sama lain, sehingga Anda dapat membuat kelompok mereka dan mengurangi rendering dan ketika pengguna memperbesar Anda terus melanggar kelompok. Ini akan memastikan bahwa Anda memiliki rendering yang lebih sedikit dan kinerja yang lebih baik.
Kinerja yang memuaskan. Tautan ke contoh Clustering di Openlayers
sumber