Доработка компонента Яндекс.Карт для 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 нет (там подхватывается обычная, а как следствие, при настроенном приближении видим «Для этого участка местности нет данных…»).
    Раньше всё вроде было норм. Подскажите, пожалуйста, в чем может быть проблема, так как однажды настроев компонент, больше не следил за какими либо изменениями. Возможно это уже не актуально.

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

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