Клуб API Карт

Простейшее отображение адреса

maxpospelov
26 февраля 2011, 15:52

Добрый день. Прошу помощи специалистов.

Задача 
На этой странице отобразить простейщую карту с адресом "Москва, ул.Самокатная, д.1., стр.21"  без кликов, наведений и т.д.

Проблема
1. Карта отображается по клику, а нужно сразу открывать этот адрес. Кручусь вокруг  функции function showAddress (value) но ничего не получается. 
2. Признаюсь, я не кодер. У меня проблемы с синтиаксисом. пробую с ковычками (разными) вместо value подставить адрес, но ничего не получается. Пробовал разные варианты с закрытием ";" но тоже - результата никакого.

Буду очень благодарен гуру, которые подскажут, как в данном случае согласно синтаксису застаить отобразить адрес "Москва, ул.Самокатная, д.1., стр.21"

Код

<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);

            // Добавление элементов управления
            map.addControl(new YMaps.TypeControl());
        });

        // Функция для отображения результата геокодирования
        // Параметр value - адрес объекта для поиска
        function showAddress (value) {
            // Удаление предыдущего результата поиска
            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);
                    map.addOverlay(geoResult);
                    map.setBounds(geoResult.getBounds());
                }else {
                    alert("Ничего не найдено")
                }
            });

            // Процесс геокодирования завершен неудачно
            YMaps.Events.observe(geocoder, geocoder.Events.Fault, function (geocoder, error) {
                alert("Произошла ошибка: " + error);
            })
        }
    </script>
Заранее спасибо!!!
5 комментариев
Подписаться на комментарии к посту

 Добавил вам 2 строчки

открыть балун

geoResult.openBalloon();

и вызов showAdress

 

вызов 

 

        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);            // Добавление элементов управления            map.addControl(new YMaps.TypeControl());                        showAddress('Тюмень');        });        // Функция для отображения результата геокодирования        // Параметр value - адрес объекта для поиска        function showAddress (value) {            // Удаление предыдущего результата поиска            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);                    map.addOverlay(geoResult);                    geoResult.openBalloon();                    map.setBounds(geoResult.getBounds());                }else {                    alert("Ничего не найдено")                }            });            // Процесс геокодирования завершен неудачно            YMaps.Events.observe(geocoder, geocoder.Events.Fault, function (geocoder, error) {                alert("Произошла ошибка: " + error);            })        }

 

Поражает Ваша готовность оказать помощь в любом вопросе. Однако же есть уже готовый пример (очевидно, Вами же сделанный). А кое-кому лень потратить время на поиски.

Имхо, в данном случае не проще ли и не логичнее ли веб-мастеру сделать скрин-шот страницы с картой с открытым балуном и на его основе jpg- или gif-изображение? Можно заодно облегчить вес страницы, которая на указанном сайте долго грузится.

Скриншот нельзя :)

Если нужно изображение с картой, то static api готово придти на помощь)

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