Доработка компонента Яндекс.Карт для Joomla 1.5 – подключение народной карты. Продолжение-2

Автор: | 19.06.2011

На блоге я уже рассказывал о том, как можно доработать компонент для размещения Яндекс.Карт с использованием системы управления сайтом Joomla 1.5 , смотри заметки: «Доработка компонента Яндекс.Карт для Joomla 1.5 – подключение народной карты» и «Доработка компонента Яндекс.Карт для Joomla 1.5 – подключение народной карты. Продолжение», но остался не рассмотренным еще один вопрос.

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

Что необходимо изменить в компоненте для реализации этой возможности.

Для этого необходимо отредактировать код файла default.php, который расположен в папке по адресу:

(папка установки Joomla)/
/administrator/components/com_yandexmaps/views/yandexmapsgmap/tmpl/default.php.

В начале мы изменяем строку подключения API Яндекс.Карт

$scriptLink = ‘http://api-maps.yandex.ru/1.0/index.xml?key=’. $this->apikey;

на следующую

$scriptLink = ‘http://api-maps.yandex.ru/1.1/index.xml?key=’. $this->apikey.’&modules=pmap’;

Здесь, мы подключаем версию API 1.1 (т. к. весия 1.0 является устаревшей и не поддерживает возможность подключения модулей), а после ключа дописываем параметр для подключения модуля Народной карты.

После этого, сразу ниже строки добавления элемента управления типом карты

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

Мы устанавливаем тип карты Народная карта-схема (YMaps.MapType.PMAP ) дописав новую строку

map.setType(YMaps.MapType.PMAP);

Если Вам необходима возможность переключения типа Народной карты, то строку

map.addControl(new Ymaps.TypeControl());

надо переписать в виде

map.addControl(new YMaps.TypeControl([YMaps.MapType.PMAP, YMaps.MapType.PHYBRID]));

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

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

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

на следующую

var geocoder = new YMaps.Geocoder(value, {results: 1, boundedBy: map.getBounds(), geocodeProvider:"yandex#pmap"});

Здесь мы обращаться к другому поисковому сервису — yandex#pmap (а не yandex#map, который используется по умолчанию).

Сохраняем изменения и переходим в режим администрирования Joomla.

Там в меню Компоненты находим подменю Яндекс Карты, а далее пункт меню Маркеры.

На открывшейся странице нажимаем кнопку «Новый» (для создания нового маркера), а в новом окне нажимаем на кнопку «Установить координаты», наблюдаем Народную Карту, на которой в нужном нам месте мы можем разместить маркер, координаты которого передадутся в соответствующие поля формы.

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

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

Доработка компонента Яндекс.Карт для Joomla 1.5 – подключение народной карты. Продолжение-2: 4 комментария

  1. Андрей

    Здорово! Теперь осталось только научить этот компонент показывать массив gps-координат, то есть трек и он закроет собой просто огромную область применения. Можно доработать этот компонет, чтобы была возможность при выборе метки указывать координаты или одной точки или рисовать полилинию по нескольким точкам сразу, указанных в виде массива?

  2. Евгений

    Спасибо за статью!
    Вопрос, возможно ли скрыть имеющиеся на карте метки?
    В настройках компонента не нашел, может как ручками?

  3. Андрей

    Здравствуйте!
    Во-первых, спасибо за ваши статьи!
    А во-вторых, возникла проблема! Тут обнаружил что Народная карта работает только в Mozzila Firefox, а к примеру в Chrome нет (там подхватывается обычная, а как следствие, при настроенном приближении видим «Для этого участка местности нет данных…»).
    Раньше всё вроде было норм. Подскажите, пожалуйста, в чем может быть проблема, так как однажды настроев компонент, больше не следил за какими либо изменениями. Возможно это уже не актуально.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *