Я продолжаю тему начатую в заметке "Яндекс.Карта на Вашем сайте с возможностью добавления меток пользователями".
Здесь я расскажу, как организовать вывод меток введенных пользователями на карту.
Возьмем готовый пример из заметки "Продолжаем работать с маркерами используя API Яндекс.Карт" пример: https://webmap-blog.ru/examples/ymap_pr_3.html
Нужно будет изменить изображения значка метки и соответствующие размеры — s.iconStyle.size, s.iconStyle.offset.
В самой верхней строчке пишем код:
<?php include ("config.php"); ?> |
— подключения к базе данных.
После кода добавления элементов управления на карту включаем несколько строк php-скрипта для выборки данных о метках из таблицы mappoint.
<?php $result = mysql_query("SELECT * FROM mappoint"); if(mysql_num_rows($result)>0) { while ($mar = mysql_fetch_array($result)) { ?> |
Далее изменяем код следующим образом:
var point<?php echo $mar['id']; ?> = new YMaps.GeoPoint(<?php echo $mar['cx'], ',', $mar['cy']; ?>); var placemark<?php echo $mar['id']; ?> = new YMaps.Placemark(point<?php echo $ip; ?>, {style: s}); placemark<?php echo $mar['id']; ?>.setBalloonContent('<div style="text-align:center"><strong><?php echo $mar[name]; ?></strong><br><br><?php echo $mar[descriptions]; ?></div>'); map.addOverlay(placemark<?php echo $mar['id']; ?>); |
И добавляем еще немного кода PHP.
<?php } } ?> |
Мы заменили числовые значения, на значения параметров, извлекаемых из базы данных.
Сохраняем данный файл с расширением php.
Чтобы сократить количество используемых файлов, можно объединить файл для ввода пользовательских меток и только что созданный скрипт.
В результате у нас получиться законченное приложение, состоящее из трех файлов.
1. vivid_mappoint.php — ввод пользовательских меток и вывод их на карту;
2. config.php — соединение с базой данных;
3. outpoint.php — добавление парвметров о метках пользователей в базу данных.
Полный код файлов vivid_mappoint.php и outpoint.php.
В следующих заметках мы разберем как реализовать другие способы вывода меток из базы данных на карту, а также ввод данных метки с использованием сервиса геокодирования.
Все супер!крласс!!!! у меня есть вопрос можем ли мы ограничивать доступ. например метки могут добавляить только зарегистрированные пользователи или только админы. спасибо!
Рафаиль, всё зависит от того, на какой стадии у тебя находится реализация работы с пользователями. 😉
Здравсвтуйте.
Есть ошибка с которой я справится не могу, если сможете помогите.
ВОт адрес, я думаю вы всё поймете http://phpforum.ru/index.php?showtopic=24741
Ваш скрипт из этого примера http://webmap-blog.ru/examples/vivid_mappoint.php
тоже сдался, я добавил 3 строчки в самом низу
var point138 = new YMaps.GeoPoint(43.974481,56.284366);
var placemark138 = new YMaps.Placemark(point138, {style: s});
placemark138.setBalloonContent(‘dfgdfgdfgdfggfdgdfgdfgdfgdfgdfgdfg
dfgdfgdfgdfg
dfgdfgdfg
dfgdfgd’);
map.addOverlay(placemark138);
КАК ЭТО ИСПРАВИТЬ???
по e-mail: ugolsergey@gmail.com
У меня почему то не отображаются маркеры на карте в БД они есть в исходном коде тоже а на картах не кажет хотя рисунок и пусть к нему верный
можешь скинуть на электронку все файлы для создания примера с занесением меток. что-то у меня не получается сделать такой трюк с метками.
Пример работы «http://webmap-blog.ru/examples/vivid_mappoint.php» не работает.
Исправил, все работает
пример так и не работает(
Я бы передавал координаты по-другому. Без ненужного парсинга и с большей точностью
+’ ‘
+’ ‘