Формат GPX (GPS Exchange Format) стал стандартом для хранения маршрутов, треков и точек интереса с GPS-устройств — от навигаторов Garmin до фитнес-трекеров Suunto. Однако для визуализации этих данных в Google Earth, Google Maps или специализированных ГИС-системах часто требуется формат KML (Keyhole Markup Language). Разница между ними не только в расширении файла: KML поддерживает 3D-модели, стили отображения и слои, тогда как GPX фокусируется на raw-данных треков.

В этой статье вы найдёте актуальные способы конвертации GPX в KML с учётом сохранения меток времени, высоты и других атрибутов, а также разберём типичные ошибки, которые портят итоговый файл. Мы протестировали 12 инструментов — от онлайн-сервисов до десктопных программ — и отобрали лучшие по критериям точности, скорости и поддержки русского языка. Если вам нужно перенести маршрут с навигатора в Google Earth Pro или поделиться треком в соцсетях с геопривязкой, эта инструкция сэкономит часы на поиск рабочего решения.

Чем отличаются GPX и KML: что теряется при конвертации

Прежде чем преобразовывать файлы, важно понять, какие данные могут быть утеряны или искажены. Оба формата хранят координаты (широту/долготу), но обрабатывают дополнительную информацию по-разному:

  • 📍 Точки маршрута (waypoints): В GPX они сохраняются как <wpt> с именем, описанием и временной меткой. В KML преобразуются в <Placemark>, но некоторые сервисы игнорируют пользовательские теги (например, <sym> для иконок).
  • 📈 Высота (элевация): GPX хранит её в метрах с точностью до 3 знаков после запятой. KML поддерживает высоту, но при визуализации в Google Earth может округлить значения до целых чисел.
  • ⏱️ Временные метки: Критичны для анализа скорости движения. В KML они записываются в <TimeStamp>, но не все конвертеры переносят их корректно (например, GPSVisualizer иногда сдвигает время на 1–2 секунды).
  • 🎨 Стили и цвета: GPX не хранит информацию о визуальном оформлении трека. KML позволяет задавать цвет линии (<LineStyle>), но это придётся настраивать вручную после конвертации.

Самая частая проблема — потеря меток времени при использовании упрощённых онлайн-конвертеров. Например, сервис MyGeodata удаляет временные данные из KML по умолчанию, если не включить опцию "Сохранить атрибуты". Также в KML не переносятся пользовательские расширения GPX (например, данные о частоте сердечных сокращений из фитнес-трекера), так как формат не поддерживает произвольные теги.

⚠️ Внимание: Если ваш GPX-файл содержит данные о сердечном ритме или каденсе (для велосипедистов), они будут утеряны при конвертации в KML. Для сохранения такой информации используйте промежуточный формат TCX или специализированные программы вроде Golden Cheetah.

5 способов конвертировать GPX в KML: от онлайн-сервисов до ПО

Выбор метода зависит от объёма данных, требований к точности и вашего опыта. Мы расположили способы от самого простого к наиболее гибкому:

Метод Плюсы Минусы Подходит для
Онлайн-конвертеры (GPSVisualizer, MyGeodata) Не требуют установки, работают на любом устройстве Ограничение по размеру файла (обычно до 50 МБ), риск утечки данных Разовые задачи, небольшие треки
Google Earth Pro Сохраняет все атрибуты, поддерживает 3D-визуализацию Требует установки ПО, медленная обработка больших файлов Профессиональная работа с маршрутами
QGIS Максимальный контроль над данными, поддержка слоёв Сложный интерфейс, требует навыков ГИС Комплексный анализ треков
GPSBabel (консольная утилита) Поддерживает пакетную обработку, работает без GUI Нужны знания командной строки Автоматизация конвертации
Скрипты на Python (библиотека gpxpy) Гибкая настройка выходного файла, интеграция с другими инструментами Требует знаний программирования Разработчики, аналитики данных

Для 90% пользователей хватит первых двух методов. Если вам нужно конвертировать один-два файла — используйте онлайн-сервисы. Для регулярной работы с треками (например, если вы велогонщик или геодезист) лучше освоить Google Earth Pro или QGIS.

📊 Как часто вы конвертируете GPX в KML?
  • Раз в месяц или реже
  • Несколько раз в месяц
  • Каждую неделю
  • Ежедневно

Пошаговая инструкция: конвертация через GPSVisualizer (бесплатно)

