Geo XML
API Яндекс.Карт позволяет загружать XML-файлы с географическими данными в форматах YMapsML, KML и GPX.
Для загрузки данных используется функция geoXml.load, в которую передаётся URL XML-файла. Загрузка производится асинхронно (аналогично геокодированию), а формат загружаемого файла определяется функцией geoXml.load
автоматически. Данные о геообъектах преобразуются в коллекцию GeoObjectCollection и размещаются в поле geoObjects
объекта, передаваемого в функцию-обработчик. Этот объект может быть размещен на карте.
ymaps.geoXml.load('http://openflights.org/demo/openflights-sample.kml').then(function (res) {
myMap.geoObjects.add(res.geoObjects);
});
Загрузка XML-данных из источника с указанным URL производится сервером Яндекса. Поэтому XML-данные следует размещать на ресурсе, к которому предоставлен публичный доступ (или позаботиться о том, чтобы серверный загрузчик Яндекса смог получить доступ к нему).
Формат YMapsML позволяет описать не только координаты, геометрические свойства геообъектов и их отображение, но и включить в себя описание параметров карты. Параметры карты (если они заданы) помещаются в поле mapState
в виде объекта, позволяющего применить эти параметры к любой карте.
ymaps.geoXml.load('http://maps.yandex.ru/export/usermaps/93jfWjoXws37exPmKH-OFIuj3IQduHal/').then(function (res) {
myMap.geoObjects.add(res.geoObjects);
if (res.mapState) {
res.mapState.applyToMap(myMap);
}
});
Для коллекции, в которую при загрузке преобразуется GPX-трек, определено два пресета с ключами gpx#interactive
и gpx#plain
. Первый изменяет свойства ломаных, которыми соединены GPX-точки, таким образом, что при клике на любой её точке показывается дополнительная информация (время, скорость и пр.). Этот пресет используется по умолчанию. Во втором случае вывод дополнительной информации не производится.
ymaps.geoXml.load('http://karmatsky.narod2.ru/MskChel2.xml').then(function (res) {
res.geoObjects.options.set({'preset':'gpx#plain'});
myMap.geoObjects.add(res.geoObjects);
});