Konwerter GeoJSON na Google KML
Konwersja wektorów GeoJSON do formatu Google KML przekształca lekkie tablice współrzędnych JSON w ustrukturyzowane dokumenty XML dostosowane do programów Google Earth i Google Maps.
Porównanie formatów i specyfikacja techniczna
| Specyfikacja | GEOJSON | KML |
|---|---|---|
| Typ MIME | application/geo+json | application/vnd.google-earth.kml+xml |
| Typ | geographic vector JSON | geographic XML notation |
| Kompresja | none (JSON text) | XML text (KMZ when ZIP compressed) |
| Standardowa specyfikacja | IETF RFC 7946 | OGC KML 2.3 |
| Nagłówek magic bytes | 7B 22 74 79 70 65 22 3A 20 22 ({"type": ") JSON header | 3C 3F 78 6D 6C ... 3C 6B 6D 6C (<kml) |
Przegląd formatu i zastosowania
Geograficzne dane wektorowe są często rejestrowane i udostępniane w formacie GeoJSON, ponieważ programiści webowi oraz biblioteki mapowe JavaScript przetwarzają je w sposób naturalny. Jednak stacjonarne oprogramowanie GIS, takie jak Google Earth, oraz starsze korporacyjne aplikacje globusowe wymagają języka Keyhole Markup Language, powszechnie znanego jako KML. Tłumaczenie tych formatów pozwala badaczom terenowym i kartografom przeglądać wielokąty granic pozyskane ze stron internetowych, punkty telemetryczne z dronów oraz miejskie trasy infrastrukturalne w wirtualnych globusach bez konieczności pisania niestandardowych skryptów. Przenoszenie danych z GeoJSON do KML stanowi również pomost między otwartymi interfejsami API sieci Web a konsumenckimi narzędziami kartograficznymi. Wielu planistów miejskich gromadzi dane za pomocą bibliotek Leaflet lub Mapbox, które generują pliki GeoJSON. Kiedy interesariusze chcą przejrzeć dokładnie te same warstwy w środowisku trójwymiarowym na komputerze, przekształcenie tagów geometrii, atrybutów stylizacji i właściwości metadanych w węzły XML zapewnia poprawne renderowanie elementów wizualnych, takich jak ikony, szerokości linii i kolory wypełnienia.
Specyfikacja techniczna i analiza kodeków
GeoJSON korzysta z typu MIME application/geo+json, reprezentując punkty geograficzne, linie i wielokąty wewnątrz zwykłego tekstu formatu JSON (JavaScript Object Notation). Nie zawiera żadnych binarnych magicznych bajtów, opierając się zamiast tego na standardowych nawiasach ASCII lub UTF-8 oraz parach klucz-wartość, takich jak "type": "FeatureCollection". Z kolei Google KML wykorzystuje typ MIME application/vnd.google-earth.kml+xml, strukturyzując cechy przestrzenne wewnątrz tagów XML, takich jak <Placemark>, <Point> oraz <Polygon>. Chociaż żaden z formatów nie stosuje natywnie kompresji stratnej na poziomie tekstu, pliki KML można pakować do archiwów KMZ przy użyciu standardowej kompresji DEFLATE, aby połączyć w jeden pakiet ciężkie dane wektorowe oraz lokalne ikony obrazów.
Zgodność z systemami operacyjnymi i przeglądarkami
Oba formaty ładują się bezproblemowo w nowoczesnych systemach operacyjnych, w tym Windows, macOS, Linux, iOS oraz Android. Nowoczesne przeglądarki internetowe natywnie parsują ciągi znaków GeoJSON za pomocą standardowych silników JavaScript, podczas gdy Google KML wymaga specjalistycznych parserów lub dedykowanego oprogramowania biurkowego do obsługi globusów, takiego jak Google Earth Pro. Przeglądarki mobilne nie potrafią wyświetlać surowych plików KML bezpośrednio bez aplikacji pomocniczej lub wstępnego renderowania po stronie serwera.
💡 Przydatne informacje
Podczas konwersji dużych zbiorów danych zawierających tysiące złożonych wielokątów, podziel źródłowy plik GeoJSON na mniejsze pliki regionalne przed wyeksportowaniem go do formatu KML, aby zapobiec awariom pamięci w konsumenckich aplikacjach mapowych.
Porównanie formatów i specyfikacja techniczna
Standardowy plik wektorowy GeoJSON o wielkości 5 megabajtów przesyła się w około 0,05 sekundy przy łączu światłowodowym 1 Gb/s, w około 0,4 sekundy w standardowej sieci mobilnej 5G oraz w mniej więcej 1 sekundę przy typowym połączeniu 4G LTE.
Często zadawane pytania
Jak przekonwertować GeoJSON na Google KML bez utraty jakości?
Ta konwersja jest w pełni bezstratna, ponieważ oba formaty przechowują współrzędne wektorowe przy użyciu dokładnych numerycznych wartości szerokości i długości geograficznej. Proces tłumaczenia mapuje klucze GeoJSON na odpowiadające im elementy XML KML bez zmiany precyzji współrzędnych, choć niestandardowe właściwości stylizacji mogą wymagać ręcznego dopasowania, jeśli docelowe oprogramowanie inaczej odczytuje niestandardowe atrybuty.
Czym różni się GeoJSON od Google KML?
GeoJSON to lekki format tekstowy zbudowany na składni JSON, zaprojektowany specjalnie z myślą o internetowych interfejsach API map oraz przetwarzaniu w języku JavaScript. Google KML to język oparty na formacie XML, zaprojektowany dla programu Google Earth, oferujący wbudowaną obsługę rzutowania wysokości 3D, niestandardowych punktów widzenia kamery, zagnieżdżonych hierarchii folderów oraz osadzonych ikon.