Клуб API Карт

Как изменить свойство балуна после обработки результатов Гео-кодера.

sozdanie-saita-spb
7 февраля 2010, 20:53
Подскажите, пожалуйста, как изменить свойство балуна после обработки результатов Гео-кодера. 
Открытие балуна при загрузка, стиль балуна.
Непонятно как обращаться к объекту. Все перепрбовал, не получатся.
<script type="text/javascript">
var map, geoResult;

// Создание обработчика для события window.onLoad
YMaps.jQuery(function () {
// Создание экземпляра карты и его привязка к созданному контейнеру
map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);

// Установка для карты ее центра и масштаба
map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10);


// Добавление элементов управления



// Создание позиций для элемента управления
var topLeftPos = new YMaps.ControlPosition(YMaps.ControlPosition.TOP_LEFT, new YMaps.Size(190, 15)),
topRightPos = new YMaps.ControlPosition(YMaps.ControlPosition.TOP_RIGHT, new YMaps.Size(170, 15)),
scaleLine = new YMaps.ScaleLine(),
curPos = topLeftPos;

// Добавление элементов управления
map.addControl(scaleLine, curPos);
map.addControl(new YMaps.TypeControl(), new YMaps.ControlPosition(YMaps.ControlPosition.TOP_LEFT));
map.addControl(new YMaps.Zoom());
map.addControl(new YMaps.MiniMap(), new YMaps.ControlPosition(YMaps.ControlPosition.TOP_RIGHT));




// Функция для отображения результата геокодирования
// Параметр value - адрес объекта для поиска

// Удаление предыдущего результата поиска
value="Санкт-Петербург,Н- район, Н пр.,32";
map.removeOverlay(geoResult);

// Запуск процесса геокодирования
var geocoder = new YMaps.Geocoder(value, {results: 1, boundedBy: map.getBounds()});

// Создание обработчика для успешного завершения геокодирования
YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
// Если объект был найден, то добавляем его на карту
// и центрируем карту по области обзора найденного объекта
if (this.length()) {
geoResult = this.get(0);
// Создание метки и добавление ее на карту
// var geoResult = new YMaps.Placemark(geoResult, {style: "example#customPoint"});

map.addOverlay(geoResult, {style: "example#customPoint"});
map.setBounds(geoResult.getBounds());

}else {
alert("Ничего не найдено")
}
});

// Процесс геокодирования завершен неудачно
YMaps.Events.observe(geocoder, geocoder.Events.Fault, function (geocoder, error) {
alert("Произошла ошибка: " + error);
})
});
3 комментария
Подписаться на комментарии к посту
var geoResult = new YMaps.Placemark(geoResult.getGeoPoint();
, {style: "example#customPoint"});

лично у меня вот так работает


а можно и сразу выставить стиль результату, это же расширенный Placemark, и поддерживает все его методы, т.е.:
geoResult.setStyle("example#customPoint")
map.addOverlay(geoResult);
Логика Gregofa меня вывела на следующее, все работает.
geoResult.setBalloonContent('Описание');
geoResult.setIconContent('');