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

Приветствую всех!

Общий вид карты с категориями
UPD! В плагин добавлена поддержка карт Google.

Предлагаю вашему вниманию плагин Яндекс.Карт для Livestreet.
UPD Плагин бесплатно доступен в каталоге. Прошу тестировать и писать отзывы )
UPD2 Версия 0.1.1 Исправлена ошибка, возникающая при регистрации блока.
UPD3 Версия 0.1.2. Исправлена ошибка отображения картинки в балуне в Опере. Также включено по умолчанию отображение всех маркеров на карте и правильное добавление пункта меню. Новая версия скоро в каталоге или здесь.
Быстрый фикс:
в файле /plugins/ymap/templates/skin/default/actions/ActionBuildymap/buildmap.tpl
строка 32
src="http://$[metaDataProperty.AnyMetaData.img]"

заменить на
src="http:$[metaDataProperty.AnyMetaData.img]"


Из истории создания
Для одного из проектов городского портала возникла необходимость создать карту развлекательных заведений города. А т.к. один из разделов портала использовал Livestreet, то решил сделать карту на основе Яндекс.Карт (благо, нужный город там неплохо детализирован) в виде плагина.

Что же получилось? Где посмотреть демо?
А получилось вот что. Это городской портал города Сумы в Украине. Пока что не все категории карты успел заполнить, но того, что есть уже достаточно для понимания как работает плагин.
В дополнение, на моем сайте также можно увидеть плагин в действии, правда с меньшим количеством категорий. Впрочем, количество категорий значения не имеет.

Что умеет плагин?
Плагин умеет управлять маркерами и категориями маркеров на карте, выводить карту на определенную страницу, выводить меню категорий маркеров.

Что такое категория маркеров?
Категория маркеров это некоторое свойство маркера, в котором определяется как будет выглядеть иконка маркера на карте.
Свойства категории:
— Название — любое текстовое название. Например, Офисы компании;
— Имя стиля — требуется для генерации карты, набор символов на латинице. Например, offices.
— Ссылка на иконку маркеров в категории — иконка маркера, которая появляется на карте при выборе категории. Здесь удобно пользоваться стандартными иконками Яндекс.Карт.

Что такое маркер?
Это значек и балун на карте, который задается следующими свойствами:
Название, широта, долгота, категория, адрес, телефон, ссылка на подробную информацию и ссылка на изображение в балуне. Увидеть где и какие свойства проявляются достаточно просто — поиграйтесь с демками.

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

Как работает поиск?
Поиск
Стандартный элемент управления поиска ищет адреса в видимой области карты, а если ничего не найдено, то везде.
Поиск
Поиск объекта на карте ищет объекты (маркеры) по названию маркера. При клике на результат поиска, на карте открывается балун найденного маркера.
Поиск объекта на карте использует для предложения результатов плагин jQuery, однако подключать дополнительную библиотеку не требуется — jQuery подгружается вместе с Яндекс.Картами.

Админка карты.
Просто несколько скриншотов.

Таблица категорий маркеров
Категории маркеров

Список маркеров
Список маркеров

Что касается совместимости, у меня версия 0.4.2, на других не тестировался.

Вот и все. Теперь хочу ваших отзывов и оценок :). Если будет спрос, добавлю в каталог. Плагин добавлен в каталог.

169 комментариев

