В этой небольшой заметке я хочу рассказать Вам о нескольких изменениях для улучшения кода примера, рассмотренного в статье «Яндекс.Карта на Вашем сайте с возможностью добавления меток пользователями и вывод по категориям».
Спасибо, читателям блога за оставленные комментарии к упомянутой заметке.
От них я узнал о двух моих недачетах, которые я исправляю.
1. При добавлении данных о метке многострочного описания перестают отображаться все метки данной категории.
Чтобы решить данную проблему необходимо изменить файл vivodpointsmap.php, который формирует файл в формате JSON.
Нужно после строки if($mar[‘type’] == ‘cafe’) {$cattype = "Кафе";}
Добавить следующий код:
$descriptions = str_replace("n", "<br />", $mar['descriptions']); |
Мы заменяем все переводы строк в описании тегом «<br />».
А затем в строке
$json = array(name=>$mar['name'], descriptions=>$mar['descriptions'], type=>$cattype, lat=>$mar['cx'], lng=>$mar['cy']); |
Параметр $mar[‘descriptions’] заменить на $descriptions.
Если Вы формируете ответ через функцию echo, тогда нужно будет изменить строку
$json = $json.'{"name" : "'.$mar['name'].'", "descriptions" : "'.$mar['descriptions'].'", "type":"'.$cattype.'", "lat" : "'.$mar['cx'].'", "lng" : "'.$mar['cy'].'"},'; |
В ней также нужно $mar[‘descriptions’] заменить на $descriptions.
2. Иногда, при добавлении нескольких меток в одну и туже категорию на карте, данные сохранялись в базу два раза.
Здесь ошибка появлялась из-за того, что несколько раз обрабатывалось событие click по кнопке Добавить.
Чтобы этого не происходило нам нужно исправить файл vivodpoints.html.
Сразу после строки
$element.find('#submit').bind('click', function () { |
мы добавляем стоку
$element.find('#submit').unbind('click'); |
Этой строкой мы удаляем привязанное событие click для кнопки Добавить.
Исправленные файлы примера Вы можете загрузить:vivodpointsmap.php или vivodpointsmap_echo.php
Спасибо! Интересно, почему иногда два раза прописывалась метка…
Очень полезно было бы сделать так, чтобы рядом со списком меток в скобочках отображалось сколько их уже поставлено.
Отлично! Не нашел на вашем сайте связки yandex maps + zoo. Не могли бы вы сделать урок о интеграции yandex maps в Zoo (yootheme), ведь по умолчанию там стоит google maps, который содержит в себе мало прорисованных городов России.
По этой ссылке http://joomlaforum.ru/index.php/topic,159618.msg904446.html#msg904446
можно найти данное решение, но в нем плохо отображается балун и нет формы поиска и др… Спасибо.
Здравствуйте. Каким образом можно дать возможность ставить метки лишь зарегистрированным пользователям, а доступ к просмотру карты с метками организовать для всех пользователей.
Огромное спасибо автору за такие интересные решения. Присоединяюсь к вопросу Дмитрия — как разграничить просмотр и редактирование карты разными группами пользователей?
Огромное спасибо за Ваши уроки, все получилось, и даже больше! Сейчас увидел в действии на некоторых сайтах Яндекс карты с панорамированием улиц. Думаю, с какой стороны подходить к решению. Был бы признателен за любую помощь.
Добрый день!
Замечательная работа. Я премного благодарен автору.
У меня только вопрос.
Сделал как написано, все работает, только вот балун показывает квадратики, а где должна быть категория — null.
Ковырялся в настройках кодировки, и в файлах менял, и в базе данных — не помогает.
Что это может быть?
Заранее спасибо.
Вероятно код выводящий данную строку в балуне не в той кодировке. У меня в скриптах и в базе данных используется кодировка UTF-8.
Еще раз проверьте кодировку всех файлов. Сохраните их с помощью программы Notepad++ предварительно выбрав в ней Кодировки-Преобразовать в UTF-8 без BOM.
Статья очень помогла, спасибо
Но остался один вопрос. Можно ли сделать вывод меток одновременно нескольких категорий используя checkbox, как в примеря для карт гугл?
http://webmap-blog.ru/files/gmap/phpsqlinfo_add_vcat.html