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.
A vonalak vagy sokszögek egyszerűsítése érdekében használhatunk asztali GIS klienst.
A GRASS ideális eszköz ehhez a művelethez, mivel topológiai GIS lévén nem veszítjük el a szomszédságot, így a korrekció még az egyszerűsítés magas szintjén is megmarad. A szóban forgó algoritmus v.generalize.
Nagyobb leegyszerűsítés érdekében használhatunk egy online eszközt, például a mapshaper-t, amely lehetővé teszi számunkra a sorok simítását vagy a csomópontok kiküszöbölését egy shp, geojson vagy topojson fájlból.
A legegyszerűbb módja annak javítja a pontmegjelenítés sebességét olyan plugin használata, amely csoportosítja őket. Ez az opció nagymértékben javítja a megjelenítést az ügyfél oldalon, mivel ez azt jelenti, hogy az ügyfél böngészőjének nem kell 10 000 pontot, hanem csak 10 és 50 között húznia.
A Leaflet pluginjei közül 5-et találunk erre a célra:
Mindegyikből ki akarjuk emelni a PruneCluster-t, miért? Mivel az első kijelzőn mindössze 1,9 másodperc alatt képes 1 000 000 jelzőt reprezentálni, a későbbieken pedig 400 ezredmásodperc alatt.
Ezenkívül a csoportok valós időben frissíthetők. Tökéletes élő helyzetekhez.
A plugin további előnyei:
- Megadhatjuk az egyes markerek súlyát.
- Adjon meg egy kategóriát a könyvjelzők számára. Ily módon létrehozhatunk tartalmunkhoz igazított ikonokat.
- A csoport nagysága menet közben állítható
- A könyvjelzők könnyen kiszűrhetők, teljesítményköltség nélkül.
Egy másik lehetőség a hőtérképek vagy hőtérképek létrehozása, amint azt az oktatóanyagban láthattuk a hőimpák létrehozásáról az OpenLayers segítségével. A hőtérkép segíti az ügyfél böngészőjében való ábrázolást, mivel nem szükséges minden pontot megrajzolni, csak azokat rajzolni, amelyek a Abban a pillanatban.
Használjon gyors webtérkép-megjelenítőt
Az olyan API, mint a Leaflet, gyors és intelligens renderelést végez mind a vonalak, mind a sokszögek között. Az egyszerűsítés és a dinamikus nyírás révén több ezer ponttal képesek vagyunk objektumokat megjeleníteni.
Kerülje a GeoJSON használatát
Az egyik lehetőség az lehet, hogy egy külső tessellált szerverre viszi. Például a TileMill.
Bár természetesen a legjobb egy teljes architektúra létrehozása, amely például a PostGIS + GeoServer + GeoWebCache + a választott térképek API-t tartalmazza. Az online webtérkép tanfolyam segít eldönteni, melyik lehetőség a legjobb.
Ne feledje, hogy az űrobjektumok megjelenítéséhez időbe telő térkép valószínűleg nem nyílik meg ...
Használjon vektoros csempéket
A vektorlapok jelentősen gyors térképeket hoznak létre, miközben teljes rugalmasságot kínálnak a tervezésben.
A weblapozáshoz használt képcsempékkel egyenértékű vektoradatok, amelyek a csempék előnyeit alkalmazzák a vektoradatokra: gyorsítótárazáshoz, méretezhetőséghez és térképképek gyors kiszolgálására fejlesztették ki.
Egy érdekes megjegyzést is hagyunk Önnek arról, hogy Abel Vázquez Montoro otthagyott minket a LinkedIn-en:
Ha a cél a vektoros adatcsere megkönnyítése mind sebességben, mind méretben, akkor a nyers GeoJSON-val szemben az optimális lehetőség a Protokoll pufferek használata és az összes csere kezelése a PBF-ben. A sebesség (akár 300% -kal gyorsabb) és a méret (akár 90% -kal kisebb) fejlesztése miatt érdemes megtenni a formátum megváltoztatását mind az ügyfélen, mind a szerveren.
- Szépségápolási tippek az arc megjelenésének javítására 5 perc alatt - Jobb az egészséggel
- Trükkök a kettős áll csökkentésére a férfiaknál
- Trükkök a csípő csökkentésére - Bezzia
- Csökkentse az adagok méretét és a testmozgást, ami a fogyás kulcsa a szakértők szerint
- Tippek és trükkök a narancsbőr, a striák és a visszér csökkentésére