Mappy - простое добавление карт на сайт.

Аватар пользователя Niklan

 Mappy - модуль, который позволяет вставлять карты на сайт при помощи простого html-тега, либо фильтра для текста.

ВложениеРазмер
Иконка пакета Модуль4.84 КБ
Тип материала:
Версия Drupal:
0 Спасибо

Комментарии

Аватар пользователя q2_faith
q2_faith 4 года назад

подпишусь)

0 Спасибо
Аватар пользователя igor701
igor701 4 года назад

Ага, прикольно!

0 Спасибо
Аватар пользователя josgir
josgir 4 года назад

Пару точек может отрисовать?

0 Спасибо
Аватар пользователя Niklan
Niklan 4 года назад
josgir написал:

Можно сделать, вообще никаких проблем.

0 Спасибо
Аватар пользователя josgir
josgir 4 года назад
Niklan написал:

Было бы здорово. Могу даже посильный вклад (в т. ч. и денежный) в разработку модуля.
Было бы здорово, если можно было по списку адресов отрисовывать в карте несколько точек, хотя бы 10 шт, (на сколько я понимаю в этом вопросе, если слишком много точек, то геотаргетинг будет подтормаживать и нужно будет один раз прогнать по адресу и получить координаты).
Я начал делать на основе multiGeocoder, там есть возможность задавать такие данные multigeocoding, но у меня не кастомный вариант.

0 Спасибо
Аватар пользователя Lotar
Lotar 4 года назад

Акцептую

0 Спасибо
Аватар пользователя Niklan
Niklan 4 года назад

Добавил поддержку множественных адресов.

Пример (адреса разделяются ";" - точкой с запятой):

<mappy:yandex address="г. Пермь, ул. Пермская 200; г. Пермь, ул. Крисанова 16" zoom="14" width="640" height="480"></mappy:yandex>

0 Спасибо
Аватар пользователя josgir
josgir 4 года назад

Никита! Крутяк, ващЕ!:)

0 Спасибо
Аватар пользователя graker
graker 4 года назад

Толково!

А тексты в баллунах редактируются?

Пожелание: если можно, ссылку на страницу модуля поднять бы над картинками с примерами. В идеале бы и картинки под кат убрать - но это уж хозяин-барин :)

0 Спасибо
Аватар пользователя Niklan
Niklan 4 года назад
graker написал:
А тексты в баллунах редактируются?

Когда добавляется балун по одному адресу, то там вообще ничего нету.
Когда добавляется по множеству адресов, то там адреса по которым они расположены.

Можно добавить возможность добавлять в балун текст, когда он один, но вот в чем задача. Как туда его передавать. Можно также в атрибуте, например placemark_text="trattat", но тогда без html. Такое сделать вообще не проблема.

Еще балуны которые появляются при построении маршрута, думаю также вынести в атрибуты.

graker написал:
Пожелание: если можно, ссылку на страницу модуля поднять бы над картинками с примерами. В идеале бы и картинки под кат убрать - но это уж хозяин-барин :)

поправил.

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

P.s. также хотел и гугл туда впилить сразу, но что-то скрин у дриса заставил притормозить коней. Там написано что скоро состоится тестирование новых карт гугла, поэтому я не уверен что там будет с API

0 Спасибо
Аватар пользователя Niklan
Niklan 4 года назад

Добавил гугл карты. Пока по одному адресу. У него API очень капризное.
Гугловский JSAPI подключается постоянно, но реально сработает только по запросу карты, так что на счет загрузки не волнуйтесь.

Также перенес доки в Wiki гитхаба.
Документация по Google.Maps
Документация по Yandex.Maps

kosHta написал:

Оптимизация негодуэ... api-maps.yandex...fix=ymaps2_0_29 имеет размер запроса 2.0KiB Жалуется на повышенные запросы Яндекса,

эм, я никак на яндекс повлиять не могу.

kosHta написал:
хотя карте указана одна страница, главная правда - время загрузки страницы(главной) увеличилось

Не понял. Подробнее можно? А так, яндекс сервисы сами по себе грузят сайт. Посмотрите на анализ скорости сайта в Pingdom с метрикой и без, вы охереете.

kosHta написал:
ещё сумбурная каша с пробками, не очень корректно при размере 300-250

Опять же, отрисовываю не я а яндекс.

По факту этот модуль всего лишь обертка для API карт для более простого взаимодействия. Ну нужно подключать JS, не нужно разбираться в API. Очень удобно для тех кто вообще не знаком с JS, а немного кастомизировать карту хочется. Вот для таких целей модуль и создавался. Также например быстро вставить карту с меткой офиса без темизации и прочих мудреностей. Кому надо гибкость, тому придется разбираться с конкретным API. Сейчас читал у google.Maps, там писец чо делать можно с ними.

0 Спасибо
Аватар пользователя josgir
josgir 4 года назад
Niklan написал:
Можно добавить возможность добавлять в балун текст ... Можно также в атрибуте, например placemark_text="trattat", но тогда без html. Такое сделать вообще не проблема.

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

0 Спасибо
Аватар пользователя Niklan
Niklan 4 года назад

Получил возможность публиковать модули на дорг,  mappy. Собственно теперь качайте оттуда.

kosHta написал:
Потащил модуль к себе, админка ругнулась "Mappy уже установлен."))

В смысле? Если был скачан с гитхаба, лучше переустановить, теперь я его официально на д.орг скинул. А друпал ставит свои метки на модули которых нету в гитхабе.

P.s. напоминаю и разъясняю. Модуль создан для простой вставки карты, с каким-то базовыми параметрами, все. Это не API для API, тут нет и не будет сложных возможностей, ввиду того что это неразумно. При потребностях чего-то сложного лучше учить напрямую API.

0 Спасибо
Аватар пользователя oksoft
oksoft 4 года назад

спасибо

0 Спасибо
Аватар пользователя Niklan
Niklan 4 года назад

Добавил возможность вставки текста в балуны.
Изменились почти все аттрибуты для Yandex.Карт. Дока

Пример:

<mappy:yandex address="Пермь, пермская 200; Пермь, крисанова 16" zoom="17" width="720" height="480" balloonContent="Для <br><strong>пермской</strong>; Для крисанова"></mappy:yandex>

Ага, html тоже жрет.

В течении 12 часов изменения станут доступны на Drupal.org. Когда модуль обновится у него будет 4 или 5 июня (дата изменения), а сейчас 31 мая (у модуля, разумеется).

0 Спасибо
Аватар пользователя Niklan
Niklan 4 года назад

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

Дока: https://github.com/Niklan/mappy/wiki/ru_Google.Maps

Пример:

<mappy:google address="г. Пермь, ул. Крисанова 16; г. Пермь, ул. Крисанова 18А" zoom="17" width="720" height="480" addressPlacemark="true" balloonContent="Это для крисанова 16; Для крисанова <u>18А</u>"></mappy:google>

0 Спасибо
Аватар пользователя josgir
josgir 4 года назад

Были проблемы с zoom_control, новая версия я посмотрел в yandex.mappy.js использует zoomСontrol,
хром атрибуты внутри тега yandex переводит в нижний регистр, а джава чувствительна к регистру. Поменял в yandex.mappy.js zoomСontrol на zoomcontrol в строчках 124 и 125, все заработало.
Маленький скролл, маршруты, и пробки не тестировал не смотрел.
И еще, если вставлять в текст ноды в FullHTML, то подходит как у тебя в описании , если вставлять в шаблон то, такая конструкция не прокатила, прокатила «.»
Все остальное работает на ура, балун воспринемают HTML.
Очень получалась гибкая система. Делаю так через views_get_view_result делаю array, задаю адреса, задаю текст балуна, через foreach. Затем вывожу где нужно. Вообщем - огромное спасибо!!!

0 Спасибо
Аватар пользователя Niklan
Niklan 4 года назад

Версия хрома какая?
У меня работает на:
Chrome: Версия 26.0.1410.63
Chromium: Версия 25.0.1364.160 Ubuntu 13.04 (25.0.1364.160-0ubuntu3)
FireFox: 21
Opera: 12.15 1748

josgir написал:
И еще, если вставлять в текст ноды в FullHTML, то подходит как у тебя в описании , если вставлять в шаблон то, такая конструкция не прокатила, прокатила .

Разумеется, Drupal прочищает его. Скорее в нем проблема нежели в браузере. Я тестирую через FullHTML и в других не смотрел, надо будет глянуть.

0 Спасибо
Аватар пользователя josgir
josgir 4 года назад

Google Chrome 26.0.1410.64 m

0 Спасибо
Аватар пользователя josgir
josgir 4 года назад

В Full HTML работает <mappy:yandex ...>»
В tpl работает <yandex ...

0 Спасибо
Аватар пользователя Niklan
Niklan 4 года назад

Ну браузер подчищает mappy и вставляет то что после двоеточия. Так что в tpl также должно проканать mappy:yandex По факту можно ставить вообще чисто <yandex .. > и также прокатит. Вообще я хз что за метод написания тега такой с дветочием, но я пошел по пути как делает гугл и фейсбук такие теги. Точного описания не нашел. Разве что у книгилиц он называется FBML.

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

0 Спасибо
Аватар пользователя iNFerNo
iNFerNo 4 года назад

А как вставлять код в в комментах??? Не выводит нифига.

А чтобы как поле было что бы там адрес набивать и всё?

0 Спасибо
Аватар пользователя josgir
josgir 4 года назад
iNFerNo написал:
Как вставлять то код. Во всех текстовых форматах попробовал и в комментах им в нодах. Не выводится карта.

У меня на drupal 7.21 и кучей модулей тоже не запускалось. Поставил 7.22 чистый появились карты. Не разбирался почему и с чем конфликты были. Возможно из-за того что я до этого напрямую ставил карты яндекса, и подключал скрипты свои, не знаю. Нужно смотреть конкретно может какие-то модули конфликтуют - не разбирался:)

0 Спасибо
Аватар пользователя iNFerNo
iNFerNo 4 года назад

Да и как правильно значения заполнять я например ввел г.Москва свою улицу дом...

показало только москву

0 Спасибо
Аватар пользователя josgir
josgir 4 года назад

Да, реально, если указать один объект то, не отображает метку, если указать через ";" второй адрес, то нормально работает

0 Спасибо
Аватар пользователя Niklan
Niklan 4 года назад
iNFerNo написал:
А чтобы как поле было что бы там адрес набивать и всё?

Для этого есть geofield

iNFerNo написал:
Да и как правильно значения заполнять я например ввел г.Москва свою улицу дом...
показало только москву

Может ошибка в адресе.

josgir написал:
Да, реально, если указать один объект то, не отображает метку, если указать через ";" второй адрес, то нормально работает

Ага, есть в яндексе такой баг. Сейчас поправлю.

UPD. Поправил но из-за такой мелочи пока не буду пушить на д.орг. Может еще чего найдется или сделаю.

Кому надо можно просто открыть файл yandex.mappy.js
В 104 строке заменить

