Конвертер GeoJSON в KML
Конвертация векторных данных GeoJSON в Google KML переводит легковесные массивы координат JSON в структурированные XML-документы, оптимизированные для Google Earth и Google Maps.
Сравнение форматов и технические характеристики
| Характеристика | GEOJSON | KML |
|---|---|---|
| MIME-тип | application/ | application/ |
| Тип | географические векторные данные JSON | географическая нотация XML |
| Сжатие | нет (текст JSON) | текст XML (KMZ при сжатии в ZIP) |
| Стандартная спецификация | IETF RFC 7946 | OGC KML 2.3 |
| Сигнатура файла (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) |
Обзор формата и областей применения
Географические векторные данные часто фиксируются и распространяются в формате GeoJSON, поскольку веб-разработчики и библиотеки картографии на JavaScript обрабатывают его напрямую. Тем не менее, настольное ГИС-программное обеспечение вроде Google Earth и устаревшие корпоративные приложения для работы с виртуальными глобусами требуют язык Keyhole Markup Language, известный как KML. Преобразование этих форматов позволяет полевым исследователям и картографам просматривать полученные из интернета полигоны границ, точки телеметрии с дронов и маршруты муниципальных объектов на виртуальных глобусах без написания собственных скриптов. Перенос данных из GeoJSON в KML также помогает связать веб-API с открытым исходным кодом и картографическими инструментами для широкой аудитории. Многие городские планировщики собирают информацию с помощью библиотек Leaflet или Mapbox, выдающих файлы GeoJSON. Когда заинтересованным лицам нужно изучить эти же слои в трехмерной настольной среде, конвертация тегов геометрии, параметров стилей и свойств метаданных в узлы XML гарантирует корректный рендеринг визуальных элементов, таких как иконки, ширина линий и цвета заливки.
Технические спецификации и разбор кодеков
GeoJSON использует MIME-тип application/geo+json и представляет географические точки, линии и полигоны внутри простого текста нотации объектов JavaScript (JSON). Он не содержит двоичных сигнатур, полагаясь вместо этого на стандартные скобки ASCII или UTF-8 и пары «ключ-значение», такие как "type": "FeatureCollection". В свою очередь, Google KML задействует MIME-тип application/vnd.google-earth.kml+xml, структурируя пространственные объекты внутри тегов XML, таких как <Placemark>, <Point> и <Polygon>. Хотя ни один из форматов не применяет сжатие с потерями на уровне текста напрямую, файлы KML можно упаковывать в архивы KMZ с использованием стандартного сжатия DEFLATE для объединения объемных векторных данных и локальных иконок.
Совместимость с ОС и браузерами
Оба формата беспрепятственно загружаются в современных операционных системах, включая Windows, macOS, Linux, iOS и Android. Современные веб-браузеры нативно анализируют строки GeoJSON посредством стандартных движков JavaScript, тогда как для Google KML требуются специализированные парсеры или выделенное настольное программное обеспечение вроде Google Earth Pro. Мобильные браузеры не могут отображать сырые файлы KML напрямую без вспомогательного приложения или предварительного рендеринга на стороне сервера.
Полезная информация
При конвертации крупных наборов данных с тысячами сложных полигонов разбивайте исходный файл GeoJSON на более мелкие региональные файлы перед экспортом в KML, чтобы предотвратить сбои из-за нехватки памяти в потребительских картографических приложениях.
Часто задаваемые вопросы
Как конвертировать GeoJSON в Google KML без потери качества?
Эта процедура выполняется строго без потерь, поскольку оба формата сохраняют векторные координаты с использованием точных числовых значений широты и долготы. Процесс трансляции сопоставляет ключи GeoJSON с соответствующими элементами XML KML без изменения точности координат, хотя пользовательские свойства стилей могут потребовать ручного сопоставления, если целевое ПО по-иному интерпретирует нестандартные атрибуты.
В чем разница между GeoJSON и Google KML?
GeoJSON - это легковесный текстовый формат на основе синтаксиса JSON, созданный специально для веб-картографии и обработки средствами JavaScript. Google KML - это язык на базе XML, разработанный для Google Earth и предлагающий встроенную поддержку привязки объектов к высоте в 3D, пользовательских точек обзора камеры, иерархии вложенных папок и встроенных иконок.