Ломаная

Open in CodeSandbox

YMapsML - язык описания географических объектов.

Каждому географическому объекту в YMapsML ставятся в соответствие геометрическая фигура и геообъект, используемый для отображения этой фигуры на карте. Описание фигур и их привязка к географическим координатам задается в соответствующих YMapsML-элементах. Для фигуры "ломаная линия" предназначен элемент gml:LineString. Он содержит координаты вершин линии.

Для загрузки YMapsML-данных предназначена функция geoXml.load. После того как данные загрузятся, функция преобразует их в GeoObjectCollection и передает в качестве параметра функции-обработчику. Коллекцию геообъектов GeoObjectCollection можно отобразить на карте.

<!DOCTYPE html>
<html>
    <head>
        <title>Ломаная</title>
        <meta
            http-equiv="Content-Type"
            content="text/html; charset=utf-8"
        />
        <!--
        Укажите свой API-ключ. Тестовый ключ НЕ БУДЕТ работать на других сайтах.
        Получить ключ можно в Кабинете разработчика: https://developer.tech.yandex.ru/keys/
    -->
        <script
            src="https://api-maps.yandex.ru/2.1/?lang=ru-RU&amp;apikey=<ваш API-ключ>"
            type="text/javascript"
        ></script>
        <script src="ymapsml_linestring.js" type="text/javascript"></script>
        <style>
            html,
            body,
            #map {
                width: 100%;
                height: 100%;
                padding: 0;
                margin: 0;
            }
        </style>
    </head>
    <body>
        <div id="map"></div>
    </body>
</html>
ymaps.ready(init);

function init() {
    var myMap = new ymaps.Map(
        "map",
        {
            center: [54.55, 36.27],
            zoom: 12,
        },
        {
            searchControlProvider: "yandex#search",
        }
    );

    // После того как данные YmapsMl-файла загрузятся, вызывается callback-функция.
    ymaps.geoXml.load("data.xml").then(
        function (res) {
            // Добавление коллекции геообъектов на карту.
            myMap.geoObjects.add(res.geoObjects);
        },
        function (error) {
            alert("При загрузке стилей произошла ошибка: " + error);
        }
    );
}