GeoJSON konvertálása KML formátumba
A GeoJSON-vektorok Google KML-formátumba alakítása a kis méretű JSON-koordinátatömböket a Google Earth és a Google Maps igényeire szabott, strukturált XML-dokumentumokká alakítja.
Formátum-összehasonlítás és műszaki specifikációk
| Specifikáció | GEOJSON | KML |
|---|---|---|
| MIME-típus | application/ | application/ |
| Típus | földrajzi vektoros JSON | földrajzi XML-jelölés |
| Tömörítés | nincs (JSON szöveg) | XML-szöveg (ZIP-pel tömörítve KMZ-vé) |
| Szabványos specifikáció | IETF RFC 7946 | OGC KML 2.3 |
| Fájlfejléc azonosító bájtjai | 7B 22 74 79 70 65 22 3A 20 22 ({"type": ") JSON header | 3C 3F 78 6D 6C ... 3C 6B 6D 6C (<kml) |
A formátum áttekintése és alkalmazási területei
A földrajzi vektoradatokat gyakran GeoJSON formátumban rögzítik és osztják meg, mivel a webfejlesztők és a JavaScript térképészeti könyvtárak természetes módon dolgozzák fel azokat. Az asztali GIS szoftverek, például a Google Earth és a régebbi vállalati földgömb-alkalmazások azonban a Keyhole Markup Language-et, ismertebb nevén KML-t igénylik. Ezen formátumok fordítása lehetővé teszi a terepkutatók és a térképészek számára, hogy virtuális földgömbökön belül tekinthessék meg a webről letapogatott határpoligonokat, a drónok telemetriai pontjait és a települési létesítmények útvonalait anélkül, hogy egyedi parancsprogramokat kellene írniuk. Az adatok GeoJSON-ból KML-be történő áthelyezése szintén áthidalja a szakadékot a nyílt forráskódú webes API-k és a felhasználói központú térképészeti eszközök között. Számos városfejlesztő gyűjt adatokat a Leaflet vagy a Mapbox könyvtárak használatával, amelyek GeoJSON fájlokat hoznak ki kimenetként. Amikor az érdekelt felek át akarják tekinteni ezeket a pontos rétegeket egy 3D-s asztali környezetben, a geometriai címkék, a stílusattribútumok és a metaadatok tulajdonságainak XML csomópontokká történő konvertálása biztosítja, hogy az olyan vizuális elemek, mint az ikonok, a vonalvastagságok és a kitöltőszínek helyesen jelenjenek meg.
Műszaki specifikációk és kodekáttekintés
A GeoJSON az application/geo+json MIME-típust használja, és földrajzi pontokat, vonalakat és poligonokat jelenít meg egyszerű szöveges JavaScript Object Notation (JSON) formátumban. Nem tartalmaz bináris varázsbájt (magic byte) fejléceket, ehelyett a szabványos ASCII vagy UTF-8 zárójelekre támaszkodik, valamint olyan kulcs-érték párokra, mint a "type": "FeatureCollection". Ezzel szemben a Google KML az application/vnd.google-earth.kml+xml MIME-típust használja, és a térbeli elemeket olyan XML címkékbe, mint a <Placemark>, a <Point> és a <Polygon>, strukturálja. Bár egyik formátum sem használ natívan veszteséges tömörítést szöveges szinten, a KML fájlok szabványos DEFLATE tömörítéssel KMZ archívumokba tömöríthetők a nehéz vektoriális adatok és a helyi ikonképek együttes csomagolásához.
Operációs rendszer- és böngésző-kompatibilitás
Mindkét formátum zökkenőmentesen betöltődik a modern operációs rendszerekben, beleértve a Windowst, a macOS-t, a Linuxot, az iOS-t és az Androidot. A modern webböngészők a szabványos JavaScript motorok segítségével natívan elemzik a GeoJSON karakterláncokat, míg a Google KML speciális elemzőket vagy dedikált asztali földgömb-szoftvereket, például a Google Earth Pro-t igényli. A mobilböngészők segédalkalmazás vagy kiszolgáló oldali előrenderelés nélkül nem tudják közvetlenül megjeleníteni a nyers KML fájlokat.
Hasznos információk
Ha sok ezer összetett poligonból álló, nagy adatkészleteket konvertál, a KML-be exportálás előtt ossza fel a forrás GeoJSON-fájlt kisebb, régiók szerinti fájlokra, hogy elkerülje a memória-összeomlásokat a fogyasztói térképészeti alkalmazásokban.
Gyakran ismételt kérdések
Hogyan alakítható át a GeoJSON Google KML-formátumba minőségromlás nélkül?
Ez a konverzió szigorúan veszteségmentes, mivel mindkét formátum pontos szélességi és hosszúsági értékekként tárolja a vektoros koordinátákat. Az átalakítási folyamat a GeoJSON kulcsokat a megfelelő KML XML elemekhez képezi le anélkül, hogy megváltoztatná a koordináták pontosságát, bár az egyéni stílusbeállítási tulajdonságok manuális leképezést igényelhetnek, ha a célszoftver másként olvassa a nem szabványos attribútumokat.
Mi a különbség a GeoJSON és a Google KML között?
A GeoJSON egy JSON-szintaxisra épülő, kis méretű szöveges formátum, amelyet kifejezetten webes térképészeti API-khoz és JavaScript feldolgozáshoz terveztek. A Google KML egy XML alapú nyelv, amelyet a Google Earth számára terveztek, és beépített támogatást nyújt a 3D-s magasság rögzítéséhez, az egyéni kamera nézőpontokhoz, a beágyazott mappaszerkezetekhez és a beágyazott ikonokhoz.