Рассмотрим варианты интеграции, внедрения Яндекс-карт в материалы Joomla.
Вариантов на мой взгляд всего 2:
1. Использование сторонних компонентов.
2. Вставка напрямую в исходный текст страницы в админке Joomla.
1. На данный момент в нете находится один компонент + плагин под названием YandexMaps.
На проверку это модификация компонента (и плагина) Phoca Maps, который заточен под карты Гугла.
- Создать карты со всеми визуальными настройками;
- Создать метки на этих картах, также со всеми настройками;
- C помощью плагина вывести карты на нужных страницах.
Разработчики из Ярославля славно потрудились производя на свет эту модификацию, однако и сырые (не особо критичные места встречаются).
Например гугловые картинки меток и гугловые методы в коде.
Наверное такой компонент имеет смысл использовать при значительном количестве карт на сайте.
Поэтому я его не тестировал, да и ключ к API Яндекс карт привязывать к локалхосту не хотелось.
2. Вставка напрямую обильно описана на http://api.yandex.ru/maps/, и для вставки пары-тройки карт она вполне подходит.
Примеров добавления на страницу одной яндекс карты достаточно много по вышеуказанному адресу, а вот примеров добавления нескольких карт я не нашел.
Несколько Яндекс карт на одной странице
- Для того чтобы показать несколько карт необходимо создать несколько объектов YMaps с помощью функции-конструктора Map(document.getElementById(«YMapsID»)) в которую параметром мы передаем контейнер для карты.
- Имеет смысл загружать карты по запросу, соответсвенно будем использовать функцию инициализирующую карту (initMap).
- Переменные типа координат и подписей меток будем передавать в initMap параметрами.
- Для запуска initMap воспользуемся методом YMaps.load(init). Идем таким путем так как сама функция init без параметров, что выяснилось опытным путем.
- Добавим переключатель показывания карты для экономии места.
<!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> <title>Несколько Яндекс.Карт на одной странице</title> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <script src="http://api-maps.yandex.ru/1.1/index.xml?loadByRequire=1&key=ANpUFEkBAAAAf7jmJwMAHGZHrcKNDsbEqEVjEUtCmufxQMwAAAAAAAAAAAAvVrubVT4btztbduoIgTLAeFILaQ==" type="text/javascript"></script> <script type="text/javascript"> function initMap(divId,x,y,name,desc) { var m = new YMaps.Map(document.getElementById(divId)); m.setCenter(new YMaps.GeoPoint(x,y), 16); m.addControl(new YMaps.TypeControl()); m.addControl(new YMaps.ToolBar()); m.addControl(new YMaps.Zoom()); var placemark = new YMaps.Placemark(new YMaps.GeoPoint(x,y)); placemark.name = name; placemark.description = desc; m.addOverlay(placemark); return m; } function init1() { initMap('YMapsID1',37.609218,55.753559,'Россия','Москва'); } function init2() { initMap('YMapsID2',30.313497,59.938531,'Россия','Санкт-Петербург'); } function toggle(x,init) { if (document.getElementById(x).style.display == 'none') { document.getElementById(x).style.display = ''; YMaps.load(init);} else {document.getElementById(x).style.display = 'none';}} </script> </head> <body> <span style="border-bottom-width:1px;border-bottom-style:dashed;cursor:pointer;" onclick="toggle('YMapsID1',init1);">Россия, Москва</span> <div id="YMapsID1" style="width:480px;height:320px;margin:8px 0px;display:none;"></div> <span style="border-bottom-width:1px;border-bottom-style:dashed;cursor:pointer;" onclick="toggle('YMapsID2',init2);">Россия, Санкт-Петербург</span> <div id="YMapsID2" style="width:480px;height:320px;margin:8px 0px;display:none;"></div> </body> </html> |
Примечание: для того чтобы в Joomla добавить на страницу html-код или код JavaScript необходимо отключить визуальный редактор.
В последнем диве надо ID=YMapsID2
Верно, исправил, спос
у меня пустая картинка
Может javascript код вставляете не отключив визуальный редактор? Ссылку на страницу с картой дадите?
Вижу, что сейчас www.expo-s.ru/contacts.html карта на месте, значит вопрос считаем решенным.
почему не отображается карта?
Код карты необходимо вставлять на страницу с выключенным визуальным редактором, т.к. это JavaScript.
так и делаю, карта для блога вставляется нормально а для сайта не отображается
Сравните настройки фильтрации кода в материалах на сайте и блоге.
Подскажите пожалуйста, почему при нажатии на маркер баллун разбивается? Я понимаю что косяк в джумле, но может хоть подскажете где искать? Я уже всю голову сломал! Заранее спасибо!
У меня такое тоже было, ответ очень прост, css-стили шаблона Joomla действуют на балун и он разбивается. Как вариант можно создать специальные «обнуленные стили» для всех ячеек таблиц и прочего, находящегося в контейнере в котором находится карта.
Спасибо, я уже разобрался, гугл помог.
Итак если «бьется» баллун дописываем
в /components/com_yandexmaps/assets/yandexmaps.css
Но все равно, спасибо Вам!
Ага и вам, успехов .
Что бы я без вас делал! =) Небольшая ложка дегтя: что у вас, что у меня: на карте баллун теперь не разбит, но внизу (по его границе(как бы отсекает хвостик)) и справа есть следы, типа рамки. Я пока не победил =(
На сайте Романа есть лишнее правило margin: 1px; в блоке
Его надо обнулить для контейнера с картой.
Нашел, как обычно, с помощью FireBug.
Для joomla 1.7 появилась новая версия
Привет! Подскажите, как сделать карту как на этом сайте? Плиззз!
api.yandex.ru/maps/tools/constructor/ — конструктор не подойдет? Как-то недосуг изучать их код использования API Яндекс.Карт. А если вам досуг, то можете потренироваться в песочнице либо просто спросить тут.