среда, 16 сентября 2009 г.

Начинаем изучать API Яндекс.Карт

С этой заметки я начинаю цикл публикаций по работе с API Яндекс.Карт.

Раздел на сайте Яндекса – http://api.yandex.ru/maps/ с подробным описанием.

Для того чтобы использовать API Яндекс.Карт на своем сайте необходимо получить уникальный ключ.

Для этого Вы должны:

иметь логин и пароль на Яндексе и быть авторизованным;

ознакомиться и принять условия Пользовательского соглашения;

указать URL вашего сайта в регистрационной форме.

Если Вы не были ранее зарегистрированы на Яндексе , то в начале Вам необходимо пройти процедуру регистрации по адресу http://passport.yandex.ru/passport?mode=register

После этого Вы должны выполнить процедуру авторизации на сайте Яндекса (с этого шага следует начить и всем тем, кто уже раннее был зарегистрирован там).

Затем Вы должны посетить страницу по адресу http://api.yandex.ru/maps/form.xml для получения ключа

И если Вы авторизованы то увидите форму для получения ключа.

В первой графе необходимо указать адрес сайта на котором будут исользоваться Яндекс.Карты.

Лучше всего в качестве адреса сайта указывать только его домен (например, mysayt.ru).

Тогда ключ, зарегистрированный на отдельный домен, будет действителен для всех url внутри этого домена и для специальных поддоменов (например для “www”).

Ключ, зарегистрированный на домен http:// mysayt.ru /, будет действителен для:

http:// mysayt.ru /

http://www.mysayt.ru /

http://www.mysayt.ru /page/

http://host1.mysayt.ru /

http://host2.mysayt.ru /page/

Обратите внимание, что ключ, зарегистрированный на домен http://www. mysayt.ru / будет действителен только для домена http://www. mysayt.ru и его разделов (например, http://www. mysayt.ru /page/).

На локальном компьютере с доменом localhost можно использовать любой ключ.

Далее нужно прочитать и согласится с условиями пользовательского соглашения.

Нажать на кнопку Получить API-ключ.

После этого Вы получите с генерированный ключ и простой пример использования сервиса API Яндекс.Карт с Вашим ключом.

Например:

Ключ: AKgqHEkBAAAA-WzMYwIAeAeamm8ETZZZpdfp2R07eIuGyX4AAAAAAAAAAACjUCDoHIHZJ2pcl5mSL1zWVp2Myw==

Пример кода:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”

“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

<html xmlns=”http://www.w3.org/1999/xhtml”>

<head>

<meta http-equiv=”Content-Type” content=”text/html” />

<script src=”http://api-maps.yandex.ru/1.1/?key=

AKgqHEkBAAAA-WzMYwIAeAeamm8ETZZZpdfp2R07eIuGyX4AAAAAAAAAAACjUCDoHIHZJ2pcl5mSL1zWVp2Myw==”

type=”text/javascript”></script>

<script type=”text/javascript” charset=”utf-8″>

var map;

function init () {

map = new YMaps.Map( document.getElementById(”YMapsID”) );

map.setCenter(new YMaps.GeoPoint(44.0,56.32811), 13,

YMaps.MapType.MAP);

};

</script>

</head>


<body onload=”init();”>

<div id=”YMapsID” style=”height:400px; width:600px;”></div>

</body>

</html>

Вы можете использовать данный пример кода для тестирования работы. При необходимости изменить координаты центра карты (44.0,56.32811) и уровень масштаба (13).

Все ранее полученные Вами ключи Вы всегда можете узнать на специальной странице http://api.yandex.ru/maps/keyslist.xml

Для тестирования и выполнения различных упражнений с API Яндекс.Карт на домашнем компьютере Вам будет необходимо установит локальный веб-сервер. Как это проще всего сделать я описал в специальной заметке в разделе База знаний.

воскресенье, 12 июля 2009 г.

Доработка плагина Яндекс.Карт для Joomla – продолжение

В заметках на своем блоге я уже рассказывал Вам о плагине Яндекс.Карт для Joomla – смотрите «Плагин Яндекс.Карт для Joomla» и «Доработка плагина Яндекс.Карт для Joomla».


В двух заметках я продолжу тему, как можно доработать данный плагин.


Мы добавим две новые возможности – это форму поиска по карте и загрузку файлов в формате YMapsML.


Нам для работы будут необходимы два файла – это plugin_yandexmap.xml и plugin_yandexmap.php


Мы их будем продолжать редактировать.


Используя ftp-клиент мы заходим на сервер Вашего сайта в папку, где установлена Joomla.


Находим там папку plugins, а в ней папку content.


В этой папке находиться два файла: plugin_yandexmap.xml и plugin_yandexmap.php.


Добавим сначала строку поиска по карте.


25 июня 2009 года вышла новая версия API Яндекс.Карт 1.1.0


В этой версии появился новый элемент управления, размещаемый на карте, YMaps.SearchControl  – поиск по карте.


Его мы и будим использовать.


Открываем сначала файл plugin_yandexmap.xml в любом текстовом редакторе или Блокноте.


Находим в нем следующие строки:








Здесь прописываются элементы формы для добавления обзорной миникарты в режиме администрирования.







Joomla - Профессиональный сайт за один день
86 видеоуроков, 12 часов 46 минут посвящены лучшей системе для создания сайтов - Joomla!



И перед ними вставляем следующий код:








Он служит для дополнения элементов формы добавления строки поиска в режиме администрирования.


Сохраняем измененный файл.


После этого открываем файл plugin_yandexmap.php.


С начала меняем версию API.


Для этого находим строку



$doc->addScript('http://api-maps.yandex.ru/1.0/index.xml?key='.$my_params['apiKey']);

и изменяе значение версии с 1.0 на 1.1.


В результате



$doc->addScript('http://api-maps.yandex.ru/1.1/index.xml?key='.$my_params['apiKey']);

Находим в нем строки



if (intval($my_params['showMiniMap'])) {
$mmControl = 'var minimapControl = new YMaps.MiniMap();';
$mmControl .= 'map.addControl(minimapControl);';
} else {
$mmControl = '';
}

И передними добавляем следующий код:



if (intval($my_params['showSearchControl'])) {
$searchControl = 'map.addControl(new YMaps.SearchControl(), new YMaps.ControlPosition(YMaps.ControlPosition.BOTTOM_LEFT, new YMaps.Size(5, 20)));';
} else {
$searchControl = '';
}

Еще ищем строку '.$mmControl.' и перед ней добавляем строчку  '.$searchControl.'


Сохраняем измененный файл.


Теперь необходимо зайти на сайт и на странице администрирования в менеджер плагинов и выбираем плагин Content - Yandex Maps.


Открываем его для редактирования.


В правой части окна, среди параметров должен появиться новый YMAP_SHOWSEARCHCONTROL и два переключателя состояния YMAP_YES и YMAP_NO.


Отмечаем состояние YMAP_YES и сохраняем изменения.


Открываем страницу с Яндекс.Картой. На карте должен появиться новый элемент управления YMaps.SearchControl.


Доработка плагина  Яндекс.Карт для Joomla-строка поиска по карте

Скачать измененные файлы: plugin_yandexmap.xml и plugin_yandexmap.php


Посмотреть пример в действии


В следующей заметке мы добавим возможность подгружать на карту файл в формате YMapsML.

среда, 1 июля 2009 г.

Отображение разнородных объектов на Яндекс.Картах

При нанесении различных объектов на Яндекс.Карты возникает потребность разделения их на отдельные группы, например, гостиницы и кафе, кинотеатры и т.д.



Как работать с группами объектов, удалять и добавлять их на Яндекс.Картау показано в двух видеороликах по материалам Я.Субботника в Киеве, прошедшего 25 апреля 2009 года.



Александр Тармолов. Мастер-класс: Отображение разнородных объектов на Яндекс.Картах. Часть 1





Александр Тармолов. Мастер-класс: Отображение разнородных объектов на Яндекс.Картах. Часть 2


воскресенье, 28 июня 2009 г.

Использование Static API Яндекс.Карт

Иногда возникают ситуации когда Вы не можете использовать JavaScript и динамическую загрузку страниц с картой, например, если Ваш сайт предназначен для доступа с мобильных телефонов и коммуникаторов.

Для этих случаев существует возможность размещения статического изображения Яндекс.Карт - Static API Яндекс.Карт.

В ответ на HTTP-запрос, передаваемый посредством URL с параметрами, API возвращает изображение с картой.

В запросе указываются требуемые слои карты, ее центр и область показа, размер карты и уровень масштабирования. Также на карте можно отобразить метки и ломаные линии.

Также как, для использования обычным API Яндекс.Карт, для возможности пользоваться Static API Яндекс.Карт, необходимо получить уникальный API-ключ.

Как уже говорилось, Static API формирует изображение карты в соответствии со значениями параметров, передаваемых сервису в URL следующего формата:

