Яндекс.Карта на Вашем сайте с возможностью добавления меток пользователями – Продолжение.

Автор: | 28.07.2009

Я продолжаю тему начатую в заметке "Яндекс.Карта на Вашем сайте с возможностью добавления меток пользователями".

Здесь я расскажу, как организовать вывод меток введенных пользователями на карту.

Возьмем готовый пример из заметки "Продолжаем работать с маркерами используя API Яндекс.Карт" пример: http://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.

Пример работы.

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

Яндекс.Карта на Вашем сайте с возможностью добавления меток пользователями – Продолжение.: 10 комментариев

  1. Рафаиль

    Все супер!крласс!!!! у меня есть вопрос можем ли мы ограничивать доступ. например метки могут добавляить только зарегистрированные пользователи или только админы. спасибо!

  2. Пашок

    Рафаиль, всё зависит от того, на какой стадии у тебя находится реализация работы с пользователями. 😉

  3. Alex

    Здравсвтуйте.

    Есть ошибка с которой я справится не могу, если сможете помогите.
    ВОт адрес, я думаю вы всё поймете 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);

    КАК ЭТО ИСПРАВИТЬ???

  4. Дмитрий

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

  5. Алекс

    можешь скинуть на электронку все файлы для создания примера с занесением меток. что-то у меня не получается сделать такой трюк с метками.

  6. T1k0

    Пример работы «http://webmap-blog.ru/examples/vivid_mappoint.php» не работает.

  7. Alex Povolotsky

    Я бы передавал координаты по-другому. Без ненужного парсинга и с большей точностью

    +’ ‘
    +’ ‘

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

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