Клуб API Карт

Изменить параметры например ZOOM

sergei.murko
22 ноября 2013, 14:12

Создал карту, все отвешал, а вот сменить параметр zoom например на small не могу!
использовал 2.1b

var myMap,
            defaultMapOptions = {
                center: [55.751574, 37.573856],
                zoom: 9,
                controls:['zoomControl', 'searchControl','geolocationControl','fullscreenControl']
            },
            createMap = function (options) {
                return new ymaps.Map('xxx', options);
            },
            onSuccess = function (res) {
                var geoObject = res.geoObjects.get(0),
                    mapOptions = geoObject && { bounds: geoObject.properties.get('boundedBy') };

                myMap = createMap(mapOptions || defaultMapOptions);
            },
            onFail = function (err) {
                if(console) {
                    console.log(err);
                }
                myMap = createMap(defaultMapOptions);
            };

То есть тут я должен написать код изменения зума!
Но строки подобные control.ZoomControl({size: 'small'});

И еще вопросик как вызвать событие geolocationControl? Чтоб после создания карты показывалось местоположения)

11 комментариев
Подписаться на комментарии к посту
Пока что можете добавить контрол отдельно, например, в onSuccess дописать:
myMap.controls.add('zoomControl', {size: 'small'});

В скором времени у менеджера появится метод get, который позволит получить экземпляр контрола из менеджера.

По контролу геолокации: для геолокации есть ymaps.geolocation.
ymaps.geolocation.get().then(function (res) {
    myMap.setCenter(res.geoObjects.get(0).geometry.getCoordinates());
})
Вызвать хотя бы это событие реально? Например через jquery!
Пробывал $("ymaps").trigger('click') = но как привязатся я так и не понял!

Вы можете изменить масштаб с помощью метода setZoom карты.

Например, так:

myMap.setZoom(myMap.getZoom() + 1);

Привет Бабушка-Бэтмен) Мне нужно изменить тип кнопок) На маленькие)

Просто тогда причем тут событие?

Удали 'zoomControl' из списка controls
И создавай его в методе createMap
            createMap = function (options) {
                var map = new ymaps.Map('xxx', options);                map.controls.add('zoomControl', {size: 'small'});                return map;
            },
Я сделал smallMapDefaultSet! Но тогда появляются слои(
через jQuery—нет. Чтобы вызвать событие, нужно иметь ссылку на инстанцированный контрол и у его менеджера событий вызвать метод fire. Что-то вроде:

var geoLocation = new ymaps.control.GeoLocation();
myMap.controls.add(geoLocation);
geoLocation.events.fire('click');
спасибо
    var geoLocation = new ymaps.control.GeolocationControl;
    myMap.controls.add(geoLocation);
    setTimeout(function(){
        geoLocation.events.fire('click');
    }, 3000);

Перепробывал! Не катит! Вроде все верно!

не срабатывает! проблема актуальна!

var geoLocation = new ymaps.control.GeolocationControl;

myMap.controls.add(geoLocation);

geoLocation.events.fire('click');