http://static-maps.yandex.ru/1.x/?{параметры URL}

Строка {параметры URL} представляет собой последовательность пар вида {имя параметра}={значение параметра}, разделенных символом амперсанда (&).

Приведу пример запроса изображения карты Нижнего Новгорода с нумерованной меткой:

http://static-maps.yandex.ru/1.x/?ll=44.017152,56.315455&size=450,450&z=15&l=map&pt=44.017152,56.315455,pmwtm1&key=AKgqHEkBAAAA-WzMYwIAeAeamm8ETZZZpdfp2R07eIuGyX4AAAAAAAAAAACjUCDoHIHZJ2pcl5mSL1zWVp2Myw==

Пример использования Static API Яндекс.Карт - изображение карты Нижнего Новгорода с нумерованной меткой

Давайте разберем какие параметры здесь задаются.

Параметр ll – задает долготу и широту центра карты в градусах, в нашем примере ll=44.017152,56.315455

Следующий параметр size – указывает ширину и высоту запрашиваемого изображения карты в пикселях, в примере size=450,450

Максимально допустимый размер изображения карты составляет 600x450 пикселов.

Параметр z – задает уровень масштабирования карты (0-17), в примере z=15

Параметр l – перечень слоев, определяющих тип карты: map (схема),  sat (спутник) и  sat, skl(гибрид). В примере l=map

Параметр pt - содержит описание одной или нескольких меток, которые требуется отобразить на карте.

Описание каждой метки содержит ее координаты (долготу и широту), а также сведения о ее внешнем виде (включая стиль, цвет, размер и текст метки). Описания меток перечисляются через тильду (~).

В нашем примере pt=44.017152,56.315455,pmwtm1

Параметр key – API-ключ Яндекс.Карт

Кроме перечисленных параметров существует еще один – pl, который содержит описание одной или нескольких ломаных, которые требуется отобразить на карте.

Описание ломаной содержит координаты ее вершин (либо перечисленные через запятую, либо представленные в закодированном виде), а также сведения о цвете и толщине линии. Описания ломаных перечисляются через тильду (~).

И парамер spn, который задает протяженность области показа по долготе  и широте в градусах, показываемый во круг центра карты.

Static API подбирает уровень масштабирования таким образом, чтобы заданный участок был виден на изображении целиком.

Приведу пару примеров.

Область показа 0.3х0.3 градуса

http://static-maps.yandex.ru/1.x/?ll=44.017152,56.315455&spn=0.3,0.3&size=450,450&l=map&key=AKgqHEkBAAAA-WzMYwIAeAeamm8ETZZZpdfp2R07eIuGyX4AAAAAAAAAAACjUCDoHIHZJ2pcl5mSL1zWVp2Myw==

Пример использования Static API Яндекс.Карт - Область показа 0.3х0.3 градуса

Область показа 5х5 градусов

http://static-maps.yandex.ru/1.x/?ll=44.017152,56.315455&spn=5,5&size=450,450&l=map&key=AKgqHEkBAAAA-WzMYwIAeAeamm8ETZZZpdfp2R07eIuGyX4AAAAAAAAAAACjUCDoHIHZJ2pcl5mSL1zWVp2Myw==

Пример использования Static API Яндекс.Карт - Область показа 5х5 градусов

Разберем более подробно, как задаются параметры для отображения меток и ломанных.

Параметр pt служит для отображения на изображении карты одну или несколько меток (до 100).

Описание каждой метки записывается по следующей схеме:

{долгота},{широта},{стиль}{цвет}{размер}{текст}

Стиль обозначается pm.

Цвет метки может принимать следующие значения:

wt - белый;

do - темно-оранжевый;

db - темно-синий;

bl - синий;

gn - зеленый;

gr - серый;

lb - светло-синий;

nt - темная ночь;

or - оранжевый;

pn - розовый;

rd - красный;

vv - фиолетовый;

yw - желтый.

Размер: s - маленький; m - средний; l - большой.

В качестве текста может выступать число от 1 до 99.

Если метка содержит недопустимые символы (любые, кроме чисел от 1 до 99), то она не отображается.

Также, если координаты метки выходят за границы заданной области показа, то метка не показывается на карте.

Пример изображения карты с несколькими метками.

http://static-maps.yandex.ru/1.x/?ll=43.979459,56.291908&size=450,450&z=11&l=map&pt=43.944335,56.317977,pmrdm1~43.993976,56.317213,pmrdm2~43.93104,56.286148,pmrdm3~44.073827,56.308056,pmrdm4~43.871158,56.347345,pmrdm5&key=AKgqHEkBAAAA-WzMYwIAeAeamm8ETZZZpdfp2R07eIuGyX4AAAAAAAAAAACjUCDoHIHZJ2pcl5mSL1zWVp2Myw==

Пример использования Static API Яндекс.Карт - изображение карты с несколькими метками

Для отображения ломаных служит параметр pl.

Возможно отобразить одну или несколько ломанных описания которых перечисляются через тильду (~).

Описание ломаной имеет следующий формат:

с:{цвет},w:{толщина},{вершины}

Цвет линии задается в виде шестнадцатиричного числа в формате RGBA (вида  0xFFFFFFFF). Первые 6 символов задают цвет в системе RGB, последующие два - прозрачность линии. Значение прозрачности лежит в диапазоне от 00 (прозрачная) до FF (непрозрачная).

Толщина линии задается в пикселах.

Если цвет и толщина линии не заданы, то используется сиреневая полупрозрачная линия толщиной 5 пикселов ( 8822DDС0).

Координаты вершин ломаной линии могут задаваться двумя различными способами: простым перечислением через запятую  ( Долгота1,Широта2,...,ДолготаN,ШиротаN) или в виде base64-последовательности (требуется кодирование координат вершин).

Static API позволяет одновременно задать не более 5 ломаных, при этом общее количество вершин не должно превышать 100.

Пример формирования запроса на изображение карты с ломаной линией.

В примере цвет линии красный FF0000, полупрозрачная – C0, толщиной w:4 писеля

http://static-maps.yandex.ru/1.x/?l=map&pl=c:FF0000C0,w:4,43.996284,56.329571,43.996143,56.329735,43.996086,56.329918,43.995998,56.330093,43.995888,56.330269,43.995392,56.330330,43.995804,56.330345,43.995522,56.330448,43.995716,56.330593,43.995590,56.330795,43.995449,56.330963,43.994267,56.330708,43.993912,56.330681,43.993576,56.330658,43.993248,56.330585,43.992897,56.330490,43.992626,56.330372,43.992298,56.330292,43.991982,56.330242,43.991653,56.330238,43.991322,56.330242,43.990993,56.330196,43.990688,56.330128,43.990322,56.330082,43.990002,56.330036,43.989723,56.329941,43.989353,56.329819,43.989044,56.329685,43.988747,56.329578,43.988583,56.329407,43.988213,56.329300,43.987789,56.329205,43.987343,56.329136,43.986950,56.329079,43.986588,56.329029,43.986328,56.328899,43.985947,56.328819,43.985538,56.328747,43.985191,56.328667,43.984882,56.328602,43.984604,56.328491,43.984333,56.328381,43.984047,56.328243,43.983761,56.328136,43.983440,56.328045,43.983082,56.327847,43.982815,56.327694,43.982525,56.327583,43.982212,56.327461,43.981937,56.327362,43.981644,56.327236,43.981365,56.327129,43.981094,56.327026,43.980770,56.326893,43.980480,56.326771,43.980251,56.326622,43.980110,56.326443,43.980019,56.326241,43.979836,56.326092,43.979626,56.325954,43.979378,56.325832,43.979130,56.325699,43.978851,56.325588,43.978554,56.325508,43.978218,56.325516,43.977921,56.325619,43.977646,56.325733,43.977375,56.325836,43.977093,56.325951,43.976841,56.326065,43.976604,56.326191&key=AKgqHEkBAAAA-WzMYwIAeAeamm8ETZZZpdfp2R07eIuGyX4AAAAAAAAAAACjUCDoHIHZJ2pcl5mSL1zWVp2Myw==

Пример использования Static API Яндекс.Карт - изображение карты с ломаной линией

В Static API имеется возможность позиционирования карты при помощи меток и ломаных.

Если на изображении карты указана хотя бы одна метка или ломанная, а значения для центра карты (параметр  ll), области показа (параметр  spn) или уровня масштабирования (параметр  z) не указаны, то Static API подберет их значения так, чтобы все метки и ломаные были видны на карте.

В предыдущем примере как раз была использована данная возможность.

Изменим набор параметров примера изображения карты с несколькими метками удалив от туда параметры ll, size и z.