if (address.length > 1) {

на

if (address.length > 0) {
0 Спасибо
Аватар пользователя iNFerNo
iNFerNo 4 года назад

Норм теперь.

а geofield - там тоже гугл и яндекс?

0 Спасибо
Аватар пользователя Niklan
Niklan 4 года назад
iNFerNo написал:
а geofield - там тоже гугл и яндекс?

Хз не пробовал, но его использует для тех целей что вам надо.

0 Спасибо
Аватар пользователя iNFerNo
iNFerNo 4 года назад

Не, там фигня. Какая та. яндекс филд мапс лучше

0 Спасибо
Аватар пользователя Niklan
Niklan 4 года назад
iNFerNo написал:
Не, там фигня. Какая та. яндекс филд мапс лучше

Раз такое есть зачем мне это же делать =\

0 Спасибо
Аватар пользователя iNFerNo
iNFerNo 4 года назад

логично

0 Спасибо
Аватар пользователя Niklan
Niklan 4 года назад

Сделал стабильную версию.  Mappy
Должна работать железно.

0 Спасибо
Аватар пользователя Lotar
Lotar 4 года назад

Ай да малаца ты Никлан. Даже документацию сделал. Держи пять. Но вот кнопки контроля зума никак не хотят появляться. Зато остальное работает.

0 Спасибо
Аватар пользователя Niklan
Niklan 4 года назад
Lotar написал:
Ай да малаца ты Никлан. Даже документацию сделал. Держи пять. Но вот кнопки контроля зума никак не хотят появляться. Зато остальное работает.

Спасибо на добром слове. У какой карты не появляются кнопки зума? У гугла просто через true\false управление, а у яндекса появляется при указании координатов.

0 Спасибо
Аватар пользователя Lotar
Lotar 4 года назад

Яндекс карты добавил себе. zoom_control="20,50" или смол зум пробую. Даже тупо пример от сюда https://github.com/Niklan/mappy/wiki/ru_Yandex.Maps копирую кнопари не появляются.

0 Спасибо
Аватар пользователя Niklan
Niklan 4 года назад
Lotar написал:

zoomControl="20,50"

Я примеры не обновил, а атрибуты у яндекс карт вообще полностью перелопачены. В таблице актуальные.

0 Спасибо
Аватар пользователя Niklan
Niklan 4 года назад

Ща разберусь.

0 Спасибо
Аватар пользователя Niklan
Niklan 4 года назад

Так, один косяк нашел. В гуглокартах надо юзать не zoomControl а zoom_control. Хз, замохал закоммитить видимо.

kosHta написал:
Контакты Раньше ползунок был и работал(до выхода модуля в свет)

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


0 Спасибо
Аватар пользователя Niklan
Niklan 4 года назад
kosHta написал:
Кэш чистить надо на сайте при переинсталляциях.

угумс

0 Спасибо
Аватар пользователя Niklan
Niklan 4 года назад
kosHta написал:
Всплыл Гугловсий косяк, его величество игнорирует отрисовку карт населённых пунктов менее 6000 чел... Здравствуй Яндекс!

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

0 Спасибо
Аватар пользователя josgir
josgir 4 года назад

Понадобилось мне в Яндекс карте, чтобы центр карты был в месте отличном от первого адреса, и чтобы метка не выводилась, сделал так: в файл yandex.mappy.js после строчки
var address = $("yandex").attr("address").split(";");
Добавил условие наличия тэга centerAddress

if (void 0 === $("yandex").attr("centerAddress")){//Проверка есть ли атрибут centerAddress
                var center_address = address;//если атрибута нет, то центром карты будет первый адрес в строчке address
        }
        else{
                var center_address = $("yandex").attr("centerAddress").split(";"); //если атрибут есть, то берем из этого атрибута
        }

После этого меняем строчку

на

 url: 'http://geocode-maps.yandex.ru/1.x/?format=json&geocode=' + center_address[0] + '&result=1',

Код вывода карты получился следующий (93.47, 66.46 - это приблизительные координаты географического центра России)

<yandex zoomControl="20,50" centerAddress="93.47, 66.46" address="Томск; Москва " addressplacemark="true" ballooncontent="Томск; Москва" height="300" width="640" zoom="2" >
</yandex>
0 Спасибо
Аватар пользователя Niklan
Niklan 4 года назад

Выпустил новую версию Mappy 7.x-1.2.

0 Спасибо
Аватар пользователя Boozenok
Boozenok 4 года назад

на заметку

0 Спасибо
Аватар пользователя Niklan
Niklan 4 года назад

В dev добавлена версия для Drupal 8.

В обозримом будущем добавлю функционал построения маршрута на гуглокартах. Уже готов, надо до ума довести.

0 Спасибо
Аватар пользователя Niklan
Niklan 4 года назад
drupby написал:
$(document).ready(function() {});
эквивалентен
$(function() {})(jQuery);
http://api.jquery.com/ready/

спасибо, не знал

0 Спасибо
Аватар пользователя josgir
josgir 4 года назад
Niklan написал:

А кластеризацию для Яндекс.карт можно добавить?

0 Спасибо
Аватар пользователя Niklan
Niklan 4 года назад
josgir написал:

Почитаю на досуге. В приоритете Гуглокарты. ИМХО качественнее, уже точны не хуже яндекса в большинстве регионов, функционал выше, быстрее, мощнее и т.д. и т.п. А еще WebGL версию API вроде как пилят.

0 Спасибо
Аватар пользователя josgir
josgir 4 года назад
Niklan написал:
Почитаю на досуге. В приоритете Гуглокарты. ИМХО качественнее, уже точны не хуже яндекса в большинстве регионов, функционал выше, быстрее, мощнее и т.д. и т.п. А еще WebGL версию API вроде как пилят.

Если будут кластеры для Гуглокарты еще лучше даже.

0 Спасибо
Аватар пользователя Dalay
Dalay 4 года назад
/**
 * Implements hook_page_build().
 */

function mappy_page_build(&$page) {
...

Зачем для всех страниц загружать скрипты? Это не серьезно. Хотя бы в виде фильтра надобно сделать или поля.

Зачем нужна в коробке модуля папка inc и пустой файл в ней?

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

0 Спасибо