Обзор YMapsML

YMapsML представляет собой XML-язык, предназначенный для описания и отображения различных географических объектов в сервисе Яндекс.Карты.

Для получения сведений о работе с YMapsML средствами JavaScript API Яндекс.Карт см. Отображение объектов из KML, GPX и YMapsML. YMapsML также используется в ответе HTTP-геокодера, см. Ответ геокодера.

YMapsML основан на стандарте XML и является расширением стандарта GML.

Корневым элементом YMapsML-документа является ymaps:ymaps. В атрибутах этого элемента описываются пространства имен XML и используемые XSD-схемы.

Элемент ymaps:ymaps, в свою очередь, может содержать в себе несколько тегов, служащих контейнерами для различных данных или групп данных, отображаемых на карте.

attr:Attribution
Является контейнером для тега attr:Source.
attr:Source
Содержит информацию о поставщике сведений, представленных в YMapsML-документе.
repr:Representation
Является контейнером для тегов repr:View, repr:Style и repr:Template.
repr:View
Предназначен для задания начального состояния карты. С его помощью можно задать центр карты, ее тип и начальный масштаб. Элемент repr:View может присутствовать в YMapsML-документе не более одного раза.
repr:Style
Описывает стили отображаемых на карте объектов. С помощью стилей, в частности, можно описать то, как будут выглядеть на карте метки, линии и другие объекты. Элементы repr:Style могут присутствовать в YMapsML-документе в любом количестве.
repr:Template
Предназначен для описания шаблонов, на основе которых строится HTML-верстка различных объектов карты. Элементы repr:Template могут присутствовать в YMapsML-документе в любом количестве.
ymaps:GeoObjectCollection
Является контейнером, содержащим в себе описания объектов, помещаемых на карту. С помощью данного элемента можно задавать общие для набора географических объектов свойства, например, стили. Элемент ymaps:GeoObjectCollection может содержать вложенные элементы ymaps:GeoObjectCollection, но в элементе ymaps:ymaps может присутствовать не более одного раза.

В общем виде, YMapsML-документ выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<ymaps:ymaps xmlns:ymaps="https://maps.yandex.ru/ymaps/1.x"
             xmlns:gml="http://www.opengis.net/gml"
             xmlns:repr="https://maps.yandex.ru/representation/1.x"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="https://maps.yandex.ru/schemas/ymaps/1.x/ymaps.xsd">
    <repr:Representation>
         <repr:View>
            <repr:mapType>HYBRID</repr:mapType>
            <gml:boundedBy>
                <gml:Envelope>
                    <gml:lowerCorner>37.63 45.75</gml:lowerCorner>
                    <gml:upperCorner>47.63 55.75</gml:upperCorner>
                </gml:Envelope>
            </gml:boundedBy>
        </repr:View>

        <repr:Style gml:id="customStyle">
            <repr:parentStyle>default#greenPoint</repr:parentStyle>
            <repr:iconStyle>
                <repr:href>https://info.maps.yandex.net/api/i/steelblue/dot.png</repr:href>
                <repr:size x="26" y="46"/>
                <repr:offset x="-22" y="-46"/>
                <repr:shadow>
                    <repr:href>https://info.maps.yandex.net/api/i/dot_shadow.png</repr:href>
                    <repr:size x="25" y="23"/>
                    <repr:offset x="0" y="-25"/>
                </repr:shadow>
            </repr:iconStyle>

            <repr:lineStyle>
                <repr:strokeColor>12345678</repr:strokeColor>
                <repr:strokeWidth>5</repr:strokeWidth>
            </repr:lineStyle>

            <repr:balloonContentStyle>
                <repr:template>#customTemplate</repr:template>
            </repr:balloonContentStyle>
        </repr:Style>

        <repr:Template gml:id="customTemplate">
            <repr:text><![CDATA[<div style="color:green">$[description]</div>]]></repr:text>
        </repr:Template>
    </repr:Representation>
    <Attribution>
        <Source id="novosib">
            <author>
                <name>Поисковая система по товарам и услугам БИС 077</name>
                <uri>http://www.bis077.ru</uri>
            </author>
         </Source>
     </Attribution>
    <ymaps:GeoObjectCollection>
        <ymaps:style>#customStyle</ymaps:style>
        <gml:featureMembers>
            <ymaps:GeoObject>
                <gml:description>Описание</gml:description>
                <gml:Point>
                    <gml:pos>37.63 55.75</gml:pos>
                </gml:Point>
            </ymaps:GeoObject>

            <ymaps:GeoObject>
                <gml:LineString>
                    <gml:pos>70 55</gml:pos>
                    <gml:pos>80 70</gml:pos>
                    <gml:pos>120 30</gml:pos>
                </gml:LineString>
            </ymaps:GeoObject>
        </gml:featureMembers>
    </ymaps:GeoObjectCollection>
</ymaps:ymaps>