KML konvertálása GeoJSON formátumba
A Google KML-fájlok GeoJSON-formátumba alakítása a hierarchikus XML-alapú földrajzi adatokat a modern webes térképekhez használható, kis méretű, vektoros JavaScript Object Notation formátummá alakítja.
Formátum-összehasonlítás és műszaki specifikációk
| Specifikáció | KML | GEOJSON |
|---|---|---|
| MIME-típus | application/ | application/ |
| Típus | földrajzi XML-jelölés | földrajzi vektoros JSON |
| Tömörítés | XML-szöveg (ZIP-pel tömörítve KMZ-vé) | nincs (JSON szöveg) |
| Szabványos specifikáció | OGC KML 2.3 | IETF RFC 7946 |
| Fájlfejléc azonosító bájtjai | 3C 3F 78 6D 6C ... 3C 6B 6D 6C (<kml) | 7B 22 74 79 70 65 22 3A 20 22 ({"type": ") JSON header |
A formátum áttekintése és alkalmazási területei
A földrajzi adatok gyakran cserélődnek az asztali térképészeti eszközök és a webes alkalmazások között. A Google KML a Google Earth által használt szabványos formátum, amely pontokat, vonalakat és poligonokat struktúrál egy XML-fában. A modern webböngészők és a térképészeti könyvtárak, mint a Mapbox vagy a Leaflet, a GeoJSON-t részesítik előnyben, mert az közvetlenül illeszkedik a JavaScript által használt adatstruktúrákhoz. A fejlesztők és a térinformatikai elemzők azért alakítják át a KML-t GeoJSON-ra, hogy a térképrétegeket gyorsan betölthessék a weboldalakon különleges asztali szoftverek nélkül. A webalkalmazások a nagy XML-dokumentumok elemzéséhez képest azonnal feldolgozzák a JSON-t. Amikor a felhasználók betöltenek egy webtérképet, a GeoJSON fájl közvetlenül a vektoros renderelő motorokba táplálódik. Ez az átalakítás kiküszöböli az XML-címkék futásidejű fordításának többletköltségét. Lehetővé teszi, hogy a térképek zökkenőmentesen jelenítsenek meg több ezer elemet, miközben fenntartják a precíz koordinátageometriákat.
Műszaki specifikációk és kodekáttekintés
A Google KML az application/vnd.google-earth.kml+xml MIME-típust használja, és XML-szintaxisra támaszkodik; tömörített formában a KMZ nevű ZIP-tárolóban található. A GeoJSON az application/geo+json MIME-típust használja, tömörítetlen, JSON-objektumként strukturált egyszerű szöveg. A KML-fájlok gyakran szabványos XML-deklarációval kezdődnek, a KMZ-archívumok pedig az 50 4B 03 04 ZIP helyi fájlfejléccel. A GeoJSON-fájlok a gyökér JSON-objektumot jelölő { ASCII-karakterrel kezdődnek. Az átalakítás elemzi az XML-dokumentumfát, kinyeri a koordinátatömböket és a metaadatcímkéket, majd RFC 7946-kompatibilis JSON-elemkészletté írja át őket a koordináták pontosságának megőrzésével.
Operációs rendszer- és böngésző-kompatibilitás
Mindkét formátum működik az összes modern operációs rendszerben, beleértve a Windows, macOS, Linux, iOS és Android rendszereket. A GeoJSON natívan használható minden modern webböngészőben, például a Chrome-ban, a Firefoxban, a Safariban és az Edge-ben, mivel a böngészők natívan értelmezik a JSON-t. A Google KML olyan speciális asztali szoftvert igényel, mint a Google Earth, vagy fordítóeszközöket, mint a QGIS a helyes megjelenítéshez, mivel a webböngészők külső elemzőkönyvtárak nélkül nem tudják natív módon megjeleníteni a KML fájlokat. A támogatás az alkalmazástól, az eszköztől, az operációs rendszertől és annak verziójától is függ.
Hasznos információk
A GeoJSON formátumra való átalakítás előtt mindig ellenőrizze, hogy a forrás KML a WGS 84 földrajzi koordinátákat használja-e a webes térképeken előforduló térbeli eltolódási hibák elkerülése érdekében.
Gyakran ismételt kérdések
Hogyan alakítható át a Google KML GeoJSON-ná minőségromlás nélkül?
Az átalakítás a koordinátaadatok tekintetében matematikailag veszteségmentes. Mindkét formátum a WGS 84 térbeli referenciarendszert használja a földrajzi koordináták tárolására. A KML egyes stílusszabályainak, például az egyéni ikon-URL-eknek és az összetett poligonok kiemelési magasságainak azonban nem feltétlenül van közvetlen megfelelője a szabványos GeoJSON-ban, ezért ezeket kézzel kell újra létrehozni.
Mi a különbség a Google KML és a GeoJSON között?
A Google KML egy XML-alapú nyelv, amelyet földgömb-megjelenítőkhöz terveztek, hierarchikus csomópont-struktúrával, amely támogatja a gazdag stílusokat, kameranézeteket és 3D elemeket. A GeoJSON egy JSON-ra épülő, pehelysúlyú formátum, amelyet webes API-khoz és vektoros grafikákhoz optimalizáltak, és lapos szerkezettel rendelkezik, amely elemgyűjteményeket, geometriákat és egyszerű tulajdonságokat tartalmaz.