пятница, 1 мая 2009 г.

Начинаем изучать язык YMapsML для Яндекс.Карт

Также как у API карт Google (язык – KML) для описания географических данных на картах Яндекса  используется специальный язык YMapsML (Yandex Maps Markup Language).

YMapsML – это XML язык с помощью которого возможно в текстовом виде задать участок карты с нанесенными метками и другими объектами, а затем отобразить его в браузере средствами JS API Яндекс.Карт.

Также он используется сервисом геокодирования для описания найденных по запросу географических объектов.

В качестве геометрических объектов можно использовать метку или линию.

Можно задавать стиль отображения объектов и границы области показа.

Давайте для начала рассмотрим простейший пример файла на языке YMapsML и как вывести его содержимое с использованием API Яндекс.Карт.

Привожу код файла примера:

<?xml version="1.0" encoding="utf-8"?>

<ymaps xmlns="http://maps.yandex.ru/ymaps/1.x" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maps.yandex.ru/schemas/ymaps/1.x/ymaps.xsd">

<GeoObjectCollection>

<gml:name>Объекты карте</gml:name>

<gml:featureMembers>

<GeoObject>

<gml:name>Дворец спорта</gml:name>

<gml:description>Дворец спорта «Нагорный» просп. Гагарина, 29</gml:description>

<gml:Point>

<gml:pos>43.979459 56.291908</gml:pos>

</gml:Point>

</GeoObject>

</gml:featureMembers>

</GeoObjectCollection>

</ymaps>

В этом примере:

В первой строке задается формат файла XML версии 1.0 и его кодировка utf-8.

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

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

Это repr:Repsentation – который содержит в себе правила отображения геообъектов на карте (в нашем примере отсутствует).

И контейнер GeoObjectCollection – содержит в себе описания объектов, помещаемых на карту.

Элемент gml:featureMembers – содержит в себе описание отдельного геообъекта или группы.

В нашем случае это простой элемент метка.

О имеет имя - name Дворец спорта, описание – description Дворец спорта «Нагорный» просп. Гагарина, 29.

Координаты метки задаются следующим кодом:

<gml:Point>

<gml:pos>43.979459 56.291908</gml:pos>

</gml:Point>

Для визуализации данного файла в наш пример вывода Яндекс.Карты (см.первый код в заметке "Добавляем маркер на карту используя API Яндекс.Карт") необходимо добавить несколько строк в функцию init.

var ml = new YMaps.YMapsML( 'http://webmap-blog.ru/examples/YMapsML/prim_YMapsML_1.xml' );

map.addOverlay(ml);

YMaps.Events.observe(ml, ml.Events.Fault, function (error) {

alert('Ошибка: ' + error);

});

В первой строке мы присваиваем переменной ml путь к файлу с нашим примером prim_YMapsML_1.xml.

И затем добавляем его на нашу карту.

Последние три строки служат для контроля ошибок, возникающих при загрузке YMapsML-документа.

Загружаем пример в браузере и наблюдаем результат.

Отображаем файйл YMapsML с использованием API Яндекс.Карт

Посмотреть работающий пример и исходный код можно здесь.

Далее я продолжу описания работы с языком YMapsML

Более подробную информацию Вы можете найти в документации на странице по адресу http://api.yandex.ru/maps/ymapsml/doc/ref/concepts/About.xml

Комментариев нет:

Отправить комментарий