avatar
не понял что и как оценять то?
где скачать можно что бы поставить и потестить в РАБОТЕ
а так реклама сайта получилась и всё
avatar
если нельзя тут ссылку дабавить
вышлите в личку я протестирую тогда и скажу потом мнение
avatar
Добавьте в каталог, пожалуйста. Плагин весьма полезный и нужный!
П.С. отлично получилось ;)
avatar
Ухты ухты, нужная вещь.
avatar
А чем отличается от Афиши? Там такая же карта с картой событий и картой мест
avatar
Честно говоря не знаю чем отличается. Афишей я не пользовался… Писал с нуля новый, поэтому разницы тоже не знаю. В любом случае, функционала афиши в нем нет.
avatar
Как скачать плагин?
avatar
Возможно, в каталоге, когда/если пройдет модерацию.
Плагин будет раздаваться бесплатно.
avatar
Здорово ;)
avatar
+1
avatar
Раз бесплатно, можно до покупки Афиши\Мест использовать, если вам нужны фишки этого плагина. А как карта города с местами «Плагин Яндекс.Карты» вполне достаточно.
avatar
а сейчас можете куда то выложить?
если не можете вышлите мне если не жалко на емаил 7278181@googlemail.com
я выложу и дам народу ссылку.
avatar
И не пользуйтесь. У них эта фича все равно не работает (по крайней мере на яндекс-картах. Хотя автор и обещает исправить. Уже давно, правда, обещает.
avatar
меня лично смущает забивка мест админом, а не пользователями
avatar
Тут дело за малым… Я делал функционал для своего проекта, добавить такую фичу не сложно.
avatar
Хватит писать ерунду.
Почему-то у всех все работает (если все в порядке с руками)
Пример на демо сайте — ls4.ajaxy.ru/place/map (http://ls4.raki.aero/place/map)
Описание функционала: livestreet.ru/blog/4627.html
avatar
хотел посмотреть сайт, вылезает предупреждение от гугля
посмотрите что у вас там
avatar
пофиксили наконец-то, ls4.ajaxy.ru/place/map
avatar
вопрос по кнопке «создать» по вашей ссылке
ИМХО это бак, поправьте
avatar
в каком смысле «вопрос по кнопке»? не услышал вопроса...)
avatar
ок поясню
по ссылке ls4.ajaxy.ru/place/map на странице кнопка «создать» на 404 ведет
почему неавторизованному она вообще показывается?
avatar
похоже эта ерунда у хостера, на котором размещен ajaxy.ru…
из-за ajaxy.ru не пускает и на ls4.ajaxy.ru, который на другом хостинге расположен, а из-за ls4.ajaxy.ru и на ls4.raki.aero, который я создал специально как алиас, а из-за этого и на raki.aero
какой-то кошмар. :(
avatar
Видна сразу карта, что лично мне понравилось. Быстрее даёт представление что и где.
Нет рейтинга мест, отзывов. Было бы это, можно было бы добавлять в каталог.
avatar
Да, благодарю Вас за пожелание. Но все же сейчас есть такой функционал, какой есть ) Пока что это не карта рейтингов мест, это просто карта )
avatar
вот бы её с плагином Компании скрестить — было бы супер
avatar
Вроде автор Компании занимается этим вопросом-добавления карт.
avatar
я не вкурсе, хорошо бы
avatar
полезный плагин! если, он будет фришный, тогда мы готовы помочь с поддержкой и реализацией новых фич.
avatar
Вот это хорошо, буду признателен )
avatar
еще один технический вопрос а почему выбрали карты yandex
а не google мар
avatar
А т.к. один из разделов портала использовал Livestreet, то решил сделать карту на основе Яндекс.Карт (благо, нужный город там неплохо детализирован) в виде плагина.
avatar
Скачал плагин из каталога. Не активирует, ошибка в 27 строке в config.php

Fatal error: Class 'Plugin' not found in xxxxxx.ru/plugins/ymap/config/config.php on line 27
avatar
А можно ссылку на каталог, что-то не могу найти.
avatar
Ссылка на каталог livestreetcms.com/addons
Ссылка на сам плагин в каталоге livestreetcms.com/addons/view/81/
avatar
Ссылка на сам плагин в каталоге
выдает
Error: 404
avatar
Ставил livestreet с нуля. И на чистый двиг ставил, все равно такая ошибка
avatar
Ошибка исправлена. Пожалуйста, подождите обновления плагина в каталоге и переустановите его.
avatar
Можно сделать так что бы любой пользователь смог отметить место?
  • Guf
  • 0
avatar
Можно все, возможно, в будущих версиях. Пока ожидаю пожеланий, Ваше приму на заметку.
avatar
Спасибо за плагин, всё работает на отлично :)
avatar
А можно примеры? Интересно, кто что делает )
avatar
avatar
хотел добавить:
Думаю лучше бы было в файлике main_menu.tpl написать вот так:
<li {if $sAction=='map'}class="active"{/if}><a href="{router page='map'}" >кнопка</a> {if $unreadTopics}({$unreadTopics}){/if}</li>
avatar
упс
{if $unreadTopics}({$unreadTopics}) — это нужно убрать )
avatar
Да, действительно. Так правильней.
avatar
Поставил плагин на www.smsrostov.ru/map/ и сделал некоторые фичи сам:

1. Добавление точки пользователем (форма). PHP.
2. Инструмент «Координаты» для определения юзером геогр.точек любого объекта. jQuery+API.
4. Определение геогр.адреса при вводе в строку. jQuery+API.
3. Сделал подсчет маркеров в категории. jQuery
avatar
Вот, отлично :) Оформите это дополнение как отдельный плагин с блоком добавления маркера — все будут благодарны :)
avatar
Времени нет разбираться с плагинами и писать их. Вообще дока на написание плагинов где находится?
avatar
как раз про плагины там ничего и нет trac.lsdev.ru/livestreet/wiki/DeveloperDoc/Plugins
Про все есть: хуки, методы, роутинг, а плагины — нэма
avatar
Сначала в движке разберитесь, а дальше можно посмотреть на другие плагины.
avatar
Это вот к чему?
Собственно говоря пишу скрипты к LS для себя, а не для плагинов и продажи. А народ просил оформить в виде плагинов. Такие дела.
avatar
Поставил плагин. Пытаюсь зайти на «карту», пишет
Неправильный ключ
avatar
Получить ключ можно здесь: http://api.yandex.ru/maps/form.xml
avatar
Инструкцию читали? Если да то Вам сюда api.yandex.ru/maps/
Ну а если выдает такую ошибку значит действительно неправильно введен ключ…
avatar
Сорри за невнимательность.
avatar
/map/admin/ — сюда зайдите и настротей плагин
ключ получите здесь api.yandex.ru/maps/form.xml
avatar
Спасибо за плагин, работает на отлично. Вот что получилось: http://games.elcity.ru/map/ (список клубов постепенно заполню)
avatar
Мой город плохо прорисован в Яндексе :( А можно ли такое же собрать на гугле?
avatar
Да, планирую сделать выбор карты яндекс/гугл…
Но в их API есть некоторые различия, поэтому когда будет готово не скажу.
avatar
+1 очень хотелось бы google версию
avatar
Вопрос: так как добавляемые точки планируются в разных городах (странах), можно как-то сделать, чтобы сначала выбирался город, а потом уже точки?.. Как такое можно реализовать?
avatar
Пока что в плагине это не реализовано, но если очень нужно, можете добавить на страничку с картой блок с выбором города со следующим содержимым (или похожим):
<ul>
	<li><a href="#" onClick="YMaps.jQuery(function () {globalmap.setCenter(new YMaps.GeoPoint(30.522988,50.450767), 11);})">Незалежна</a></li>
	<li><a href="#" onClick="YMaps.jQuery(function () {globalmap.setCenter(new YMaps.GeoPoint(37.611965,55.747982), 11);})">Нерезиновая</a></li>
	<li><a href="#" onClick="YMaps.jQuery(function () {globalmap.setCenter(new YMaps.GeoPoint(-77.116504,38.836901), 11);})">Буржуляндия</a></li>
</ul>

Здесь GeoPoint(-77.116504,38.836901) — координаты центра города, 11 — высота над картой. Вот, посмотрите, что вышло у меня у меня
avatar
Хотел сегодня написать насчет выбора городов, а тут уже почти и готово :)
avatar
Подскажите как создать блок?
avatar
Выдаёт ошибку yfrog.com/5588048638p — помоему ему не нравится кодиролвка?
И не отображаются блоки справа, соответственно и маркеры тоже. В чём проблема?
avatar
у вас в самом начале лишний знак,
кодировка должна быть UTF без Boom
avatar
Только в файлах шаблона нужно менять кодировку или ещё где-то?
avatar
И где именно лишний знак? понял какой, но не понял где)
avatar
Вот что показывает view-source:http://metroboy.ru/buildmap/ в Хроме:
....<?xml version="1.0" encoding="utf-8"?> 
<ymaps:ymaps xmlns:ymaps="http://maps.yandex.ru/ymaps/1.x"

Т.е. у Вас почему-то генерируется 4 пробела перед строкой <?xml version=«1.0», что есть неверно для синтаксиса xml.
avatar
и как решить эту проблему?
avatar
И все же, я понял что ошибка в пробелах. buildymap.tpl пересохранил в utf-8 без BoM, результата нету. Кто подскажет?

Моя ошибка
Ошибка синтаксического анализа XML: некорректно
Адрес: http://autoclub-strogino.ru/buildmap/
Строка 1, символ 2:
avatar
Координаты ценра карты — долгота, широта (По умолчанию 12.123456,12.123456): — где берутся другие координаты или эти по умолчанию? И еще — у меня плагин работает, API-ключ установил, но карта не отображается.
avatar
Координаты можно получить на Яндекс.Картах, например, с помощью инструмента «Получить информацию» в левом верхнем углу.
Насчет не работает, напишите сюда или в личку Ваш ресурс, попробуем разобраться…
avatar
Прописал координаты, но вот как это выглядит
avatar
Кроме добавления метки обязательно нужно создать категорию. А после добавить метку в категорию. Вид маркера на карте задается именно значком категории.
avatar
Не отображается у меня карта. Что-то я делаю не так…
avatar
В общем случает, на локалхосте Яндекс.Карты работать будут если ты зарегишь ключ для домена dev.yousite и на таком будешь работать.
Иногда на локалхосте выскакивает ошибка «server responded 404» при YMapsML — тогда надо переносить на удален.сервер.
avatar
У тебя, если задействовать Я.Карты, в добавлении нового маркера перепутаны местами Широта и Долгота.
Первой должна идти Долгота, потом ниже Широта (как на Я.Картах при в инст-те «Получить информацию»).

Когда добавлял свои точки, не мог понять где они: вместо Ростова-на-Дону оказались в Азербайджане.

Спасибо за плагин.
avatar
avatar
Возможно, будет интересно, если добавить возможность скрестить плагин с плагином определения города пользователя. Пользователь заходит и ему сразу открывается его город.
  • OFF
  • 0