http://static-maps.yandex.ru/1.x/?l=map&pt=43.944335,56.317977,pmrdm1~43.993976,56.317213,pmrdm2~43.93104,56.286148,pmrdm3~44.073827,56.308056,pmrdm4~43.871158,56.347345,pmrdm5&key=AKgqHEkBAAAA-WzMYwIAeAeamm8ETZZZpdfp2R07eIuGyX4AAAAAAAAAAACjUCDoHIHZJ2pcl5mSL1zWVp2Myw==

Пример использования Static API Яндекс.Карт - возможность позиционирования карты при помощи меток

Уберем от туда метки 4 и 5

Получим

http://static-maps.yandex.ru/1.x/?l=map&pt=43.944335,56.317977,pmrdm1~43.993976,56.317213,pmrdm2~43.93104,56.286148,pmrdm3&key=AKgqHEkBAAAA-WzMYwIAeAeamm8ETZZZpdfp2R07eIuGyX4AAAAAAAAAAACjUCDoHIHZJ2pcl5mSL1zWVp2Myw==

Пример использования Static API Яндекс.Карт - возможность позиционирования карты при помощи меток (без меток 4 и 5)

Новая версия API Яндекс.Карт 1.1.0

25 июня 2009 года опубликована новая версия API Яндекс.Карт.


В версии 1.1. доступны новые возможности:



  • построение автомобильных маршрутов (только для Москвы);

  • рисование полигонов;

  • контрол "строка поиска" размещаемый поверх карты;

  • редактирование графических объектов (полилиний и полигонов);

  • использование собственной системы координат;

  • расширена схема наследования стилей;

  • макеты (собственное оформление и поведение иконок, хинтов, балунов).


С полным списком нововведений и исправлений можно ознакомиться по адресу http://api.yandex.ru/maps/jsapi/whatsnew.xml


Версия 1.1. не совместима со старыми версиями (все версии ветки 1.0.). Она отличается от предыдущих не только добавленными возможностями, но и изменениями в структуре классов, объектов и методов.


Все сервисы созданные на API 1.0. будут продолжать работать, никаких изменений производить не требуется.


Ветка версий 1.0. больше не будет развиваться и дополняться, будут лишь устраняться критические ошибки.

понедельник, 22 июня 2009 г.

Плагин Google Maps для Joomla

На страницах данного блога я уже писал о плагине Яндекс.Карт для Joomla, в этой заметке я хочу рассказать вам о плагине Google Maps для Joomla.

С начала я расскажу об основных возможностях плагина и после этого рассмотрю несколько примеров его использования.

Скачать сам плагин можно по адресу: http://joomlacode.org/gf/project/mambot_google1/frs/

Данное расширение представляет собой плагин (мамбот) для отображения одной или нескольких карт Google в содержании страниц, модулей и компонентов системы Joomla верий 1.0.x и 1.5.x.

После стандартной для Joomla процедуры установки нужно активировать данное расширение в менеджере плагинов.

Щелкнув по ссылке с названием данного плагина, откроется окно для установки его параметров .

У него много различных параметров, но для начала его использования нам понадобятся только два - Активировать (Enabled) для активации плагина и Google API key в правой части окна, для ввода ключа к API Google Maps.

Сохраняем сделанные настройки.

Для добавления карты в нашу статью нужно в её текст добавить специальный тег { mosmap}.

При просмотре страницы на сайте в место него будет расположено изображение карты с параметрами по умолчанию (задаются в настройках плагина).

Тег mosmap может содержать в себе параметры отображения карты.

Я перечислю основные из них.

width, height - параметры ширины и высоты окна карты, могут задаваться как в пикселях, так и в процентах;

lat, lon - значение широты и долготы центра карты;

zoom - значение масштабного уровня карты;

zoomNew - когда равно 1 при двойном клике мышью происходит центрирование и масштабирование в данной точке, а при равном 0 только центрирование ( по умолчанию - 0);

zoomType - тип элемента масштабирования (Small - малый или Large - большой, None - отсутствует);

mapType - начальный тип карты (Normal - обычная по умолчанию, Satellite - спутник, Hybrid - гибридное, Terrain -ландшафт );

showMaptype - отображать или нет переключатель типа карты;

overview - показывать или нет обзорную карту (1 - показывать, 0 - нет);

text - текст для маркера в балуне, если хотите чтобы текс не отображался наберите text='', для добавления гиперссылок в текст используйте код следующего формата <a href=linkAddress target=linkTarget title=linkTitle>linkName</a>, не используйте двойные кавычки.

tooltip - использовать Tooltip, когда мышь наводиться на маркер, не используйте html;

marker - открывать или нет информационное окно для маркера на начальном этапе загрузки карты (1- открывать, 0 - нет);

icon - для задания пути (url) к файлу изображения пользовательской иконки;

kml - для задания пути (url) к файлу в формате KML ;

lightbox - для задания ссылки или кнопки , чтобы отображать карту во всплывающем окне.

Чтобы Вам окончательно стало понятно как с данным плагином работать рассмотрим несколько примеров.

Пример 1. Простая карта с маркером.

Для этого в страницу Вы должны добавить следующую строчку:

