Trucuri pentru a reduce dimensiunea unui GeoJSON și pentru a îmbunătăți viteza aplicației dvs. de webmapping -

Una dintre problemele cu care ne confruntăm atunci când creăm o aplicație de webmapping este afișarea informațiilor spațiale cât mai repede posibil.

Formatul GeoJSON este mai ușor decât standardul GML și, de asemenea, evită problema Cross-Domain.

Acum, această arhitectură simplă poate avea o problemă: obiectul GeoJSON este încă foarte greu (datorită numărului de cifre utilizate pentru a codifica coordonatele în format text) și, prin urmare, harta durează mult timp pentru a afișa datele.

Problema este că vizualizatorul web reprezintă fiecare dintre geometrii, prin urmare, cu cât este mai mare numărul de vârfuri, cu atât harta va fi mai lentă (25 KB pe punct).

Să vedem câteva trucuri pentru a reduce dimensiunea unui GeoJSON și pentru a îmbunătăți viteza aplicației noastre de webmapping:

TopoJSON este o extensie GeoJSON care codifică topologia.

TopoJSOn elimină redundanțele, oferind reprezentări mai compacte ale geometriei decât GeoJSON. De exemplu, granița partajată între două țări este reprezentată o singură dată, în loc să fie duplicată pentru ambele țări, în acest fel, punctele comune sunt reprezentate o singură dată.

TopoJSON cuantifică coordonatele, în acest fel fiecare arc este definit de coordonatele sale cuantificate. Cuantizarea constă dintr-o transformare de linie care constă dintr-o scală și o traducere care convertește coordonatele cu o parte zecimală în numere întregi.

Mulțumită eliminării concedierilor și cuantificării coordonatelor, Fișierele TopoJSON sunt cu 80% mai mici decât echivalentele lor GeoJSON.

Conversia TopoJSON în GeoJSON

Cea mai simplă este utilizarea site-ului web shpescape.com, care ne permite să transformăm fișierele shapefile în GeoJSON și TopoJSON.

  • Eliminați toate atributele pe care nu le veți utiliza în aplicație.
  • Eliminați și spațiul alb.
  • Eliminați întreruperile de linie.

În exemplul următor vedem cum avem taste repetate (NAME, LATITUDE, LONGITUDE, POP_MAX)

O soluție pentru micșorarea și comprimarea fișierului elimină aceste chei și creează un index pe antet. Rezultatul ar fi ceva de genul acesta:

Pentru a efectua această compresie, avem instrumente precum HPack sau CJSON, ambele oferă rapoarte de compresie care sunt în jur de 60-70%.

Una dintre cele mai eficiente opțiuni pentru reducerea dimensiunii unui GeoJSON este simplifica vectorul. În acest fel scăpăm de detalii de care nu avem nevoie. Această simplificare ar servi pentru linii și poligoane.