Конвертер Google KML в GeoJSON
Конвертация файлов Google KML в формат GeoJSON преобразует иерархические географические данные XML в легкий векторный формат JavaScript Object Notation для современных веб-карт.
Сравнение форматов и технические характеристики
| Характеристика | KML | GEOJSON |
|---|---|---|
| MIME-тип | application/vnd.google-earth.kml+xml | application/geo+json |
| Тип | geographic XML notation | geographic vector JSON |
| Сжатие | XML text (KMZ when ZIP compressed) | none (JSON text) |
| Стандартная спецификация | OGC KML 2.3 | IETF RFC 7946 |
| Сигнатура файла (Magic Bytes) | 3C 3F 78 6D 6C ... 3C 6B 6D 6C (<kml) | 7B 22 74 79 70 65 22 3A 20 22 ({"type": ") JSON header |
Обзор формата и применение
Географические данные часто перемещаются между инструментами настольного маппинга и веб-приложениями. Google KML является стандартным форматом, используемым в Google Earth, который структурирует точки, линии и полигоны внутри дерева XML. Современные веб-браузеры и картографические библиотеки, такие как Mapbox и Leaflet, предпочитают GeoJSON, так как он соответствует структурам данных, используемым в JavaScript нативно. Разработчики и GIS-аналитики конвертируют KML в GeoJSON для быстрой загрузки наложений на веб-страницах без необходимости использования специализированного настольного программного обеспечения. Веб-приложения обрабатывают JSON мгновенно по сравнению с парсингом крупных документов XML. Когда пользователи загружают веб-карту, файл GeoJSON поступает непосредственно в движки векторного рендеринга. Эта конвертация устраняет накладные расходы на трансляцию тегов XML во время выполнения. Она позволяет картам отображать тысячи элементов плавно, сохраняя при этом точную геометрию координат.
Технические спецификации и разбор кодеков
Google KML использует MIME-тип application/vnd.google-earth.kml+xml и полагается на текстовый синтаксис XML или ZIP-контейнер, известный как KMZ в сжатом виде. GeoJSON использует MIME-тип application/geo+json и состоит из несжатого простого текста, структурированного как объект JSON. Файлы KML часто начинаются со стандартных байтов объявления XML, в то время как архивы KMZ начинаются с байтов заголовка локального файла ZIP 50 4B 03 04. Файлы GeoJSON начинаются с символа ASCII '{', представляющего корневой объект JSON. Процесс конвертации парсит дерево документов XML, извлекает массивы координат и теги метаданных, а затем перезаписывает их в коллекции функций JSON, соответствующие стандарту RFC 7946, без потери точности координат.
Совместимость с ОС и браузерами
Оба формата работают во всех современных операционных системах, включая Windows, macOS, Linux, iOS и Android. GeoJSON запускается нативно во всех современных веб-браузерах, таких как Chrome, Firefox, Safari и Edge, поскольку браузеры обрабатывают JSON нативно. Google KML требует специализированного настольного программного обеспечения, такого как Google Earth, или инструментов трансляции, таких как QGIS, для корректного рендеринга, так как веб-браузеры не могут нативно отображать файлы KML без сторонних библиотек парсинга.
💡 Полезная информация
Всегда проверяйте, что ваш исходный KML использует географические координаты WGS 84 перед конвертацией в GeoJSON, чтобы предотвратить ошибки пространственного смещения на ваших веб-картах.
Сравнение форматов и технические характеристики
Стандартный файл KML размером 5 мегабайт конвертируется в файл GeoJSON размером примерно 4,2 мегабайта. В мобильной сети 4G со скоростью 30 мегабит в секунду загрузка этого файла занимает около 1,1 секунды. В сети 5G со скоростью 150 мегабит в секунду передача завершается за 0,2 секунды. При гигабитном оптоволоконном подключении файл передается мгновенно менее чем за 0,05 секунды.
Часто задаваемые вопросы
Как конвертировать Google KML в GeoJSON без потери качества?
Конвертация математически без потерь для координатных данных. Оба формата хранят географические координаты с использованием системы пространственной привязки WGS 84. Однако специфические правила стилевого оформления в KML, такие как пользовательские URL иконок и сложная высота выдавливания полигонов, могут не иметь прямых эквивалентов в стандартном GeoJSON и могут потребовать ручного воссоздания.
В чем разница между Google KML и GeoJSON?
Google KML - это язык на базе XML, разработанный для браузеров Земли, с иерархической структурой узлов, поддерживающей расширенное оформление, виды камер и трехмерные элементы. GeoJSON - это легкий формат на базе JSON, оптимизированный для веб-API и векторной графики с плоской структурой, содержащей коллекции функций, геометрии и простые свойства.