Viac

Veľké súbory dát a výzvy pomocou klienta Leaflet


Používam leták na prezentáciu približne 90 000 dátových bodov. Môj testovací kód sa generuje pomocou doplnku QGIS2leaf v QGIS 10.10.1. Používam klastrovanie a kontrolu kódu, ktorý vidím, že sa jedná o „leaflet.markercluster.js“. V zásade to funguje dobre.

Z praktického hľadiska mám problém s kapacitou. Zhlukovanie funguje dobre, keď zväčšujete a zmenšujete obrázok. Problém je v tom, že mapa sa zobrazí až po 30 sekundách. Niektorí klienti dokonca havarujú.

Dôvodom sa zdá byť prenos súboru geojson (vývojové nástroje to potvrdzujú). Teraz je na úrovni 12 MB, čo je pokles z 61 MB. Niektorým evidentne pomohlo odstránenie všetkých údajov o atribútoch.

Pravdepodobne by som mohol odstrániť niektoré z desatinných čísel zo súradníc. Získal by som však iba pár percent.

Ako to môžem ďalej vylepšiť:

  • Existuje spôsob, ako preniesť zazipované súbory geojsonu na klienta (leták).
  • Súbor geojson je väčšinou (70%) opakovaný text. Existuje spôsob, ako preniesť súradnice a atribúty bez tejto réžie?
  • Môže Leaflet robiť ďalšie formáty, ktoré sú v tomto ohľade efektívnejšie?

Toto je kompromis medzi spracovaním údajov na strane klienta a na strane servera.

Môžete skúsiť použiť program TopoJSON na zmenšenie súboru, ale jeho spustenie je trochu zložitejšie a na polygónoch funguje lepšie, vrátane zjednodušenia.

Myslím, že najlepšie by ste mali využívať serverovú platformu. CartoDB je zadarmo pre malé použitie, ako je tento, a má ďalšie výhody, ako je efektná vizualizácia a štýl a úžasné rozhranie SQL API.

Pomocou CartoDB a Leaflet som vytvoril vizualizáciu, ktorá tu zvláda veľké množstvo bodov. Chcel som použiť klastrovanie JSON a Leaflet, ale množina údajov bola príliš veľká. Moje pravidlo je viac ako ~ 1,5 MB a už si ho nechcete sťahovať na strane klienta!

Ak to chcete urobiť sami, vyskúšajte TileJSON. Nechal som to spustiť a stále potrebujete spracovanie na strane servera.


Qgis2web dokáže minimalizovať GeoJSON. To si vás trochu získa. Môže tiež znížiť presnosť geometrie - počet desatinných miest (ako môže qgis2leaf).

Úpravy: qgis2web podporuje aj viditeľnosť závislú od mierky. Mohlo by to pomôcť?


MarkerCluster je obmedzený na 50 000 bodov , nad tým sa klient Leaflet spomalí a navigátor sa môže zrútiť.

vlastník letáku vyvinul riešenie s názvom Nadkupa, ktoré môžu zhromažďovať milióny bodov, je to riešenie na strane servera node.js a na strane klienta v MapBoxe.

o tomto riešení si môžete prečítať tu

ak nie ste oboznámení s node.js, môžete tu a tu vidieť, ako používate Nadkupa .