Trükkök a GeoJSON méretének csökkentésére és a webtérkép-alkalmazás sebességének növelésére -

Az egyik probléma, amellyel a webtérkép-alkalmazás létrehozása során szembesülünk, a térinformációk lehető leggyorsabb megjelenítése.

A GeoJSON formátum könnyebb, mint a GML szabvány, és elkerüli a tartományok közötti problémát is.

Ennek az egyszerű architektúrának problémája lehet: a GeoJSON objektum még mindig nagyon nehéz (a koordináták szöveges formátumába történő kódolásához használt számjegyek miatt), és ennek következtében a térképnek hosszú időbe telik az adatok megjelenítése.

A probléma az, hogy a webnézegető az egyes geometriákat ábrázolja, ezért minél nagyobb a csúcsok száma, annál lassabb lesz a térkép (25 KB/pont).

Nézzünk meg néhány trükköt a GeoJSON méretének csökkentésére és a webtérkép-alkalmazás sebességének javítására:

A TopoJSON egy GeoJSON kiterjesztés, amely a topológiát kódolja.

A TopoJSOn kiküszöböli az elbocsátásokat, kompaktabb geometriai ábrázolásokat kínál, mint a GeoJSON. Például két ország megosztott határa csak egyszer van ábrázolva, ahelyett, hogy mindkét ország megduplázódna, ily módon a megosztott pontokat csak egyszer képviselik.

A TopoJSON kvantitatívan meghatározza a koordinátákat, így az egyes íveket a kvantált koordinátái határozzák meg. A kvantálás egy vonaltranszformációból áll, amely egy skálából és egy fordításból áll, amely a tizedes részű koordinátákat egész számokká alakítja.

A redundanciák kiküszöbölésének és a koordináták számszerűsítésének köszönhetően, A TopoJSON fájlok 80% -kal kisebbek, mint GeoJSON megfelelőik.

TopoJSON konvertálása GeoJSON-vá

A legegyszerűbb a shpescape.com webhely használata, amely lehetővé teszi számunkra, hogy a shapefile fájlokat GeoJSON és TopoJSON formátumúra alakítsuk át.

  • Távolítsa el az összes attribútumot, amelyet nem fog használni az alkalmazásban.
  • Távolítsa el a szóközt is.
  • Szüntesse meg a sortöréseket.

A következő példában láthatjuk, hogy miként ismételjük meg a kulcsokat (NAME, LATITUDE, LONGITUDE, POP_MAX)

Megoldás a fájl zsugorítására és tömörítésére távolítsa el ezeket a kulcsokat, és hozzon létre egy indexet a fejlécen. Az eredmény valami ilyesmi lenne:

Ennek a tömörítésnek az elvégzéséhez vannak olyan eszközeink, mint a HPack vagy a CJSON, mindkettő 60-70% körüli tömörítési arányt kínál.

Az egyik leghatékonyabb lehetőség a GeoJSON méretének csökkentésére vektor egyszerűsítése. Ily módon megszabadulunk a nem szükséges részletektől. Ez az egyszerűsítés vonalakra és sokszögekre szolgálna.