---
metadata:
  - name: generator
    content: Diplodoc Platform v5.39.1
alternate:
  - https://yandex.com/dev/jsapi-v2-1/doc/en/v2-1/dg/concepts/geoxml.md
  - https://yandex.com/dev/jsapi-v2-1/doc/ru/v2-1/dg/concepts/geoxml.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com/dev/jsapi-v2-1/doc/ru/llms.txt

# Отображение объектов из KML, GPX и YMapsML

API позволяет загружать данные в форматах [KML](http://www.opengeospatial.org/standards/kml), [GPX](http://www.topografix.com/gpx.asp) и [YMapsML](https://yandex.ru/dev/maps/ymapsml/doc/1.x/guide/concepts/about.html). У добавленных объектов можно настроить внешний вид и реакцию на события.

[Загрузка XML](#load)

[Загрузка данных из Конструктора карт](#constructor)

[Настройка пресетов для GPX-треков](#preset)

[Примеры](#example)

## Загрузка XML {#load}

Для загрузки данных используется функция [geoXml.load()](https://yandex.com/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/geoXml.load.md), в которую передается ссылка на XML-файл. Функция обрабатывает данные асинхронно.

{% note alert %}

Загружаемый файл должен быть размещен на вашем сервере и доступен по прямой ссылке.

{% endnote %}


```javascript
// Загрузка XML данных.
// Функция определяет формат файла (KML, GPX или YMapsML) автоматически.
var data = ymaps.geoXml.load("/examples/ru/2.1/geoxml_display/geoObjects.kml");

// Обработка полученного асинхронно ответа.
data.then(function(res) {
    // Добавление объектов на карту.
    myMap.geoObjects.add(res.geoObjects);
});
```

Данные о загруженных объектах преобразуются в коллекцию [`GeoObjectCollection`](https://yandex.com/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/GeoObjectCollection.md). Ссылка на коллекцию размещается в поле объекта `geoObjects`, передаваемого в функцию-обработчик.

Структура коллекции `GeoObjectCollection` зависит от структуры загружаемых данных. `GeoObjectCollection` может содержать вложенные коллекции. Ниже приведен пример, как получить доступ к объектам таких коллекций:

```javascript
// Пример получения первого объекта из коллекции.
var data = ymaps.geoXml.load("/examples/ru/2.1/geoxml_display/geoObjects.kml");

data.then(function(res) {
  // Проверка на наличие геометрия у объекта.
  if (res.geoObjects.get(0).geometry == null){
    // Если геометрии нет, то это коллекция. Можно обработать вложенный объект.
    console.log("Тип объекта из вложенной коллекции: " + res.geoObjects.get(0).get(0).geometry.getType());
  }
  else{
    // Иначе можно обработать сам объект.
    console.log("Тип объекта верхнего уровня: " + res.geoObjects.get(0).geometry.getType());
  }
});
```

## Загрузка данных из Конструктора карт {#constructor}

Конструктор карт — это визуальный редактор, позволяющий отмечать объекты на карте. Например, с его помощью можно разметить [зоны доставки](https://tech.yandex.ru/maps/jsbox/2.1/delivery_zones) или нарисовать схему проезда на карте.

Чтобы использовать данные из Конструктора карт в JS API, [экспортируйте](https://yandex.ru/support/maps-builder/concept/markers_3.html) их в формате KML или GPX. Полученный файл разместите у себя на сервере и загрузите с помощью функции [geoXml.load()](#load).

## Настройка пресетов для GPX-треков {#preset}

При работе с GPX-треками доступны дополнительные пресеты:

- `gpx#interactive` — при клике на любой точке ломанной показывается дополнительная информация, полученная из GPX-трека (время, скорость и прочее). Используется по умолчанию.
- `gpx#plain` — при клике не выводится дополнительной информации.

Изменить пресет можно следующим образом:

```javascript
// Загрузка XML данных.
var data = ymaps.geoXml.load("/examples/ru/2.1/geoxml_display/geoObjects.gpx")

// Загрузка производится асинхронно.
data.then(function(res) {
    // Установка пресета.
    res.geoObjects.options.set({
        "preset": "gpx#plain"
    });
    // Добавление объектов на карту.
    myMap.geoObjects.add(res.geoObjects);
});
```

## Примеры {#example}

В песочнице доступны следующие примеры загрузки XML-файлов:

- [Как добавить на карту объекты из KML и GPX-файлов](https://tech.yandex.ru/maps/jsbox/2.1/geoxml_display)

- [Как определить отклонение запланированного маршрута от реального по GPX-треку](https://tech.yandex.ru/maps/jsbox/2.1/tracks_compare)

