geoXml.load
Статическая функция.
Загружает XML-файл с географическими данными и преобразует его в коллекцию GeoObjectCollection. Сформированная коллекция может быть передана заданной функции для последующей обработки. Поддерживаемые форматы XML-данных: YMapsML, KML, GPX. Для самой верхней коллекции геообъектов GPX-файла доступны следующие пресеты:
- 'gpx#interactive' - обеспечивает вывод информации о точке маршрута при клике. Также при использовании этого пресета в макете балуна становятся доступными следующие свойства геообъекта: time, velocity, trackName, trackDescription, pointName, pointDescription, lon, lat, sym. Используется по умолчанию.
- 'gpx#plain' - элементы gpx-коллекции ведут себя как обычные геообъекты;
Возвращает объект-promise. Если xml-файл по указанному урлу будет успешно загружен, promise будет подтверждён и получит в качестве параметров объект со следующими полями:
- geoObjects - коллекция геообъектов GeoObjectCollection;
- mapState - описание состояния карты IMapState (только для YMapsML);
{ vow.Promise } geoXml.load(url)
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: String URL файла с географическими данными. |
* Обязательный параметр/опция.
Пример:
// Создаем и инициализируем карту.
// Загрузка и отображение файла ymapsml из сервиса My Maps
ymaps.geoXml.load('http://maps.yandex.ru/export/usermaps/HNQ5uTUgbjy6L0dW2uReUjSoXb1Ad7jw/')
.then(function (res) {
// Добавление элементов файла ymapsml на карту
map.geoObjects.add(res.geoObjects);
// Установка границ и типа карты..
// границы res.mapState.getBounds() применяются к карте асинхронно,
// потому что нам нужно получить информацию о доступных уровнях масштабирования для этих границ
// res.mapState.getType() применяется синхронно.
if (res.mapState) {
res.mapState.applyToMap(map).then(function () {
alert('Boundaries applied to the map ' + res.mapState.getBounds().toString());
});
}
// Если информация о границах не указана в repr:View в файле YMapsML,
// мы можем применить gml:boundedBy для верхнего элемента ymaps: GeoObjectCollection
else if (res.geoObjects.properties.get('boundedBy')) {
map.setBounds(res.geoObjects.properties.get('boundedBy'), {
checkZoomRange: true
});
}
});
// Загрузка и отображение файла KML
ymaps.geoXml.load('https://sandbox.api.maps.yandex.net/examples/ru/2.1/geoxml_display/geoObjects.kml')
.then(function (res) {
map.geoObjects.add(res.geoObjects);
});
// Загрузка и отображение файла GPX
ymaps.geoXml.load('https://sandbox.api.maps.yandex.net/examples/ru/2.1/geoxml_display/geoObjects.gpx')
.then(function (res) {
res.geoObjects.options.set({
balloonContentBodyLayout: ymaps.templateLayoutFactory.createClass(
// Балун будет показывать только имя геообъекта свойство и скорость
'<b>{{ properties.name }}</b> {{ properties.velocity }}'
)
});
map.geoObjects.add(res.geoObjects);
// Метаданные о границах из файла GPX хранятся в свойствах коллекции res.geoObjects.
// Применим эти границы к карте.
if (res.geoObjects.properties.get('boundedBy')) {
map.setBounds(res.geoObjects.properties.get('boundedBy'), {
checkZoomRange: true
});
}
});
Обязательный параметр.
Была ли статья полезна?
Предыдущая
Следующая