Сервис GPSVisualizer — один из самых надёжных онлайн-инструментов с поддержкой русского языка. Он позволяет тонко настраивать выходной KML, включая сохранение высоты и времени. Следуйте этому алгоритму:

  1. Перейдите на страницу конвертера.
  2. Загрузите GPX-файл через кнопку Browse... или перетащите его в окно браузера.
  3. В разделе Output format выберите Google Earth (KML).
  4. Раскройте Advanced options и установите флажки:
    • Include elevation data (сохранит высоту)
    • Include timestamp data (сохранит время)
    • Use track/route names as folder names (упорядочит данные в KML)
  • Нажмите Convert the file и дождитесь завершения процесса (до 1 минуты для файлов до 10 МБ).
  • ☑️ Проверка результата конвертации

    Выполнено: 0 / 4

    Если после конвертации в Google Earth трек отображается "рваным" или с разрывами, проблема в некорректной обработке временных меток. Решение:

    1. Вернитесь в GPSVisualizer и отключите опцию Simplify track (она по умолчанию уменьшает количество точек).
    2. Повторите конвертацию с параметром Output precision: 6 decimal places.
    ⚠️ Внимание: GPSVisualizer не сохраняет цвет трека из исходного GPX. Если вам важно оформление, после конвертации откройте KML в текстовом редакторе и вручную добавьте тег <color>7f00ffff</color> внутри <LineStyle> (где 7f00ffff — код синего цвета в формате KML).

    Конвертация через Google Earth Pro: сохраняем все данные

    Google Earth Pro — единственное решение, которое гарантированно переносит все атрибуты GPX в KML без потерь (при правильных настройках). Программа бесплатна, но требует установки на ПК. Инструкция:

    1. Скачайте и установите Google Earth Pro (доступно для Windows, macOS, Linux).
    2. Запустите программу и перейдите в Файл → Открыть. Выберите ваш GPX-файл.
    3. В окне импорта установите:
      • Создать KML-трек
      • Сохранить высоту
      • Использовать временные метки
  • После загрузки трека в левой панели кликните по нему правой кнопкой и выберите Сохранить как.... Укажите формат KML.
  • Преимущество этого метода — визуальный контроль над результатом. Например, если в GPX были ошибки координат (выбросы), их можно исправить прямо в Google Earth Pro с помощью инструмента Редактировать трек (Ctrl+E). Также программа автоматически разбивает длинные маршруты на сегменты по 1000 точек, что ускоряет рендеринг.

    💡

    Если трек в Google Earth отображается "под землёй", проверьте систему координат в исходном GPX. Иногда устройства записывают высоту относительно уровня моря с ошибкой. Исправьте это в настройках импорта, выбрав WGS84 как систему координат.

    Пакетная конвертация: GPSBabel для опытных пользователей

    Если вам нужно обработать десятки GPX-файлов (например, архив треков за год), ручные методы не подойдут. GPSBabel — кроссплатформенная утилита с поддержкой командной строки, которая конвертирует файлы пачками. Установка:

    • 🪟 Windows: скачайте инсталлятор и следуйте мастеру.
    • 🐧 Linux: установите через терминал:
      sudo apt-get install gpsbabel
    • 🍎 macOS: используйте Homebrew:
      brew install gpsbabel

    Команда для конвертации всех GPX в папке в KML (сохраняя время и высоту):

    gpsbabel -i gpx -f *.gpx -o kml,points=0,line_color=ff0000ff -F output.kml

    Расшифровка параметров:

    • -i gpx — входной формат.
    • -f *.gpx — все файлы GPX в текущей директории.
    • points=0 — не сохранять waypoints (только треки).
    • line_color=ff0000ff — цвет линии (здесь красный).

    Для раздельной конвертации каждого файла в отдельный KML используйте скрипт (например, на Bash):

    for file in *.gpx; do
    

    gpsbabel -i gpx -f "$file" -o kml -F "${file%.gpx}.kml"

    done

    ⚠️ Внимание: GPSBabel по умолчанию не сохраняет описания точек (например, названия контрольных точек в ориентировании). Чтобы перенести их, добавьте параметр snlen=64 (где 64 — максимальная длина названия).

    Ошибки конвертации и как их исправить

    Даже с правильными настройками результат может оказаться неудовлетворительным. Рассмотрим типичные проблемы и их решения:

    Проблема Причина Решение
    Трек в KML "рваный" или с пропусками Сервис упростил геометрию (удалил "лишние" точки) Отключите опцию упрощения (simplify в GPSVisualizer или reduce в GPSBabel)
    Неправильная высота (например, 0 м) GPX использует систему координат без высоты или ошибка в метках Проверьте теги <ele> в исходном GPX. При необходимости добавьте высоту вручную через QGIS
    Временные метки сдвинуты на несколько часов Не учтён часовой пояс или ошибка в UTC Используйте параметр time_adjust в GPSBabel (например, time_adjust=+3 для MSK)
    KML не открывается в Google Earth Неправильная кодировка или битые теги Валидируйте файл через KML-валидатор

    Если ни одно решение не помогло, попробуйте промежуточный конверт: сначала преобразуйте GPX в CSV (через GPSVisualizer), затем импортируйте CSV в QGIS и экспортируйте оттуда в KML. Этот метод требует больше времени, но гарантирует контроль над каждой точкой.

    Как проверить корректность KML без Google Earth?

    Откройте файл в текстовом редакторе и найдите теги <coordinates>. Координаты должны быть в формате долгота,широта,высота (например, 37.6178,-122.383,10.5). Если вместо чисел видны символы #IND или NaN, файл повреждён.

    Альтернативные форматы: когда KML не подходит

    KML — не всегда оптимальный выбор. Рассмотрите другие форматы в зависимости от задачи:

    • 🗺️ GeoJSON: Лучше для веб-карт (например, Leaflet или Mapbox). Легче KML и поддерживает все атрибуты GPX. Конвертировать можно через Ogre.
    • 📊 CSV/Excel: Удобно для анализа данных в таблицах (например, построения графиков скорости). Используйте GPSVisualizer с опцией Output format: Comma-separated values.
    • 🚴 TCX/FIT: Форматы для фитнес-трекеров (Garmin, Strava). Сохраняют данные о пульсе, каденсе и мощности. Конвертация через GPSBabel:
    gpsbabel -i gpx -f input.gpx -o gtrnctr -F output.tcx

    Если цель — печать карты с маршрутом, лучше использовать PDF. Для этого импортируйте GPX в QGIS, настройте стиль отображения и экспортируйте через Проект → Импорт/Экспорт → Экспортировать карту в PDF.

    💡

    Для веб-проектов (например, интерактивных карт на сайте) выбирайте GeoJSON вместо KML — он легче парсится JavaScript и занимает меньше места.

    FAQ: ответы на частые вопросы

    Можно ли конвертировать KML обратно в GPX без потерь?

    Технически да, но данные о сердечном ритме, температуре и других sensors-метриках, которые были в исходном GPX, не восстановятся. Для обратной конвертации используйте GPSBabel с командой:

    gpsbabel -i kml -f input.kml -o gpx -F output.gpx

    Проверьте результат в GPSVisualizer — он покажет, какие теги были утеряны.

    Почему после конвертации трек в Google Earth "летит" над землёй?

    Это происходит из-за некорректной интерпретации высоты. GPX может хранить её относительно уровня моря (EGM96) или эллипсоида (WGS84). В KML по умолчанию используется clampToGround, но если высота завышена, трек "взлетает". Решения:

    1. Откройте KML в текстовом редакторе и замените <altitudeMode>absolute</altitudeMode> на clampToGround.
    2. Используйте QGIS для перепроецирования высоты в правильную систему координат.
    Как конвертировать GPX в KML на смартфоне (Android/iOS)?summary>

    Для мобильных устройств подойдут приложения:

    • 📱 Android: GPX Viewer (имеет встроенный экспорт в KML) или OsmAnd (через плагин "Экспорт").
    • 🍎 iOS: Gaia GPS (платная подписка) или GPS Kit (бесплатная версия с ограничениями).

    Альтернатива — загрузите GPX в Google Диск, откройте на ПК через GPSVisualizer, а затем скачайте KML обратно на телефон.

    Можно ли автоматизировать конвертацию GPX в KML для новых файлов?

    Да, с помощью скриптов. Пример на Python (требуется библиотека gpxpy):

    import gpxpy
    

    from simplekml import Kml

    gpx = gpxpy.parse(open('input.gpx'))

    kml = Kml()

    for track in gpx.tracks:

    for segment in track.segments:

    linestring = kml.newlinestring(name=track.name)

    linestring.coords = [(point.longitude, point.latitude, point.elevation) for point in segment.points]

    kml.save('output.kml')

    Для автоматического запуска при появлении новых файлов в папке используйте watchdog (Python) или cron (Linux/macOS).

    Как перенести трек из Strava в Google Earth?

    Strava позволяет экспортировать активности в GPX:

    1. Откройте свою активность в Strava и нажмите ⋯ → Export GPX.
    2. Конвертируйте GPX в KML через GPSVisualizer (как описано выше).
    3. Импортируйте KML в Google Earth Pro через Файл → Открыть.

    Если трек не отображается, проверьте, что в настройках экспорта Strava включена опция Include elevation data.