Клуб API Карт

перестала работать кнопка с выходом нового релиза.[реШеНо]

Пост в архиве.
iytin-ne
3 сентября 2012, 15:19

Здравствуйте. на днях заметил у себя баг, не срабатывает кнопка которую я прикручивал, для определения местоположения пользователя. Повставив обратно версию 2.0.14 кнопка работает нормльно а в 2.0.15 выкидает ошибку.

вот код кнопки

 

function razvert(){
                // Создание кнопки определения места.
                button = new ymaps.control.Button({
                    data : {
                        content : '<img src="img/0.png" style="margin-top:6px;"/>',
                        title : 'Поиск местонахождения'
                    }
                });
            // Если кнопка активна, то карта разворачивается во весь экран, иначе - 600x400.
         button.events
         .add('click', function (e) {
         $('#help-visibility').click();
            if(button.isSelected()) {  
                console.log('click');
                if (navigator.geolocation) {
                    navigator.geolocation.getCurrentPosition(
                    function (position) {
                        createGeoI(position.coords.latitude,position.coords.longitude);
                         myMap.zoomRange.get(position.coords.latitude,position.coords.longitude).then(function (range) {//функция для поиска существующего зума
                                if (myMap.getZoom() > range[1] ) {
                                    myMap.setZoom(range[1]);
                                }
                            });
                    });
                }else {
                        alert("Geolocation не поддерживается данным браузером");
                      }
            }
             else {//если кнопка отжата
                        myMap.geoObjects.remove(myPl);
                  }
        });
            // Добавление панели инструментов на карту
            myMap.controls.add(button, { top : 5, left : 98 });
   }
   function createGeoI(lat,longs){//функция установки метки местонахождения
   iflag=[lat,longs];
         myPl= new ymaps.Placemark([lat,longs],
                {
                  hintContent:'Вы находитесь тут!'
                },
                {
                   iconImageHref: 'img/iametka.png', // картинка иконки
                   iconImageSize: [19, 23] // размеры картинки
                });
        // Добавление метки на карту
        myMap.geoObjects.add(myPl); 
                myMap.zoomRange.get([lat,longs]).then(
                    function (range) {//функция для поиска существующего зума
                    range[1]=15;
                    if(range[1]>=15){
                        myMap.setCenter([lat,longs],15,{});
                    }
                    else{
                        myMap.setCenter([lat,longs],range[1],{});
                    }
                });
                myPl.geometry.setCoordinates([lat,longs]);//перемещаем метку в заданые координаты
   }

 вот ссылка на карту http://svadbagolik.cybers.net.ua/index2.php#

 

 

4 комментария

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

Вопрос - почему не выбрана.

Вариант 1 - выставьте опцию selectOnClick: true этой кнопке(она вообще по идее по умолчанию true)

Вариант 2 - слушайте ивенты select\deselect

Вариант 3 - подключите АПИ в mode=debug, посмотрю глубже.

а Debug вроде уже включен 

Ага, в 2.15 в начале приходит клик, потом кнопка включается.

Слушайте лучше select\deselect, либо инвертируйте свое условие.

Те если она вот сейчас выключена, значит через мгновение включится.

спасибо. вроде получилось!)