avatar
Подскажите как задать тип карты выводимый по-умолчанию? Сейчас стоит «Схема» (MAP) а мне нужен «Гибрид» (HYBRID). Где покопаться? сам не нашел.
avatar
В файле /plugins/ymap/templates/skin/default/actions/ActionYmap/map.tpl после 15 строки добавьте строку
map.setType(YMaps.MapType.HYBRID);
avatar
Спасибо, работает! Жаль что в админке не выводится маленькая карта чтобы можно было одним кликом отметить место и заполнить координаты автоматом. Но для начала вполне себе отличный и нужный плагин.
avatar
  • mutt
  • 0
avatar
Здравствуйте! Помогите пожалуйста!!! Тестирую плагин на локалке. Поставил карту гугл. Создал категорию маркера с иконкой, а также сам маркер. Но на карте эти маркеры не отображаются :(
Также, подскажите пожалуйста как в гугле брать точные координаты на здания? Пробовал из Google Earth но все равно точно не попадаю на нужный объект. Буду очень признателен.
avatar
Здравствуйте.
К сожалению, политика провайдеров карт такова, что генерируемая карта должна быть доступна публично, в интернете.
На локалке тестировать не получится.
Что касается точных координат, попробуйте maps.google.ru/
Правой кнопкой на карте -> Что тут находится? — в строке запроса появляются точные координаты.
avatar
на wikimapia.com в левом нижнем углу карты можно узнать координаты «прицела»
avatar
я правильно понимаю, что это нечто подобное только с админкой и поиском?
avatar
Да, верно.
avatar
здОрово, намного удобней, чем мой вариант
спасибо за труды
avatar
отличный плагин. автору спасибо.

Вопрос: http://blog.mytaganrog.ru/map/ установилось все гладко. настроил первую запись, но не отображается на карте. где допустил ошибку?
avatar
Ваша запись отображается, но в районе Ирана :)
Вы неправильно указали координаты.
avatar
действительно ) нелепость вышла ) что то значит с координатой не ровно стало. поковыряю ) благодарствую! а компонент действительно интересный! спасибо за труд!
avatar
в общем то весь косячек заключался в том, что надо в коде местами долготу и широту было переставить.
avatar
Указал автору об этом выше. На самом деле надписи к полям надо поменять местами, ибо в Я.Картах идет так:

Координаты:
Долгота: 39°42′45.42″ в. д. (39.712618)
Широта: 47°14′8.48″ с. ш. (47.235689)
avatar
еще вопрос. где настроить, что бы по умолчанию ссылки на категории были не активны?
avatar
Поддерживаю вопрос
avatar
Неплохо было бы сделать, чтобы если картинки для маркера нет, в баллуне она вообще не отображалась. Иначе — незагруж.картинка идет.
avatar
Уже это реализовал на уровне sql-запроса.
avatar
Делаю сейчас добавление маркеров анонимусами с сайта и нашел бааааальшой недочет: у тебя в таблицу ls_ymap в поле marker_cat записывается название(!) категории в виде стринга, а не ее id из справочника ls_ymapcat.cat_id. Отсюда трабл: при изменении имени категории ls_ymapcat.cat_name, возможно, все маркеры со старым именем надо будет переименовывать под новую категорию.

Переделай везде, пожалуйста.
avatar
Хочу вбить много маркеров, но не через интерфейс. Можно ли сделать запросом к базе. Помогите с запросом, например, импорта 2 маркеров.
avatar
Держи:

$query="INSERT INTO ls_ymap SET marker_name='".$marker."', marker_latitude='".$longitude."', marker_longitude='".$latitude."', marker_cat='".$catName."', marker_address='".$address."', marker_image='".$image."', marker_active='0' ";
avatar
я наверно добью афтара новым траблом
но все же)

поставил версию с яндексом

проблема: на карте отображается маркер последней добавленной категории, хотя в настройках маркера стоит другая категория

вопрос/пожелание: можно ли добавить в баллуне место и поле в настройках для описания объекта? Поясню, в одном здании может быть несколько магазинов и тд — торговый центр. Если писать в названии, то баллун получается длинным. Описание нужно для удобства поиска по конкретным запросам, да и просто, чтобы понять, что там находится.

вопрос/пожелание2: можно ли увеличить картинку в баллуне, на таком размере ничего не раглядишь. зачем тогда там фотка=(

Идеальный для меня вид — это такой, как у меня сделано на картах гугла — vidnoegorod.ru/page/karta/. Также там можно выставлять маркеры вручную, а не координатами, что, конечно, геморой, но для нужного функционала поиска, можно и потерпеть.

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

Надеюсь, на разъяснение хотя бы по проблеме, про другое могу только мечтать+)
avatar
Приветствую!
Траблы и пожелания записываются, не волнуйтесь :)
Что касается Вашей проблемы, тут я без непосредственно ресурса Вашего сказать затрудняюсь.
avatar
Скажите, будет ли реализация подкатегорий маркеров и как по умолчанию сделать категории маркеров неактивными?
avatar
Насчет подкатегорий не уверен. А насчет неактивных по умолчанию, то для версии 0.1.4 в файле
/plugins/ymap/templates/skin/default/actions/ActionYmap/map.tpl

