Клуб API Карт

Балун с картинкой и текстом заданной шириной

Пост в архиве.
fellyx2008
7 октября 2009, 10:15

Облазил весь форум и не раз прочитал справочник по программному интерфейсу, не могу разрешить один вопрос: Как сделать балун определенной ширины (200пикс), в который я вставил картинку+текст+ссылку?

Сейчас у меня получилось так: http://altayzemlia.ru/2.php/

Использовал сл. код:

 

 <script type="text/javascript"> 

       window.onload = function () {

            var map = new YMaps.Map(document.getElementById("YMapsID"));

            map.setCenter(new YMaps.GeoPoint(85.961155,51.955251), 8);

      map.addControl(new YMaps.TypeControl());

            map.addControl(new YMaps.Zoom(), new YMaps.ControlPosition(YMaps.ControlPosition.TOP_LEFT));

   

    var placemark = new YMaps.Placemark(new YMaps.GeoPoint(85.7,51.7));

    placemark.description = '<img src="/zemeluchastk/lands/y1/mn.jpg" alt="" /><p>У-1. Участок расположен на берегу реки за селом Соузга по дороге как ехать на турбазу "На Шумах", вокруг участка уже действующии турбазы.</p><br><a href="http://altayzemlia.ru/zemeluchastk/detail.php?ID=1126">Подробнее</a>';

map.addOverlay(placemark);    } 

    </script>

 


пробывал другой код: 

map.openBalloon(new YMaps.GeoPoint(85.64, 51.76), '<img src="/zemeluchastk/lands/y1/mn.jpg" alt="" /><p>У-1. Участок расположен на берегу реки за селом Соузга по дороге как ехать на турбазу "На Шумах", вокруг участка уже действующии турбазы.</p><br><a href="http://altayzemlia.ru/zemeluchastk/detail.php?ID=1126">Подробнее</a>', {hasCloseButton:true, maxWidth:200});

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

9 комментариев
Как вариант я бы добавил к маркерам свой обработчик клика и при его обработке показывал бы балун.
для меня это дремучий лес, если можно по подробней, как это сделать? Спасибо.
Смотрите документацию. Описывать как это сделать поподробней это практически сделать. А у меня к сожалению для этого времени нет.
Спасибо.
Может кто знает другие способы решения этой задачи?
С помощью параметров балуна Вы можете настроить максимальную ширину и высоту.
map.openBalloon(new YMaps.GeoPoint(37.64, 55.76), "Содержимое балуна", {maxWidth :50, maxHeight : 100})

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

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

// Создаем шаблон
var template = new YMaps.Template('$[name]>$[description]v>');

// Создаем стиль для содержимого балуна
var style = new YMaps.Style();
style.balloonContentStyle = new YMaps.BalloonContentStyle(template);

// Создадим и применим к метке новый стиль
var placemark = new YMaps.Placemark(map.getCenter(), {style : style});
placemark.name = "Имя объекта";
placemark.description = "Описание объекта";
map.addOverlay(placemark);
Огромное спасибо, все получилось и еще последний маленький вопросик, когда балун свернут (маленький синий) можно ли его пронумеровать, чтобы на нем было видно циферку?
Можно. Для этого нужно изменить содержимое значка метки.

Например,:
var placemark = new YMaps.Placemark(map.getCenter());
placemark.setIconContent(1);
Спасибо!!! Очень мне помогли.