Клуб API Карт

Помогите решить проблему, с добавление карты на сайт

GetOnTop
15 января 2010, 19:10

Здравствуйте, ув. участники клуба.

Помогите решить проблему.


Мне надо чтобы когда подставлялось название, показывалась карта.


вот код (но он почемуто не работает, показывает место для карты, но пустое ничего нет).

Подскажие где ошибка ?


 <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('Москва', {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>

16 комментариев
Подписаться на комментарии к посту
Правильно ли я понял, что вы хотите отображать карту после окончания поиска?

Для этого лучше воспользоваться загрузкой карты по требованию, а также посмотрите пример инициализации карты по требованию.

Если возникнут еще вопросы - пишите. Постараюсь помочь.
Комментарий удалён
jQuery доступен в API только в линейки 1.1. Подключите версию 1.1 и карта должна отобразиться.
не понимаю. подскажите подробней пожалуйста.
если можно примероом. или конкретней.
спасибо
без 180)

Т. е. должно быть:
Спасибо огромное!
все заработало!
А еще вопрос небольшой :)
карта то работает )
только указателя нету )
открывается без стрелочки на дом.
как исправить?)
Вы не добавили метку. Код обработчика нужно изменить, например, вот так:
// По завершению геокодирования инициализируем карту первым результатом
YMaps.Events.observe(geocoder, geocoder.Events.Load, function (geocoder) {
    if (geocoder.length()) {
        var geoResult = geocoder.get(0);
        map.addOverlaay(geoResult);
        map.setBounds(geoResult.getBounds());
    }
});
попробовал не работает :(
и если можно еще подскажте как добавить
слева масштаб... (+________-)
вот как тут метка и как тут масштаб http://les21.ru/contact/
Советую почитать Руководство разработчика, там вы сможете найти ответы на многие ваши вопросы:
http://api.yandex.ru/maps/jsapi/doc/dg/concepts/About.xml
На счет масштаба понял.
а вот с меткой разобраться не могу.
подставляю тот код который выше написан.

Уместо карты серое поле высвечивается.
Подскажите пжлст
Думаю, что этот инструмент вам поможет:
http://api.yandex.ru/maps/tools/constructor/
Спасибо, большое за помощь!
Разобрался сам :) методом научного тыка. )
все получилось!