нужно поменять местами строки 55
map.addOverlay(group);
и 57
map.removeOverlay(group);
а также удалить строку 65
map.addOverlay(group);
avatar
Спасибо, но уже сделал. Только в 65 строке вместо add поставил remove.

Не знаю как решить проблему с огромным списком категорий. Какой-нибудь спойлер, но как разбить список на группы? И кстати как отсортировать группы, они ведь выводятся в той последовательности как их забивали?
avatar
Да, лучший способ, конечно, сделать подкатегории… Но пока его нет, подумайте, возможно, список категорий можно вывести облаком тегов или расположить его на странице под картой, горизонтально.
avatar
Тогда еще вопрос, если не сложно.) Можно ли в шаблоне выводить не автоматом список категорий, а прописать вручную каждую категорию?
avatar
Не совсем понял вопрос. Вы хотите, чтобы не все категории выводились в меню? Тогда для чего их создавать?:)
avatar
Объясню. Сейчас нет сортировки категорий и возможности группировки. Я хотел в шаблоне вручную вставить список категорий в том порядке и с той группировкой которая мне необходима.
function addMenuItem(group, map, menuContainer) {
            YMaps.jQuery("<ul style='width:280px'><li style='float:left;width:130px;padding-right:10px'><img width=24 style='margin-bottom:-10px;padding-right:6px' src=\"http:" + group.description + " \"/>" + "<a  href=\"#\">" + group.name + "</a></li></ul>")
                .bind("click", function () {
                    var link = YMaps.jQuery(this);
                    if (link.hasClass("active")) {
                        map.removeOverlay(group);
                    } else {
                        map.addOverlay(group);
                    }
                    link.toggleClass("active");
                    return false;
                })
                .appendTo(
                    YMaps.jQuery("<li ></li>").appendTo(menuContainer)
                )
				
        };


Я так понимаю здесь задан шаблон элемента списка, а потом все существующие категории выводятся автоматом. Могу я убрать вставку автоматом и прописать вывод каждой категории вручную?
avatar
Ну, можно придумать что-то вроде этого, хотя это и костыль :)
YMaps.Events.observe(ml, ml.Events.Load, function (ml) {
			
				ml.get(0).forEach(function (group) {
				
if (group.name == "Название первой категории" ) {				addMenuItem(group, map, YMaps.jQuery("#menu"));
}
if (group.name == "Название второй категории" ) {				addMenuItem(group, map, YMaps.jQuery("#menu"));
}				
                });
            });
avatar
Извините, а куда это вставлять?
avatar
В том же файле, вместо
YMaps.Events.observe(ml, ml.Events.Load, function (ml) {
			
				ml.get(0).forEach(function (group) {
				
					addMenuItem(group, map, YMaps.jQuery("#menu"));
				
                });
            });
avatar
Все работает, но порядок категорий все равно в порядке забивания
avatar
Проблема в том, что опять же они все вставляются в один и тот же список. В общем, ничего не изменилось за исключением возможности убрать из списка некоторые категории. Вопрос остается в силе.
avatar
Кстати, у Вас на сайте города Сумы при загрузке страницы маркеры неактивны
avatar
день добрый
ресурс все тот же
вот так выглядит проблема vidnoegorod.ru/map/
avatar
Ясно. Все поля в категории обязательны для заполнения. Имя стиля в том числе, латиницей, без пробелов.
avatar
+)) только что пришел к этому заключению
но спасибо за скорый отклик
avatar
проблема: на карте отображается маркер последней добавленной категории, хотя в настройках маркера стоит другая категория
«Это не глюк, это фича.»

Надо для каждой категории в админке прописать стиль (типа «wifi»), иначе в генерируемом файле маркеров YMapsML (plugins\ymap\templates\skin\default\actions\ActionYmap\map.tpl, строка №12
var ml = new YMaps.YMapsML("{/literal}{cfg name='path.root.web'}{literal}/buildmap/");

)
стили одни и те же, а должны различаться. Я когда понял — прописал, все ок. См. на www.smsrostov.ru/map/
avatar
картинки большого размера и длинный заголовок

открываем файл /plugins/ymap/templates/skin/default/actions/ActionBuildymap/buildymap.tpl

и правим код таблицы после
<div style="font-size:12px;">


на такой вариант