{mosmap width='500'|height='400'|lat=' 56.3333|lon='44.0'|zoom='10'| zoomType='Large'|zoomNew='1'|mapType='Normal'| showMaptype='1'|overview='0'|text='Нижний Новгород'|lang=''}

Загрузив страницу в браузере, мы увидим следующее

Простая карта с маркером - Google Maps для Joomla

Посмотреть пример в действии можно здесь

Пример 2. Карта со своим значком для иконки и html-текстом в балуне.

Добавим строку вида:

{mosmap width='500'|height='400'|lat='56.315455|lon='44.017152'|zoom='15'| zoomType='Large'|zoomNew='1'|mapType='Normal'| showMaptype='1'|icon='http://webmap-blog.ru/examples/files/theater.png'|iconwidth='30'|iconheight='30'|iconanchorx='-15'|iconanchory='-15'|overview='0'|text='<div style="text-align:center"><strong>Оперный театр им. А. С. Пушкина</strong><br><img src="http://webmap-blog.ru/examples/files/yanmap_z5_2.jpg" width="200" height="138" /><br>ул. Белинского, д. 59</div>'|lang=''}

Загрузив страницу в браузере, мы увидим следующее

Карта со своим значком для иконки и html-текстом в балуне - Google Maps для Joomla

Посмотреть пример в действии можно здесь

Пример 3. Карта с использованием KML-файла.

Для этого добавим строку вида:

{mosmap kml='http://webmap-blog.ru/files/kinoteatrs.kml|'overview='0'}

Загрузив страницу в браузере, мы увидим следующее

Карта с использованием KML-файла - Google Maps для Joomla

Посмотреть пример в действии можно здесь

Пример 4. Карта во всплывающем окне.

Для этого добавим строку вида:

{mosmap lightbox='1'|lbxwidth='600px'|lbxheight='600px'|show='0'|align='none|width='500'|height='400'|lat='56.315455|lon='44.017152'|zoom='15'| zoomType='Large'|zoomNew='1'|mapType='Normal'| showMaptype='1'|icon='http://webmap-blog.ru/examples/files/theater.png'|iconwidth='30'|iconheight='30'|iconanchorx='-15'|iconanchory='-15'|overview='0'|text='<div style="text-align:center"><strong>Оперный театр им. А. С. Пушкина</strong><br><img src="http://webmap-blog.ru/examples/files/yanmap_z5_2.jpg" width="200" height="138" /><br>ул. Белинского, д. 59</div>'|lang=''}

Загрузив страницу в браузере, мы увидим следующее

Карта во всплывающем окне - Google Maps для Joomla

Посмотреть пример в действии можно здесь

Все примеры на одной странице здесь

Более подробную информацию о плагине и примеры его использования можно найти по адресу http://tech.reumer.net/Google-Maps/Demo-Google-Maps/

воскресенье, 7 июня 2009 г.

Плагин Яндекс.Карт для WordPress

В этой заметке я хочу представить вам плагин Яндекс.Карт для WordPress.

Его автором является владелец блога «СВОЙ ЖУРНАЛ» http://www.otrip.ru/.

Он мне понравился больше, чем уже существующий плагин Yandex Maps for WordPress и я решил о нем рассказать Вам.

Работа плагина чрезвычайно проста.

После его установки и активации в меню настройки административной панели управления блогом WordPress нужно выбрать пункт Yandex Map (XML).






Узнайте, как шаг за шагом создать качественный блог на движке Wordpress.
109 Видеоуроков По Всем Техническим Вопросам Создания и Ведения Своего Блога На Движке Wordpress




На открывшейся странице ввести API-KEY для Вашего сайта и предварительные настройки отображения карты: ширина и высота отображаемой карты, координаты центра карты и уровень масштаба.

Сохранить введенную информацию нажав кнопку Save.

После этого Вы можете добавлять Яндекс .Карты на страницы своего блога.

Приведу несколько примеров использования.




[yamap: 44.002593755722,56.3282688291559, 16]



– данная строка создаст карту с центром в указанных координатах и уровнем масштаба 16.




[yamap: http://webmap-blog.ru/examples/YMapsML/gpx-trek.xml]



– данная строка создаст карту со стандартными настройками и затем подгрузить подгрузит указанный XML файл (формат YMapsML).

В одной из заметок я приводил Вам пример файла в формате YMapsML – кинотеатры Нижнего Новгорода (его адрес: http://webmap-blog.ru/examples/YMapsML/prim_YMapsML_2.xml).

Вот как его можно отобразить с помощью данного плагина.

[yamap: http://webmap-blog.ru/examples/YMapsML/prim_YMapsML_2.xml]

Загрузить данный плагин можно по адресу: http://www.otrip.ru/uploads/2009/05/otrip-yamap.zip

понедельник, 1 июня 2009 г.

Создание собственных карт с использованием API Google Maps

В этой заметке я рассмотрю вопрос о том, как добавить собственную карту на Google Maps.

Это можно сделать несколькими способами.

Первый способ, размещение дополнительного изображения в виде наложения на карту Google Maps.

Для этого в API карт Google существует объект GGroundOverlay.

В котором в качестве парамтров конструктора используются URL-адрес и объект GLatLngBounds изображения.

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

Посмотрим реализацию данного способа на примере.

Добавим на карту Google фотографию церкви Рождества Христова в городе Балахне Нижегородской области, так, чтобы левый нижний угол совпадал по координатам с центром изображения на спутниковым снимке.

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

В коде нужно обратить Ваше внимание на две строчки:

var boundaries = new GLatLngBounds(new GLatLng(56.489907,43.606367), new GLatLng(59.962385,48.418379));

var oldmap = new GGroundOverlay("http://webmap-blog.ru/files/439px-Bal_Cerkov_Rojdestva_Hristova.jpg", boundaries);

В первой мы задаем координаты левого нижнего и правого верхнего угла изображения, а во второй его URL-адрес.

Мы можем накладывать на карту фрагменты изображений.

Для этого используется класс GTileLayerOverlay.

GTileLayerOverlay дополняет карту с помощью GTileLayer. Он использует интерфейс GOverlay и таким образом добавляется в карту с помощью метода GMap2.addOverlay().

GTileLayer располагается поверх существующей карты.

Но прежде необходимо создать объект GCopyrightCollection и прикрепить  его к слою карты; так объект получает право на использование изображения (или изображений).

С процессом наложения фрагментов изображения я подробно опишу как-нибудь в следущий раз.

А сейчас мы приступим к созданию собственной карты с использованием пользовательского типа карты.

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

Разберем  с Вами как устроены карты Google , это нам поможет предварительно подготовить нашу карту.

В Google Maps Земля представлена в проекции Меркатора .

Она представляет собой развёрнутый на плоскость цилиндр, что даёт нам прямоугольник, который разбивается на маленькие квадратики (tiles) с размерами 256×256 пикселей.

Пример одного из элементов карты Google: http://mt3.google.com/mt/v=ap.95&hl=ru&x=20389&s=&y=10149&z=15&s=Gali

Пример элемента карты Google Maps

Из адреса рисунка можно видеть следующие три значения:

x=20389, y=10149 и z=15

Здесь х – номер элемента карты по горизонтали, числа растут слева направо (с запада на восток),

Y – номер элемента карты по вертикали, числа увеличиваются с верху вниз (с севера на юг),

Z – уровень масштаба.

Из этого следует, что нам необходимо разбить изображение нашей карты на кусочки вида ties_20389_10149_15.jpg, каждый размером 256×256 пикселей. А чтобы можно было изменять масштаб изображения, подготовить изображения нескольких масштабных уровней.

Каждый масштабный уровень содержит в 4 раза большее количество элементов, чем предыдущий.

Например, нулевой уровень – 1 элемент, следующий – 4, второй уровень – 16 и т.д.

Еще нам нужно узнать три тех самых числа, которые дают нам местоположение нужного фрагмента карты.

Самый простой вариант загрузить нужный нам участок карты и посмотреть информацию о полученных изображениях (в FireFox: Инструменты->Информация о странице - > Мультимедиа).

Теперь нам необходимо разрезать наше изображение.

Сделать это можно разными способами:

  1. Использовать онлайн-сервис Gmap Uploader http://gmapuploader.com/


На главной странице сервиса нужно ввести Ваш адрес электронной почты, выбрать файл для загрузки в формате jpg, png или gif и нажать на кнопку Send для начала загрузки файла.

Через некоторое время (продолжительность зависит от размера загружаемого изображения) появиться страница с загруженным изображением в интерфейсе Google Maps.

И три ссылки внизу изображения.

Для моего примера они имеют следующий вид:

Link: http://gmapuploader.com/view/HG6r3eySJq

Full Screen: http://gmapuploader.com/iframe/HG6r3eySJq

Deep Zoom URL: http://dz.gmapuploader.com/HG6r3eySJq.xml

Первая ссылка – адрес данной страницы, вторая на изображение карты во весь экран и третья на xml-файл с описание максимального уровня масштабирования.

В моем случае содержимое данного файла:

<Image TileSize="256" Overlap="0" Format="jpg"><Size Width="4096" Height="4096" />

</Image>



Своя карта на Google Maps с использованием сервиса Gmap Uploader

Это конечно хорошо, но хотелась бы, чтобы изображение элементов карты лежали на нашем сервере.

Для этого их необходимо загрузить на Ваш компьютер.

Сделать это можно по разному.

Приведу два способа.

Первый используя браузер FireFox выбрав последовательно Инструменты->Информация о странице - > Мультимедиа  выделить файлы с изображением и сохранить их.

Проделать тоже самое для всех масштабных уровней.

Используя менеджер закачки файлов, например ReGet, создать очередь загрузки файлов  в текстовом файле и импортировав его загрузить все элементы.

Текстовый файл для нашего примера:

http://mt0.gmapuploader.com/tiles/HG6r3eySJq/tile-1-0.jpghttp://mt0.gmapuploader.com/tiles/HG6r3eySJq/tile-1-1.jpg

http://mt0.gmapuploader.com/tiles/HG6r3eySJq/tile-1-2.jpg

http://mt0.gmapuploader.com/tiles/HG6r3eySJq/tile-1-3.jpg

http://mt0.gmapuploader.com/tiles/HG6r3eySJq/tile-2-0.jpg

http://mt0.gmapuploader.com/tiles/HG6r3eySJq/tile-2-1.jpg

http://mt0.gmapuploader.com/tiles/HG6r3eySJq/tile-2-2.jpg

http://mt0.gmapuploader.com/tiles/HG6r3eySJq/tile-2-3.jpg

http://mt0.gmapuploader.com/tiles/HG6r3eySJq/tile-2-4.jpg

http://mt0.gmapuploader.com/tiles/HG6r3eySJq/tile-2-5.jpg

http://mt0.gmapuploader.com/tiles/HG6r3eySJq/tile-2-6.jpg

http://mt0.gmapuploader.com/tiles/HG6r3eySJq/tile-2-7.jpg

http://mt0.gmapuploader.com/tiles/HG6r3eySJq/tile-2-8.jpg

http://mt0.gmapuploader.com/tiles/HG6r3eySJq/tile-2-9.jpg

http://mt0.gmapuploader.com/tiles/HG6r3eySJq/tile-2-10.jpg

http://mt0.gmapuploader.com/tiles/HG6r3eySJq/tile-2-11.jpg

http://mt0.gmapuploader.com/tiles/HG6r3eySJq/tile-2-12.jpg

http://mt0.gmapuploader.com/tiles/HG6r3eySJq/tile-2-13.jpg

http://mt0.gmapuploader.com/tiles/HG6r3eySJq/tile-2-14.jpg

http://mt0.gmapuploader.com/tiles/HG6r3eySJq/tile-2-15.jpg



http://mt2.gmapuploader.com/tiles/HG6r3eySJq/tile-4-220.jpg

http://mt2.gmapuploader.com/tiles/HG6r3eySJq/tile-4-221.jpg

http://mt2.gmapuploader.com/tiles/HG6r3eySJq/tile-4-222.jpg

http://mt2.gmapuploader.com/tiles/HG6r3eySJq/tile-4-223.jpg

http://mt2.gmapuploader.com/tiles/HG6r3eySJq/tile-4-224.jpg



После этого все закаченные файлы мы помещаем в какую-нибудь папку на сервере (например, files/bal_map/) и пишем следующий код для вывода карты:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>Своя карта на Google Maps c использованием Gmap Uploader</title>

<style type="text/css" media="screen">

<!--

html,body{

height: 100%;

margin: 0;

}

div#map{

height: 100%;

margin: 0;

}

-->

</style>

<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAACHCJdlgAEGcD_flKUFEmVhT2yXp_ZAY8_ufC3CFXhHIE1NvwkxTeukKcKHF3ezmjTB0q6gzSBmoIUQ"

type="text/javascript"></script>

<script src="http://gmapuploader.com/js/gmapuploader.8.js" type="text/javascript"></script>

</head>

<body onunload="GUnload()">

<div id="map"></div>

<script type="text/javascript">

//<![CDATA[

var map = new GMap2(document.getElementById("map"));

document.getElementById('map').style.backgroundColor = 'white';

var mapType = new GmapUploaderMapType(map, "http://webmap-blog.ru/examples/files/bal_map/", "jpg", 5);

map.setCenter(new GLatLng(0,0), 1, mapType);

map.addControl(new GLargeMapControl());

map.enableContinuousZoom();

//]]>

</script>

</body>

</html>



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

Своя карта на Google Maps c использованием Gmap Uploader

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

Здесь необходимо обратить внимание на следующие строчки:

<script src="http://gmapuploader.com/js/gmapuploader.8.js" type="text/javascript"></script> - для вывода карты используется специальный скрипт сервиса Gmap Uploader.

Строка var mapType = new GmapUploaderMapType(map, "http://webmap-blog.ru/examples/files/bal_map/", "jpg", 5); - в ней указывается источник файлов с изображением, расширение файла и максимальный уровень масштаба 5.

Другие способы добавления собственной карты на Google Maps я рассмотрю последовательно в нескольких заметках.

Продолжение следует …

воскресенье, 24 мая 2009 г.

Создание собственной карты с использованием API Яндекс.Карт

Многие интересуются как можно использовать API Яндекс.Карт для создания собственной карты?

В нескольких заметках на своем блоге я подробно рассмотрю данный вопрос.

Для создания собственной карты существует специальный класс YMaps.MapLayer, который предназначен для создания пользовательского слоя с картой.

В нем указывается источник данных для слоя карты с помощью класса YMaps.TileDataSource.

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

tileUrlTemplate - шаблон, по которому строится url тайла;

isTransparent - загружаемые тайлы прозрачны;

isPng - загружаемые изображения тайлов имеют png формат.

И так, в начале, необходимо подготовить данные для создания собственного слоя карты.

В качестве источника нужно использовать растровое изображение представленное в нескольких масштабах, каждое из которых разрезано на кусочки размером 256 на 256 пикселей.

Файлы с кусочками изображений необходимо переименовать соответствующим образом , например так tile-zum-num.jpg

Здесь zum – уровень масштаба, num – номер тайтла по порядку.

Покажу как можно встроить свое изображение в интерфейс управления Яндекс.Карт на конкретном примере.

В качестве изображения я использую фотографию автомобиля Porsche Cayenne размером 1600х1200 пикселей.

Для создания набора тайтлов воспользуемся бесплатным сервисом Gmap Uploader расположенном по адресу http://gmapuploader.com

Пользоваться данным сервисом очень легко.

На главной странице сервиса нужно ввести Ваш адрес электронной почты, выбрать файл для загрузки в формате jpg, png или gif и нажать на кнопку Send для начала загрузки файла.

Через некоторое время (продолжительность зависит от размера загружаемого изображения) появиться страница с загруженным изображением в интерфейсе Google Maps.

И три ссылки внизу изображения.

Для моего примера они имеют следующий вид:

Link: http://gmapuploader.com/view/bsnYw5ReKw

Full Screen: http://gmapuploader.com/iframe/bsnYw5ReKw

Deep Zoom URL: http://dz.gmapuploader.com/bsnYw5ReKw.xml

Первая ссылка – адрес данной страницы, вторая на изображение карты во весь экран и третья на xml-файл с описание максимального уровня масштабирования.

В моем случае содержимое данного файла:

<Image TileSize="256" Overlap="0" Format="jpg"><Size Width="2048" Height="2048" />

</Image>



Для использования созданный тайтлов нам необходимо узнать адрес папки, где они хранятся.

Сделать это просто, нужно посмотреть свойства одного из фрагментов полученного изображения (Свойства рисунка) , например в моем случае http://mt2.gmapuploader.com/tiles/bsnYw5ReKw/tile-3-26.jpg

Нам сразу ясно что все файлы хранятся в папке по адресу http://mt2.gmapuploader.com/tiles/bsnYw5ReKw/

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

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

<html xmlns="http://www.w3.org/1999/xhtml"><head>

<title>Примеры YMapsML. Своя карта с использованием сервиса Gmap Uploader.</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script src="http://api-maps.yandex.ru/1.0/index.xml?key=AIW0o0kBAAAAkwyUMwMAEkDz8ddCkU0UnlyLEu4ddFBXhQQAAAAAAAAAAAA1Md4ULCo5QbciEo5T26eV1lhuEQ==" type="text/javascript"></script>

<script type="text/javascript">

var map;

function init () {

map = new YMaps.Map(document.getElementById("YMapsID"));

map.setCenter(new YMaps.GeoPoint(0,0),1);

map.enableScrollZoom();

map.addControl(new YMaps.SmallZoom());

var myData = new YMaps.TileDataSource("http://mt0.gmapuploader.com/tiles/bsnYw5ReKw/", false, false);

myData.getTileUrl = function (tile, zoom) {

return this.getTileUrlTemplate() + "tile-" + zoom + "-" + (tile.y * Math.pow(2, zoom) + tile.x) + ".jpg";

}

map.addCopyright('Угольников Сергей');

map.setType(new YMaps.MapType([new YMaps.MapLayer(myData)], 'Пример карты', {minZoom:1, maxZoom:3}));

}

</script>

</head>

<body onload="init();">

<div id="YMapsID" style="height:100%; width:100%;"></div>

</body>

</html>



Поясню, на что здесь следует обратить внимание.

Строкой map.setCenter(new YMaps.GeoPoint(0,0),1); задается центр карты на первом уровне масштаба.

Строка var myData = new YMaps.TileDataSource("http://mt0.gmapuploader.com/tiles/bsnYw5ReKw/", false, false); - служит для задания источника тайтлов и значения параметров isTransparent = false - загружаемые тайлы не прозрачны, isPng= false - загружаемые изображения тайлов не имеют формат png.

В строке myData.getTileUrl = function (tile, zoom) {return this.getTileUrlTemplate() + "tile-" + zoom + "-" + (tile.y * Math.pow(2, zoom) + tile.x) + ".jpg";

}



Мы задаем правила для формирования имени файла для конкретного тайтла на соответствующем уровне масштаба.

Строкой  map.addCopyright('Угольников Сергей'); добавляем копирайт на нашу карту.

И строка map.setType(new YMaps.MapType([new YMaps.MapLayer(myData)], 'Пример карты', {minZoom:1, maxZoom:3})); служит для указания нового типа карты с названием Пример карты, тамже мы вводим ограничение на изменение уровня масштаба от 1 до 3.

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

Своя карта с использованием сервиса Gmap Uploader

Посмотреть пример в действии можно здесь.

понедельник, 18 мая 2009 г.

Онлайн сервис для конвертирования gpx-треков в YMapsML

Если у Вас имеется GPS-навигатор, то возможно сохранять путевые треки в формате GPX.

GPX (GPS eXchange Format) — это текстовый формат хранения и обмена данными GPS, являющийся подмножеством XML.

Формат позволяет хранить информацию об ориентирах (waypoints), маршрутах (routes) и треках (tracklogs). Для каждой точки хранятся её долгота, широта и высота над уровнем моря (если имеется информация о высоте). Для точек трека хранится также время прохождения точки. XML-схема предусматривает также хранение произвольной пользовательской информации по каждой точке.

Я хочу познакомить Вас с одним онлайн сервисом для конвертирования  gpx-треков в YMapsML и отображения на Яндекс.Картах.

Сервис расположен по адресу http://map.z66.ru/gpx2ymaps/

Использовать его очень просто.

Вы выбираете gpx-файл на своем компьютере для его загрузки (максимальный размер файла 300 кб).

Нажимаете на кнопку загрузить.

После этого отображается Яндекс.Карта с загруженным треком.

Яндекс.Карта с загруженным треком gpx

Дополнительные возможности сервиса: вы можете получить ссылку на страницу Яндекс.Карта с загруженным треком для последующего использования (разместить ссылку в своем блоге или послать по e-mail), сохранить исходный gpx-трек, сохранить сформированный YMapsML-файл для работы с ним.

Ссылка на пример http://map.z66.ru/gpx2ymaps/view/d816d1634d0e88db3ef155c58fcaf607

Загрузить сформированный YMapsML-файл здесь

понедельник, 11 мая 2009 г.

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

В предыдущей заметке «Начинаем изучать язык YMapsML для Яндекс.Карт» мы начали с Вами изучать язык YMapsML для описания географических данных на картах Яндекса.

В этой заметке мы продолжим его изучение.

Узнаем, как описываются несколько объектов в одном файле, о использовании стилей и задания начальных параметров карты.

Давайте рассмотрим это на конкретном примере файла в формате  YMapsML (загрузить полный код файла).

Часть кода файла prim_YMapsML_2.xml

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

<ymaps xmlns="http://maps.yandex.ru/ymaps/1.x" xmlns:gml="http://www.opengis.net/gml">



<Representation xmlns="http://maps.yandex.ru/representation/1.x">

<View>

<mapType>MAP</mapType>

<gml:boundedBy>

<gml:Envelope>

<gml:upperCorner>44.121546 56.372383</gml:upperCorner>

<gml:lowerCorner>43.799509 56.231518</gml:lowerCorner>

</gml:Envelope>

</gml:boundedBy>

</View>

<Style gml:id="styleCinimaNN">

<iconStyle>

<href>http://www.map.cek.ru/images/stories/kinoteatrs.jpg</href>

<size x="20" y="20"></size>

<offset x="-10" y="-10"></offset>

</iconStyle>

<balloonContentStyle>

<template>#balloonTemplate</template>

</balloonContentStyle>

</Style>

<Template gml:id="balloonTemplate">

<text>

<![CDATA[<div style="text-align:center"><strong>$[name]</strong><br /><img src="http:$[metaDataProperty.AnyMetaData.link]" alt="" width="100" height="62"/><br />$[description]</div>]]>

</text>

</Template>

</Representation>

<GeoObjectCollection>

<gml:name>Кинотеатры Нижнего Новгорода</gml:name>

<style>#styleCinimaNN</style>

<gml:featureMembers>

<GeoObject>

<gml:name>Кинотеатр Импульс</gml:name>

<gml:description>пр. Гагарина, 192</gml:description>

<gml:metaDataProperty>

<AnyMetaData>

<link>//www.map.cek.ru/images/stories/afisha/cinema/imp.jpg</link>

</AnyMetaData>

</gml:metaDataProperty>

<gml:Point>

<gml:pos>43.959184 56.237457</gml:pos>

</gml:Point>

</GeoObject><GeoObject>

<gml:name>Кинотеатр Канавинскийсий</gml:name>

<gml:description>ул. Фильченкова, 7</gml:description>

<gml:metaDataProperty>

<AnyMetaData>

<link>//www.map.cek.ru/images/stories/afisha/cinema/kanaviskiy.jpg</link>

</AnyMetaData>

</gml:metaDataProperty>

<gml:Point>

<gml:pos>43.944335 56.317977</gml:pos>

</gml:Point>

</GeoObject>



<GeoObject>

<gml:name>Кинотеатр Электрон</gml:name>

<gml:description>пр. Гагарина, 98</gml:description>

<gml:metaDataProperty>

<AnyMetaData>

<link>//www.map.cek.ru/images/stories/afisha/cinema/elektron.jpg</link>

</AnyMetaData>

</gml:metaDataProperty>

<gml:Point>

<gml:pos>43.978839 56.274389</gml:pos>

</gml:Point>

</GeoObject>

</gml:featureMembers>

</GeoObjectCollection>



</ymaps>

Если отобразить содержимое этого файла на Яндекс.Карте, мы увидим следующее

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

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

И так что же здесь интересного.

Первые две строки нам уже известны.

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

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

Элемент ymaps:ymaps содержит внутри себя два контейнера repr:Repsentation и GeoObjectCollection.

Первый  repr:Repsentation содержит в себе правила отображения геообъектов на карте – это элементы View (задает область показа геообъектов) и Style (содержит описание внешнего вида объектов), элемент Template – содержит шаблон для представления html-объектов карты.

Второй  GeoObjectCollection  служит для описания набора геообъектов.

Рассмотрим подробнее назначение и параметры каждого из элементов кода.

Элемент View включает в себя следующие теги:

mapType – задает тип карты, в нашем случае MAP обычная карта.

gml:boundedBy – задет границы области показа на карте, в нашем случае задается прямоугольная область с координатами нижнего левого угла gml:lowerCorner - 43.799509 56.231518 и правого верхнего угла gml:upperCorner - 44.121546 56.372383.

После этого задается стиль для отображения меток кинотеатров iconStyle и для содержимого балуна balloonContentStyle.

В контейнере Template задается шаблон для html-содержания балуна.

Далее в контейнере GeoObjectCollection описывается набор точек.

Задается его наименование gml:name и общий стиль для всех styleCinimaNN.

Каждая точка задается конкретными параметрами:

  • Наименование кинотеатра – name,

  • Описание – description,

  • Ссылка на картинку внутри балуна – link

  • Координаты точки – Point


Продолжение следует …

четверг, 7 мая 2009 г.

Формат файлов KML и его использование на картах Google. Продолжение

В этой заметке мы продолжаем изучать формат файлов KML начатый в заметке «Формат файлов KML и его использование на картах Google. Введение».

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

Давайте рассмотрим это на конкретном примере.

Привожу часть кода  KML-файла:

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

<kml xmlns="http://www.opengis.net/kml/2.2">

<Document>

<name>Кинотеатры Нижнего Новгорода</name>

<description>Местоположение кинотеатров Нижнего Новгорода на GoogleMaps</description>

<Style id="kino_st">

<IconStyle>

<scale>1.2</scale>

<Icon>

<href>http://maps.google.com/mapfiles/kml/pal2/icon30.png</href>

</Icon>

<hotSpot x="0.5" y="0" xunits="fraction" yunits="fraction"/>

</IconStyle>

<BalloonStyle>

<text>$[description]</text>

</BalloonStyle>

</Style>

<Placemark>

<name>Кинотеатр Импульс</name>

<description>

<![CDATA[

<div style="text-align:center"><strong>Кинотеатр Импульс</strong><br /><a href="http://www.map.cek.ru/index.php?option=com_content&view=article&id=25&Itemid=136" target="blank"><img src="http://www.map.cek.ru/images/stories/afisha/cinema/imp.jpg" alt="Информация о кинотеатре Импульс с афишой фильмов" title="Информация о кинотеатре Импульс с афишой фильмов" width="100" height="62" /></a><br />пр. Гагарина, 192</div>

]]>

</description>

<styleUrl>#kino_st</styleUrl>

<Point>

<altitudeMode>relativeToGround</altitudeMode>

<coordinates>43.959184,56.237457,0</coordinates>

</Point>

</Placemark>

…..

<Placemark>

<name>Кинотеатр Электрон</name>

<description>

<![CDATA[

<div style="text-align:center"><strong>Кинотеатр Электрон</strong><br /><a href="http://www.map.cek.ru/index.php?option=com_content&view=article&id=31&Itemid=146" target="blank"><img src="http://www.map.cek.ru/images/stories/afisha/cinema/elektron.jpg" alt="Информация о кинотеатре Электрон с афишой фильмов" title="Информация о кинотеатре Электрон с афишой фильмов" width="100" height="62" /></a><br />пр. Гагарина, 98</div>

]]>

</description>

<styleUrl>#kino_st</styleUrl>

<Point>

<altitudeMode>relativeToGround</altitudeMode>

<coordinates>43.978839,56.274389,0</coordinates>

</Point>

</Placemark>

</Document>

</kml>

Полный текст файла можно загрузить http://webmap-blog.ru/examples/kml/primer_kml_2.km.

Что же мы видим нового в этом примере?

Здесь появился новый тег <Document>.

Внутрь него помещается все содержимое kml-файла.

Затем мы указываем имя и описание создаваемого документа.

В файле kml возможно задание стилей для отображения элементов на карте.

Если мы определяем стиль в начале документа, тогда мы можем использовать его для последующих элементов.

В нашем примере мы определяем стиль с идентификатором  kino_st.

Внутри него мы задаем стиль для значка метки  IconStyle и для балуна BalloonStyle.

Параметр scale задает масштаб значка метки.

<Icon>  <href> - указывают на файл с изображением значка, в нашем случае icon30.png.

Параметр hotspot задает отступы от координат точки метки для изображнеия по х и по y.

Для стиля балуна мы указаваем, что это будет текст параметра description.

После задания стиля идет список меток на карте с параметрами.

В нашем примере это перечень кинотеатров Нижнего Новгорода.

Каждая метка заключена в парный тег <Placemark>.

Для которой задается название name, описание description, которое будет появлятся в балуне при щелчке по метке.

Стиль отображения и координаты точки.

Для написания HTML-кода внутри тега <description> его помещают внутрь тега CDATA.

Тег <altitudeMode> служит для задания наземного режима отображения.

В Google Earth 5.0 появилась возможность работы с новыми режимами – Окен и Космическое пространство.

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

Подробнее о формате KML можно узнать по адресу http://code.google.com/intl/ru_ALL/apis/kml/documentation/

Продолжение следует …

пятница, 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

вторник, 28 апреля 2009 г.

Формат файлов KML и его использование на картах Google. Введение.

KML (Keyhole Markup Language — язык разметки Keyhole) - это формат файлов, который используется отображения географических данных в программах Google Планета Земля, Карты Google и Карты Google для мобильных устройств.

KML использует основанную на тегах структуру с вложенными элементами и атрибутами и создан на основе стандарта XML.

Для создания файлов KML можно использовать программу Google Планета Земля (Google Earth), редактор XML или обычный текстовый редактор.

Файлы KML и связанные с ними изображения (при наличии) можно сжимать с помощью формата ZIP в архивы KMZ.

С помощью файлов KML можно:

  • устанавливать различные значки и делать подписи для обозначения мест на поверхности Земли,

  • создавать различные ракурсы для выбранных объектов, изменяя положение камеры,

  • использовать различные накладываемые изображения,

  • определять стили для настройки отображения объекта, применять код HTML для создания гиперссылок и встроенных изображений,

  • использовать папки для иерархической группировки элементов,

  • динамически получать и обновлять файлы KML из удаленных или локальных узлов сети,

  • получать данные KML в соответствии с изменениями в средстве трехмерного просмотра,

  • отображать текстурные трехмерные объекты COLLADA


В качестве объектов в файлах формата  KML могут быть использованы:

Метки (объект Placemark) – самый простой элемент, задает метку – обозначение положения на поверхности Земли с помощью значка в виде желтой кнопки.

Пути – линии определенной толщины и цвета

Многоугольники - определяется цвет линий и цвет подписи.

Изображения - накладываемые изображения поверхности Земли позволяют накладывать изображение на ландшафт Земли, могут быть перемещаемыми и масштабируемыми, так и не перемещаемыми, например, логотип.

Трёхмерная модель - позволяет подключать описание трёхмерных объектов (например, зданий и сооружений). Трёхмерную модель можно задать двумя способами: заданием высоты плоских фигур (вытягиванием) и ссылкой на полноценную модель в формате COLLADA (Google SketchUp).

Простейший пример файла KML.

<?xml version="1.0" standalone="yes"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Placemark>
<name>Дворец спорта</name>
<description>Дворец спорта «Нагорный» просп. Гагарина, 29</description>
<Point>
<coordinates>43.979459,56.291908,0 </coordinates>
</Point>
</Placemark>
</kml>


Опишу структуру этого файла.

Первая строка - заголовок XML. Это 1-я строка в каждом файле KML. Перед этой строкой не должно быть пробелов или символов.

Вторая строка – служит для объявления пространства имен KML. Это 2-я строка в каждом файле KML 2.1.

Объект Placemark, содержащий следующие элементы:

- name, ярлык, используемый для обозначения метки

- description, описание, появляющееся в окне комментария, прикрепленном к метке

- Point, указывает положение метки на поверхности Земли (долгота, широта и дополнительно высота).

Этот файл Вы можете загрузить в программе Google Планета Земля (Google Earth) выбрав в меню Файл – Открыть.

KML-файл в Google Earth

Его также можно загрузить использую API карт Google.

Код примера:

<!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="content-type" content="text/html; charset=utf-8"/>

<title>Пример использования Google Earth на сайте</title>

<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAACHCJdlgAEGcD_flKUFEmVhT2yXp_ZAY8_ufC3CFXhHIE1NvwkxTeukKcKHF3ezmjTB0q6gzSBmoIUQ"

type="text/javascript"></script>

<script type="text/javascript">



function initialize() {if (GBrowserIsCompatible()) {geoXml = new GGeoXml("http://remont.cek.ru/xml/prim_kml_1.kml");

var map = new GMap2(document.getElementById("map_canvas"));

map.setCenter(new GLatLng(56.291908,43.979459), 15);

map.setMapType(G_SATELLITE_MAP);

map.addControl(new GSmallMapControl());

map.addControl(new GMapTypeControl());

map.addOverlay(geoXml);

}

}



</script></head>

<body onload="initialize()" onunload="GUnload()">

<div id="map_canvas" style="width: 500px; height: 300px"></div>

</body>

</html>



Если загрузить его в браузере мы увидим

KML-файл загрузка с помощью API карт Google

Вы также можете просмотреть файл KML на Картах Google.

Предварительно необходимо чтобы Ваш файл KML должен быть размещен на веб-сайте в Интернете.

С начала нужно зайти по адресу http://maps.google.ru/

Затем в строке поиска ввести адрес Вашего KML-файла в интернете, например, http://webmap-blog.ru/examples/kml/prim_kml_1.kml и нажать на кнопку «Поиск на карте».

Ваш KML-файл отобразиться на карте Google.

KML-файл загрузка на Картах Google

Продолжение следует...

суббота, 25 апреля 2009 г.

Обзор программы Google Earth (Планета Земля)

В июне 2005 года через несколько месяцев после появления Google Maps Google представила программу Google Earth

Google Earth -  программа-«виртуальный глобус» компании Google, с помощью которой можно просматривать трехмерную модель Земли, аэро- и космоснимки высокого разрешения и различные слои данных.

Русская версия Google Earth имеет название Google Планета Земля.

Google Earth интерфейс программы

Программа изначально была выпущена компанией Keyhole Inc. и называлась Earth Viewer, а в 2004 году была продана компании Google.

Для визуализации изображения используется трёхмерная модель всего земного шара (с учётом высоты над уровнем моря), которая отображается на экране при помощи интерфейсов DirectX или OpenGL. Пользователь может легко перемещаться в любую точку планеты, управляя положением «виртуальной камеры».

Официальный сайт программы http://earth.google.com

Существуют различные версии программы:

Google Планета Земля - бесплатная версия

Google Планета Земля Про (цена = 400$ в год) - возможность сохранения снимков в графический файл с более высоким разрешением.

Лицензия для коммерческого использования.

Google Планета Земля - решения для предприятий

Бесплатная и расширенные версии используют одну базу геоданных (снимки и дополнительные слои).

Основные возможности бесплатной версии Google Earth.

- Измерение расстояния пути

- Распечатка и сохранение снимков

- Открытие в браузере Google Maps

- Функции поиска мест и маршрутов, быстрый переход по координатам

- Обзор мест (меток) - автоматический перелёт

- Имеется большое количество дополнительных данных, которые можно подключить по желанию пользователя. Например, названия населённых пунктов, водоёмов, аэропортов, дороги, ж/д, и др. информация. Кроме этого, для крупных городов имеется более подробная информация — названия улиц, магазины, заправки, гостиницы, и т. д.

- Пользователи могут создавать свои метки, рисовать пути и многоугольники, накладывать свои изображения поверх спутниковых (это могут быть карты, или более детальные снимки, полученные из других источников, а также 3D модели!). Эти метки можно сохранять в файлы KML и обмениваться с другими пользователями программы

- Переход по фотографиям - некоторые фотографии с высоким разрешением поддерживают возможность перемещения по ним

- Добавление фотографий

- Настройки средства 3D просмотра

- Использование горячих клавиш

- В программу встроен авиасимулятор (для его запуска нажмите Ctrl + Alt + A).

- В версии 4.2 появился режим Google Sky, позволяющий рассматривать звёздное небо.

- При наведении мыши на местность Google Планета Земля показывает приблизительную дату съёмки изображений внизу окна трехмерного просмотра

- Отображение Солнца и солнечных лучей

- Установка начального местоположения - можно установить отправную точку (по умолчанию), которая будет появляться при каждом запуске программы Google Планета Земля.

- Использование просмотра улиц Google Street View - просмотр 360VR панорамных снимков

В феврале 2009 года компания Google выпустила 5-ую версию программы Google Earth, в которой появились следующие возможности:

- Режим «Исторические снимки» - появилась возможность переключать версии снимков, т.е. перемещаться во времени.

- Добавлена 3D модель планеты Марс. Спутниковые снимки отдельных районов Марса выполнены в высоком разрешении.

- Появилась возможность перемещаться под водой. Поверхность дна мирового океана представляет собой 3D текстурированную модель.

- Инструмент записи туров. C помощью этого инструмента можно записать свои перемещения в Google Earth, сопроводить их голосовыми комментариями и сохранить их в KML формате.

В Google Earth имеется возможность с помощью слоя «рельеф» включить отображение 3D модели поверхности Земли.

Также есть слой, который включает загрузку 3D моделей зданий (серых примитивов и фотореалистичных).

Модели зданий создают специалисты компании Google и пользователи с помощью специального 3D редактора Google SketchUp.

В мае 2008г. компнией Google был представлен API для просмотра Google Earth в окне браузера.

Google Earth API работает не во всех браузерах. Для примера, в Опере он работать отказывается. Браузер должен поддерживать работу ActiveX.

Для работы в режиме Google Earth необходимо установить специальный плагин.

С начала необходимо скачать инстолятор GoogleEarthPluginSetup_en.exe (299Кб), при запуске которого выкачивается сам плагин googleearth-plugin-win.exe (его размер > 6,5Мб).

Затем предлагается произвести перезагрузку браузера. После перезагрузке нужно разрешить браузеру установку ActiveX. Видим сообщение:

С подключаемым модулем Google Планета Земля возникла проблема. Попробуйте перезагрузить страницу.

Перезагружаем. После перезагрузки Google Earth в браузере заработал!

Скорость работы и управление Web-приложения такие же как и у полноценной программы Google Earth.

Некоторые полезные ссылки по API просмотра Google Earth:

Руководство для разработчиков (англ.) http://code.google.com/intl/ru/apis/earth/documentation/index.html

Галерея демо проектов http://code.google.com/intl/ru/apis/earth/documentation/demogallery.html

Примеры использования http://earth-api-samples.googlecode.com/svn/trunk/examples/

Если у Вас уже есть ключ для API Google Maps, то для использования режима просмотра Google Earth Вам нужно добавить в свой код одну строчку

map.addMapType(G_SATELLITE_3D_MAP);

Тогда при открытии страницы с картой в браузере Вы увидите следующее

Google Earth пример карты с кнопкой Земля

Появилась новая кнопка типа карт – Земля, нажав на которую Вы увидите карту в режиме Google Earth (предварительно необходимо установить плагин).

Google Earth вид в браузере

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

четверг, 23 апреля 2009 г.

Добавляем поиск по адресу на Яндекс.Карту

В заметках ранее мы используя API Яндекс.Карт создали карту с элементами управления и добавили на нее метку.

В этой заметке мы добавим к нашей карте возможность поиска по адресу.

Для начала мы возьмем уже готовый пример кода для заметки «Яндекс. Карты – добавляем элементы управления» .

Вот этот код:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”><html xmlns=”http://www.w3.org/1999/xhtml”>

<head>

<meta http-equiv=”Content-Type” content=”text/html” />

<script src=”http://api-maps.yandex.ru/1.0/?key=

AKgqHEkBAAAA-WzMYwIAeAeamm8ETZZZpdfp2R07eIuGyX4AAAAAAAAAAACjUCDoHIHZJ2pcl5mSL1zWVp2Myw==”

type=”text/javascript”></script><script type=”text/javascript” charset=”utf-8?>

var map;

function init () {

map = new YMaps.Map( document.getElementById(”YMapsID”) );

map.setCenter(new YMaps.GeoPoint(44.0,56.32811), 13,

YMaps.MapType.MAP);map.addControl(new YMaps.TypeControl());

map.addControl(new YMaps.ToolBar());

map.addControl(new YMaps.Zoom());

map.addControl(new YMaps.MiniMap());

map.addControl(new YMaps.ScaleLine());}

</script>

</head>



<body onload=”init();”><div id=”YMapsID” style=”height:400px; width:600px;”></div></body>

</html>



Для реализации поиска по адресу на карте необходимо к нашему примеру сделать следующие добавления.

  1. Форму для ввода адреса.

  2. Функцию которая будет принимать введенный адрес и отправлять запрос геокодеру и вслучае, когда адрес нашелся, отображать его на карте с помощью балуна.


Здесь я употребил слово геокодер. Что это такое?

Геокодер – это специальный сервис, который позволяет определять координаты и получать сведения о географическом объекте по его названию или адресу.

Процесс работы с геокодером называется геокодированием.

Для работы с геокодером в API Яндекс.Карт используются специальные объекты  YMaps.Geocoder и YMaps.GeocoderResult. Они позволяют отправлять запросы геокодеру, получать информацию о статусе и результате процесса геокодирования и получать результаты геокодирования в виде меток карты.

Подробнее о геокодировании можно узнать из руководства разработчика по адресу http://api.yandex.ru/maps/jsapi/doc/dg/concepts/geocoder.xml

И так мы добавляем в наш пример форму поиска.

В раздел BODY перед картой добавляем следующий код:

<form action="#" onsubmit="showAddress(this.address.value);return false;"><p><input type="text" id="address" style="width:525px;" value="Нижний Новгород" />

<input type="submit" value="Искать" />

</p>

</form>



В раздел HEAD после функции init следующую функцию:

function showAddress (value) {map.removeOverlay(geoResult);var geocoder = new YMaps.Geocoder(value, {results: 1, boundedBy: map.getBounds()});

YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {

if (this.length()) {

geoResult = this.get(0);

map.addOverlay(geoResult);

map.setBounds(geoResult.getBounds());

}else {

alert("Ничего не найдено")

}

});

YMaps.Events.observe(geocoder, geocoder.Events.Fault,

function (error) {alert("Произошла ошибка: " + error.message)});

}



Форма уже содержит значение Нижний Новгород для поиска.

В нее необходимо ввести искомый адрес.

Введенный адрес (значение переменной value) передается функции showAddress.

В ней сначала мы удаляем все оверлеи (объект, привязанный по географическим координатам, который отображается поверх карты, в частности открытый балун) строка map.removeOverlay(geoResult);

Затем в строке var geocoder = new YMaps.Geocoder(value, {results: 1, boundedBy: map.getBounds()});

запускаем процесс геокодирования.

Полсле этого, если поиск прошел без ошибок и найден хотя бы один результат отображаем его с помощью открытого балуна.

Иначе выводим сообщение: «Ничего не найдено».

Последние две строки функции служат для вывода сообщения об ошибке геокодирования.

Загрузим наш пример в браузере и проверим его работу.

Пример Яндекс.Карты с формой поиска

Найдем для примера следующий адрес: Нижний Новгород, ул. Белинского, 59

Введем его в строку поиска и нажмем Найти.

Получим найденный результат.

Пример Яндекс.Карты - Результат поиска

Посмотреть пример в действии и полный код можно здесь.

На странице к созданной функции можно обращаться используя ссылку, например,

<a href="javascript:showAddress(‘Нижний Новгород, ул. Белинского, 59’)"> Нижний Новгород, ул. Белинского, 59</a>

Посмотреть пример с ссылками в действии и полный код можно здесь.

суббота, 18 апреля 2009 г.

Доработка плагина Яндекс.Карт для Joomla

Мне задали такой вопрос: «Подскажите, каким образом нужно прописать в .php плагина “Яндекс-Карты”, чтобы отобразились элементы ToolBar (панель инструментов) , ScaleLine(линейка)?».

В этой заметке я расскажу как это сделать на примере добавления элемента ToolBar (панель инструментов).

Используя ftp-клиент мы заходим на сервер Вашего сайта в папку, где установлена Joomla.

Находим там папку plugins, а в ней папку content.

В этой папке должны находиться два файла: plugin_yandexmap.xml и plugin_yandexmap.php

Их мы и будем редактировать.

Открываем сначала файл plugin_yandexmap.xml в любом текстовом редакторе или Блокноте.

Находим в нем следующие строки:

<param name="showMiniMap" type="radio" size= "1" default="0" label="YMAP_SHOWMINIM" description="YMAP_SHOWMINIM_D"><option value="1">YMAP_YES</option>

<option value="0">YMAP_NO</option>

</param>



Здесь прописываются элементы формы для добавления обзорной миникарты в режиме администрирования.

Копируем данные строки и вставляем перед ними.

Изменяем вставленный код следующим образом:

<param name="showToolBar" type="radio" size= "1" default="0" label="YMAP_SHOWTOOLBAR" description="YMAP_SHOWTOOLBAR_D"><option value="1">YMAP_YES</option>

<option value="0">YMAP_NO</option>

</param>



Сохраняем изменненый файл на сервер.






Joomla - Профессиональный сайт за один день
86 видеоуроков, 12 часов 46 минут посвящены лучшей системе для создания сайтов - Joomla!




Затем редактируем файл plugin_yandexmap.php.

Находим в нем строки

if (intval($my_params['showMiniMap'])) {$mmControl = 'var minimapControl = new YMaps.MiniMap();';

$mmControl .= 'map.addControl(minimapControl);';

} else {

$mmControl = '';

}



Копируем и вставляем данный блок кода перед ними.

Изменяем его следующим образом

if (intval($my_params['showToolBar'])) {$toolbarControl = 'var toolbarControl = new YMaps.ToolBar();';

$toolbarControl .= 'map.addControl(toolbarControl);';

} else {

$toolbarControl = '';

}



Еще ищем строку '.$mmControl.' И перед ней добавляем строчку  '.$toolbarControl.'

Сохраняем измененный файл на сервер.

Заходим на сайт на странице администрирования заходим в менеджер плагинов и выбираем плагин Content - Yandex Maps.

Открываем его для редактирования.

В правой части окна, среди параметров должен появиться новый YMAP_SHOWTOOLBAR и два переключателя состояния YMAP_YES и YMAP_NO.

Отмечаем состояние YMAP_YES и сохраняем изменения.

Открываем страницу с Яндекс.Картой. На карте должен появиться новый элемент управления YMaps.ToolBar.

Скачать измененные файлы: plugin_yandexmap.xml и plugin_yandexmap.php

Посмотреть пример в действии

Аналогично можно добавить и элемент управления ScaleLine – масштабную линейку.