Добавление метки на карту

Open in CodeSandbox

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

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

Для загрузки 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_simpleobject.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: [55.76, 37.64],
            zoom: 8,
        },
        {
            searchControlProvider: "yandex#search",
        }
    );

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