Формат 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.
- Раз в месяц или реже
- Несколько раз в месяц
- Каждую неделю
- Ежедневно
Пошаговая инструкция: конвертация через GPSVisualizer (бесплатно)
Сервис GPSVisualizer — один из самых надёжных онлайн-инструментов с поддержкой русского языка. Он позволяет тонко настраивать выходной KML, включая сохранение высоты и времени. Следуйте этому алгоритму:
- Перейдите на страницу конвертера.
- Загрузите GPX-файл через кнопку
Browse...или перетащите его в окно браузера. - В разделе
Output formatвыберитеGoogle Earth (KML). - Раскройте
Advanced optionsи установите флажки:- ✅
Include elevation data(сохранит высоту) - ✅
Include timestamp data(сохранит время) - ✅
Use track/route names as folder names(упорядочит данные в KML)
- ✅
Convert the file и дождитесь завершения процесса (до 1 минуты для файлов до 10 МБ).☑️ Проверка результата конвертации
Если после конвертации в Google Earth трек отображается "рваным" или с разрывами, проблема в некорректной обработке временных меток. Решение:
- Вернитесь в GPSVisualizer и отключите опцию
Simplify track(она по умолчанию уменьшает количество точек). - Повторите конвертацию с параметром
Output precision: 6 decimal places.
⚠️ Внимание: GPSVisualizer не сохраняет цвет трека из исходного GPX. Если вам важно оформление, после конвертации откройте KML в текстовом редакторе и вручную добавьте тег<color>7f00ffff</color>внутри<LineStyle>(где7f00ffff— код синего цвета в формате KML).
Конвертация через Google Earth Pro: сохраняем все данные
Google Earth Pro — единственное решение, которое гарантированно переносит все атрибуты GPX в KML без потерь (при правильных настройках). Программа бесплатна, но требует установки на ПК. Инструкция:
- Скачайте и установите Google Earth Pro (доступно для Windows, macOS, Linux).
- Запустите программу и перейдите в
Файл → Открыть. Выберите ваш GPX-файл. - В окне импорта установите:
- ✅
Создать 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, но если высота завышена, трек "взлетает". Решения:
- Откройте KML в текстовом редакторе и замените
<altitudeMode>absolute</altitudeMode>наclampToGround. - Используйте 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:
- Откройте свою активность в Strava и нажмите
⋯ → Export GPX. - Конвертируйте GPX в KML через GPSVisualizer (как описано выше).
- Импортируйте KML в Google Earth Pro через
Файл → Открыть.
Если трек не отображается, проверьте, что в настройках экспорта Strava включена опция Include elevation data.