<table style="padding: 0; margin: 0;" width="450">
					<tbody>
						<tr >
						<td >
						<div>
						<img style="margin:0; padding:0; border: solid 2px #dddddd;" width="250"  src="http:$[metaDataProperty.AnyMetaData.img]"/>
						</div>
						</td>
						<td>
						<div style="color:blue;font-weight:bold">$[name]</div><бр>
						<div>Адрес: $[metaDataProperty.AnyMetaData.address]</div><бр>
						<div>Телефон: $[metaDataProperty.AnyMetaData.phone]</div><бр>
						<a href="http:$[metaDataProperty.AnyMetaData.link]" target="_blank">Подробнее</a>
						</td>
						</tr>
					</tbody>
					</table>

фак, парсер опять съел тэги <бр>, написал их выше русскими, не забудьте поменять

Результат можно посмотреть здесь vidnoegorod.ru/map/

Вопрос к знающим, чет у меня не получается.
Как сделать отступ справа от картинки для второго столбца, когда заголовок длинный.
avatar
Дополнение: при выводе категорий хотелось бы выводить и счетчик маркеров в категории.
avatar
Как в map.tpl аналогично group.name вывести название стиля группы. group.stylename не работает!?
avatar
Поставили карту, ввели api, добавили категории на карту. Карта отбражается — все отлично, только в правой колонке где должны быть категории появляется ошибка: Parse error: syntax error, unexpected T_STRING in ...www/plugins/ymap/classes/blocks/BlockCatblock.class.php on line 1
Подскажите в чем может быть проблема?
avatar
Т.к. парсится xml средствами jQuery, вероятно категории содержат спецсимволы типа &, %, + и проч. У было подобное из-за названия с "&".
avatar
Без создания категорий тоже этаже ошибка…
avatar
А зачем в заблуждение вводишь,
добавили категории на карту.… появляется ошибка
. Получается, что не после добавления.

При незаполненных категориях таже самая ошибка? Эта ошибка выскакивала прямо после установки плагина? Если да — переустанови плагин, если нет — вспомни точно какие ты действия производил, и после каких действий началась ошибка.
avatar
1. Установил плагин ввел api — сразу появилась эта ошибка. Действий никаких в коде не делал.
2. Добавили категории на карту. Та же ошибка.

Удалил плагин, залил заного, та же ошибка
avatar
Ну вот видишь: все становится ясно после переустановки плагина — он тут не причем. Траблы либо в сборке LS, либо в таблицах.
avatar
Переставил LS. Ошибка выдается снова. Хотел поинтересоваться, какие модули php необходи для корректоной работы?
avatar
Проблема с хостингом была… на другой перешёл всё работает как надо
комментарий был удален
avatar
Спасибо. Попробую поставить, если всё будет гладко или не гладко отпишусь!
avatar
Чтобы выводить количество маркеров в группе, достаточно поставить group.length() внутри функции формирования групп addMenuItem() в строке:

YMaps.jQuery("<table><tbody><tr><td><img src=\"http:" + group.description + " \"/></td>" + "<td ><a href=\"#\">" + group.name + "</a> ["+ <b>group.length(</b>) +"]</td></tr></tbody></table>")


Работающий пример есть на сайте www.smsrostov.ru/map/

Вообще, т.к. маркеры загружаются функцией var ml = new YMaps.YMapsML() api.yandex.ru/maps/jsapi/doc/dg/concepts/ymapsml.xml то при проходе в цикле всех групп YMaps.Group можно использовать методы групп api.yandex.ru/maps/jsapi/doc/ref/reference/ymapsml.xml внутри нашей функции function addMenuItem(group, map, menuContainer), куда и передается группа.
avatar
Было бы супер доработать плагин следующим образом:
1. Возможность сортировки разделов.
2. Создать каталогизатор. Раздел / Подраздел. Шикарное решение для городских блогов.
3. Дополнить возможностью обычного пользователя устанавливать метки с предмодерацией. После которой админ решает публиковать, или нет метку. Существенно ускорит процесс заполнения карты.
avatar
1. Возможность сортировки разделов.
Легко делается через БД и таблицу

3. Дополнить возможностью обычного пользователя устанавливать метки с предмодерацией.
Я сделал такое у себя — осталось прикрутить это в плагин.
avatar
не появилась возможности добавления пользователем мест?
avatar
Давно сделал в виде скрипта у себя www.smsrostov.ru/map/. До плагина руки/время/желание не доходит.
avatar
Замечательнейшая штука! Спасибо, но есть вопрос… Я наметил все интересующие меня объекты в пределах Москвы. Они прекрасно отображаются на карте. Теперь мне хочется сделать тоже самое для Питера. Как быть? Каким образом разделить карты? Чтобы была отдельно московская. отдельно питерская и т.д. Извините за чайниковский вопрос :)
avatar
Странная штука в error_log появляется:

