Клуб API Карт

ОГраничение карты в окне определенным координатами

ohranamo
22 октября 2010, 14:48

Народ подскажите... уже сломал всю голову.. Как можно карту в окне ограничеть определенными координатами, чтобы при движении влево право вверх или вниз она доходила только до определенных координат и останавливалась?

Тут у Вас нашел один ответ но к сожалению он мне не помог

Карту ограничеть хотелось бы как на примере вот тут

http://maplos.com/

Спасибо буду очень благодарен

8 комментариев
Подписаться на комментарии к посту
Пример решения данной задачи тут были. Что именно в найденном примере вам не помогло?

Хотя зачем голову ломать?
По событию изменения положения карты проверять не вышли ли за границу и если вышли то не производить смещение.

http://clubs.ya.ru/mapsapi/replies.xml?item_no=12460  вот тут было описано как сделать..
я скопировал текст  по анологии сделал свои координаты... вставил в страницу и у меня ничего не появилось белый экран.. я понимаю что гдето туплю но где е понимаю
Дайте ссылку на вашу страничку.
Саша день добрый

ссылка http://himki.net/map1/

Вот я хотел ограничеть чтобы карта только в этом окне была как щас есть если даже увеличить зумом то справа и слева и снизу и сверху она доходила только до указанных координат
Вы сказали, что пробовали ограничивать bounds, однако я не вижу в коде, чтобы вы это делали.
Можете повторить свои действия? Я попробую локализовать ошибку.
Все очень серьезно. Вы не умеете пользоваться консолью ошибок джаваскрипта. Пока не научитесь будут очень серьезные проблемы с разработкой.
Вы скопировали код не до конца, из-за этого у вас возникла js-ошибка.

missing ; before statement

Для избежания ошибок для начала выравните код, чтобы можно было проконтролировать отсутупы и количество открывающих и закрывающих скобочек. А затем, как посоветовал вам Соломатин Андрей, воспользоваться консолью ошибок для выявления причины неработоспособности скрипта.

Я выравнил ваш код и сразу можно увидеть ошибки (красным помечено то. что нужно удалить; жирным - то, что нужно добавить)

var map,
    geoResult;
                                                                                                                                                                                  
window.onload = function () {

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

    map.setCenter(new YMaps.GeoPoint(37.43,55.90), 14);

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

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

     // создание элемента управления "Пробки"
    var traffic = new YMaps.Traffic.Control();

    // добавление элемента управления "Пробки" на карту
    map.addControl(traffic);

    // включение показа пробок
    traffic.show();

    var strictBounds = new YMaps.GeoBounds(new YMaps.GeoPoint(37.40062,55.885315), new YMaps.GeoPoint(37.491515,55.922924));
    strictMapBounds(map, strictBounds);
})

function strictMapBounds (map, strictBounds) {
    var center = map.getCenter();

    YMaps.Events.observe(map, map.Events.Move, function (map, e) {
        var bounds = map.getBounds(),
            lb = bounds.getLeftBottom(),
            rt = bounds.getRightTop();

        if (!strictBounds.contains(lb) || !strictBounds.contains(rt)) {
            map.setCenter(center);
        } else {
            center = map.getCenter();
        }                                           
    });
}

 
function showAddress (value) {
    map.removeOverlay(geoResult);

    var mysearchBounds = new YMaps.GeoBounds(new YMaps.GeoPoint(37.40062,55.885315), new YMaps.GeoPoint(37.491515,55.922924) );
    var geocoder = new YMaps.Geocoder(value, {boundedBy : mysearchBounds, strictBounds : true});

    YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
        if (this.length()) {
            geoResult = this.get(0);
            map.addOverlay(geoResult);
            map.setBounds(geoResult.getBounds());
            geoResult.openBalloon();
        }else {
            alert("Ничего не найдено")

      }
    });
}

В результате нужно 1 символ удалить и 4 добавить, что не было ошибок. Все не так и сложно ;)