[Thu Jan 27 16:17:32 2011] [error] [client 77.66.212.120] PHP Fatal error: Uncaught exception 'Exception' with message 'Can not find the template: actions/ActionYmap/pic.tpl' in /home/activetechru/data/www/smsrostov.ru/engine/modules/viewer/Viewer.class.php:301\nStack trace:\n#0 [internal function]: ModuleViewer->Display('actions/ActionY...')\n#1 /home/activetechru/data/www/smsrostov.ru/engine/classes/Engine.class.php(348): call_user_func_array(Array, Array)\n#2 /home/activetechru/data/www/smsrostov.ru/engine/classes/Router.class.php(360): Engine->_CallModule('Viewer_Display', Array)\n#3 /home/activetechru/data/www/smsrostov.ru/engine/classes/Router.class.php(70): Router->__call('Viewer_Display', Array)\n#4 /home/activetechru/data/www/smsrostov.ru/engine/classes/Router.class.php(70): Router->Viewer_Display('actions/ActionY...')\n#5 /home/activetechru/data/www/smsrostov.ru/index.php(34): Router->Exec()\n#6 {main}\n thrown in /home/activetechru/data/www/smsrostov.ru/engine/modules/viewer/Viewer.class.php on line 301, referer: www.smsrostov.ru/map/

Автор, откуда у тебя запрашивается шаблон actions/ActionYmap/pic.tpl?
avatar
Подскажите, пожалуйста, чё делать или где копать… При загрузки карт возникает ошибка:

При загрузке данных произошла ошибка: :3: parser error: XML declaration allowed only at the start of the document
<?xml version=«1.0» encoding=«utf-8»?>
^
Url: site.ru/buildmap/
avatar
Копать надо где-то в XML, который генерит твои метки. Генератор там нормальный, рабочий — отсюда следует, что траблы могут быть в имени меток или имени каталогов разделов. Посмотри их на наличие спец.символов &'` и проч.
avatar
Где нужно подправить, чтобы выпадающие результаты при поиске по объектам, были прямо под полем ввода, сейчас они левее и у меня даже немного обрезаются из-за настроек скина.
avatar
Результаты выпадают в div под названием jsonSuggestResults.

Стиль для него прописан в \plugins\ymap\templates\skin\default\css\jsonSuggest.css, но там нет тех параметров, что выводятся в результат
style="width: 250px; overflow-x: auto; overflow-y: auto; top: 21px; left: 104px; display: block; height: auto; "


Попробуй поменять css-стили в jsonSuggest.css.
avatar
От себя добавлю, что было бы не плохо, для некоторых сообществ, чтобы в плагине была такая возможность, чтобы каждый юзверь мог указать себя на карте, и после этого сделать поиск людей находящихся рядом, с выводом примерного километража =)
Где-то я такую фишку на сайте знакомств видела, возможно на mamba…
avatar
О подобном писали на habrahabr.ru/blogs/i_am_advertising/68552/
Там есть алгоритм.
avatar
Внезапно. Карты перестали отображаться в Opera 11, FF, а в Хроме выводятся. У кого-то подобное замечено?
avatar
Пофиксил, обновив API Я.Карт
avatar
Как сделать чтобы карта отображалась на главной странице сайта?
avatar
Так же как и любую другую static-страницу: просто указать это в конфиге.
avatar
Доработал свой скрипт: на отдельной странице выводятся все маркеры по категориям — www.smsrostov.ru/maplist/
Это полезно для тех, кто, к примеру с планшета/смартфона без JS, заходит на сайт и хочет посмотреть вашу карту/маркеры.

По сути дела, это даже не доработка самого плагина: откуда брать xml-файл маркеров мы знаем, как его парсить знаем (библиотека class_xml.inc.php), функция xml2array отрабатывает на «Ура», в итоге два цикла и несколько обращений к массиву. Неудобно только, что надо для обращения к содержимому тегов составлять длинную адресацию, типа
$channel['ymaps:ymaps']['ymaps:GeoObjectCollection']['gml:featureMembers']['ymaps:GeoObjectCollection']
avatar
Прикручиваю к плагину кнопку с Geolocation API для определения текущего местонахождения посетителя.
avatar
Сделал для плагина геолокацию на основе API Я.Карты — определение местонахождения посетителя.
Пример на www.smsrostov.ru/map/ — кнопка "Где я?". Испытайте сами, ибо у меня погрешность составляет порядка 200 м. Работает пока в Opera Mobile (Android), Opera 11, Chrome, FF, в IE какой-то баг.



Все делается через объект YMaps.location api.yandex.ru/maps/jsapi/doc/dg/concepts/geotargeting.xml и практически весь кусок кода взят из Клуба разрабов ymapsapi.ya.ru/replies.xml?item_no=23 Пример у них есть на api.yandex.ru/maps/tools/getlonglat/

Чтобы подключить все доп-е кнопки и слои, помимо того что есть в ориг.плагине, пришлось в шаблон плагина \plugins\ymap\templates\skin\default\actions\ActionYmap\map.tpl в конце добавить вызов своего js-скрипта:

<script type="text/javascript" src="*****/script_ymaps.js"></script>

{include file='footer.tpl'}

Мой же script_ymaps.js имеет примерно такой вид:


/* ------ Yandex.Maps ------ */

YMaps.jQuery(function () {
	globalmap.setCenter(new YMaps.GeoPoint(39.716448,47.227158), 14);

	...

	var toolBar = new YMaps.ToolBar(new YMaps.ToolBar.MoveButton(), new YMaps.ToolBar.RulerButton());
	toolBar.add(buttonInformation);
	toolBar.add(new GeolocatorButton());
	globalmap.addControl(toolBar);

	...
});

	// Реализует наследование прототипа без исполнения конструктора родителя
        // Подробнее о наследовании: http://javascript.ru/tutorial/object/inheritance
        function extend (child, parent) {
	...
	};

Со слов "// Реализует наследование прототипа без исполнения конструктора родителя" идет кусок кода из примера ymaps.narod2.ru/examples/geolocationapi.html.

На планшетниках и смартфонах вылез баг маленького экрана Я.Карт: мои доп-е кнопки залезали под строку поиска объектов. Пришлось в шаблоне плагина \plugins\ymap\templates\skin\default\actions\ActionYmap\map.tpl ее переместить в нижний левый угол и сделать минимальной длины в 200px:

map.addControl(new YMaps.SearchControl({width:200}), new YMaps.ControlPosition(YMaps.ControlPosition.BOTTOM_LEFT, new YMaps.Point(10, 20)) );


Была еще идея сразу при открытии страницы запрашивать местоположение посетителя, но от нее пока отказался, ибо у многих неопытных пользователей вызывает ступор: либо браузер выдает предупреждение, которого они ни разу не видели и не знают что делать, либо они сразу пугаются такого предупреждения.
avatar
Скажите возможно ли включить в плагин карты Openstreetmap?
avatar
Я такого не пробовал, да и разработчик о таком не сообщал.
avatar
Я обращался дважды к разработчику в личку, но ответа не дождался. Может Вы попробуете? Можно как то вас заинтересовать?
avatar
Да, он последнее время как-то молчит.
Насчет разработки под тебя: я пишу чисто для себя на PHP, мануалы по плагинам LS, не читал из-за ненадобности. Под твои задачи могу писать — давай перенесем обсуждение в личку.
avatar
Сделал апгрейд: если картинки для маркета нет в бд-таблице, то выводится заглушка (а не без src) в виде серой картинки.
Выполнено на уровне SQL-запроса в plugins\ymap\classes\modules\ymap\mapper\Ymap.mapper.class.php:

В стр. №69 добавил условие в sql-запрос:

*, IF(marker_image='','www.smsrostov.ru/templates/skin/new/images/avatar_blog_48x48.gif',marker_image) AS marker_image

Результат: на www.smsrostov.ru/map/
avatar
И еще запамятовал: кроме того, пару недель назад, из-за того что на Я.Картах не везде указана топонимика городов, к своей карте бесплатных wi-fi подключил отдельный слой «Народной карты Яндекс» (последние пункты «Схема» и «Гибрид») — www.smsrostov.ru/blog/smsrostov/2442.html

Вот к примеру, Батайск с улицами. Прекрасно? Удобно? Даааа.

avatar
Прикрутил в YMapsML-шаблон меток панорамы каждой метки на карте. Пока, до тех пор пока в API Я.Карт не подключили сами панорамы, просто в виде ссылок. Шаблон buildymap.tpl чуть-чуть изменил.

К сожалению, у Я. непростая защита, и прямой вызов флеша для панорам типа maps.yandex.ru/resources/streetview/2.x/sv-player10.swf?2.5.4&l=stv&ol=stv&oll=39.719645,47.229456&source=wizgeo ничего не дает :(
Может кто-то уже Я.панорамы вставлял в какой-нить сайт, подскажите как?

Пример, снова есть на www.smsrostov.ru/map/ на любой метке.
avatar
Да и в дополнение: хотел сделать вывод панорамы во всплывающем поверх контента окне (к примеру, исп-я библиотеку highslide highslide.com/#examples через iframe), но вызываемое окно Я.Карт само себя открывает в новом окне :(
avatar
помогите реализовать вывод в сайд баре список всех мест из активной категории + поиск соотв. метки на карте, по нажатии на ссылку из списка :)
avatar
Я ж тебе в личке написал: Насчет доработки: я попробую, если получится — покажу как.
avatar
планируется обновление до 0.5.1?
avatar
уже надо обновляться до 1.0.1
avatar
как войти в админку, для настройки
avatar
вроде так sait.ru/map/admin
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.