Клуб API Карт

Найдено на тему «кнопка»:
Отключить стандартные балуны
mvblog
28 декабря 2016, 12:26

Здравствуйте. Я не могу отключить стандартные балуны на карте. Не те, которые я сам создаю, а именно стандартные, которые привязаны не к placemark, а к точкам на карте, являющиеся достопримечательностями магазинами и др.

Смотрите. Вот скрин карты 

Если я нажму на любую из меток, то откроется балун, пример которого представлен ниже

Вот как сделать так, чтобы таких балунов вообще на карте не было и такие кнопки были некликабелными. Спасибо.

2 комментария
Balloon,балун,кнопка,Placemark
Как добавить обработчик события на кнопку.
Дмитрий Александрович
31 мая 2015, 00:02

Добрый день помогите добаить действия при нажатой кнопке которую я создал вот так :

var addPointsButton = new ymaps.control.Button({
    data: {
        // Зададим текст и иконку для кнопки.
content: "Add Point",
// Иконка имеет размер 16х16 пикселей.
image: 'img/plus-black.png'
},
options: {
        // Поскольку кнопка будет менять вид в зависимости от размера карты,
// зададим ей три разных значения maxWidth в массиве.
maxWidth: [28, 150, 178]
    }}); 
myMap.controls.add(addPointsButton); 
А действие например выводить в консоль console.log(searchControl.state());
1 комментарий
кнопка,элементы управления,события,контролы,API 2.1
Стилизация кнопок карты
alexeygubov
27 мая 2015, 22:59

Добрый вечер! Столкнулся с проблемой при верстке: в дизайне отрисована яндекс.карта нового образца, с круглыми кнопками. Средствами API 2.1 смог таки вытащить на свою карту все кнопки, которые есть в новой яндекс.карте, однако новую "круглую" форму придать им ну никак не получается.

Посему, вопрос: возможно ли каким-то образом вставить в верстку яндекс.карту с "круглым" дизайном? может быть, существует отдельное api под новые карты? если нет, то каким образом можно застилить кнопки на уже готовой карте? 

Заранее благодарен за ответ!

2 комментария
кнопка,элементы управления,API 2.1,контролы,макеты
Как программно "отжать" кнопку?
Dark
15 мая 2015, 15:54

Добрый день! Подскажите, пожалуйста, как программно "отжать" созданную кнопку на карте, т.е. сделать ей delselect()? Спасибо.

1 комментарий
кнопка,элементы управления,события,контролы,API 2.1
Контент кнопки обрезается многоточием
Анатолий Облаухов
7 апреля 2015, 13:48

 

Как сделать, чтобы кнопка ymaps.control.Button не обрезала контент, а отображала его полностью?

2 комментария
кнопка,эллипсис,многоточие
События выполняються друг за другом
kosti-2
28 марта 2015, 19:20

var myButton = new ymaps.control.Button('<b>Я<b>');

 

    myButton.events.add('select', function () { 

        alert('нажата'); 

    });

    myButton.events.add('deselect', function () { 

        alert('Отжата'); 

    });

    myMap.controls.add(myButton);

 

При нажатии на Я, вываливаются сразу 2 алерта, сначала - отжата, затем отжата.

Так должно быть, или я чего не понимаю?

 

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

2 комментария
кнопка,элементы управления,события,контролы,API 2.1
Вертикальное выравнивание элементов управления control.Button и др.
narodmon.ru
27 марта 2015, 13:38

Одно из приятных новшеств API 2.1 это возможность выравнивания объектов "один за другим" без необходимости вебмастеру явно указывать координаты их размещения.

parameters.options.float - отличное решение, но кроме горизонтального надо предусмотреть еще и вертикальное размещение элементов "один за другим" с привязкой к нижнему или к верхнему краю, т.е. top и bottom.

1 комментарий
кнопка,элементы управления,контролы,API 2.1
Как поменять вид метки + размер кнопки в api 2.1?
Александр
26 марта 2015, 15:59

1) Как поменять вид метки

 

Вот часть кода:

ymaps.geoXml.load('url').then(function (res) {

res.geoObjects.each(function (geoObject) {

geoObjects.options.set({preset : 'twirl#trainIcon'});

myMap.geoObjects.add(res.geoObjects);

}


Метка не меняется?!


2) Возможно ли настроить произвольную ширину кнопки?


var but1 = new ymaps.control.Button({

    data: {

      content: "Привет",

      image: "1.png",

      title: 'Привет'

    },

    options: {float: 'none', position: {top: 5, left: 5},

    maxWidth: 300

    }

});

 

myMap.controls.add(but1);

 

 

var but2 = new ymaps.control.Button({

    data: {

      content: "УРАААААААААААААА-ААААА-А",

      image: "2.png",

      title: 'УРА'

    },

    options: {float: 'none', position: {top: 35, left: 5},

    maxWidth: 300

    }

});

myMap.controls.add(but2);


Кнопка "Привет" - короткая, а "УРАААААААААААААА-ААААА-А" - длинная, а надо чтобы "Привет" была такой же длины как УРА?

 

 

 



4 комментария
кнопка,метка,API 2.1,YMapsML
Сделать все кнопки deselect
create.it
16 марта 2015, 16:17

Приветствую!

Я создал несколько кнопок на карте, пример создания одной кнопки:

      var pointButton = new ymaps.control.Button({
          data: {
              content: 'Кнопка 1'
          },
          options: {
              selectOnClick: true
          }
      });
      pointButton.events
        .add('select', function(event) {
          Map.mapListeners.add('click', mapClick);
        })
        .add('deselect', function(event) {
          Map.mapListeners.remove('click', mapClick);
        });
this.map.controls.add(pointButton, { float: "right" });

когда одна из них нажата - производятся некие действия с картой (обработчик mapClick, который добавляется при событии select кнопки и убирается при событии deselect), но проблема в том, что я нажимаю первую кнопку, все хорошо, а когда нажимаю вторую - первая тоже остается нажатой! Как снять с нее нажатие?

4 комментария
кнопка,элементы управления,контролы,API 2.1
Полноэкранный режим карты
emolenev
5 марта 2015, 23:04

Помогите пожалуйста. На карте установлены элементы управления

myMap.controls.add('mapTools');

 

        myMap.controls.add('zoomControl');

        myMap.behaviors.enable('scrollZoom');

 

        myMap.controls.add('typeSelector');

как добавить кнопку полноэкранного режима

3 комментария
кнопка,карта на весь экран,элементы управления,контролы,API 2.1
Своя кнопка на карте, которая открывает блок
Игорь Воробьёв
20 февраля 2015, 18:45

Подскажите, как правильно реализовать данную штуку. 

Создал кнопку, которая должна открывать блок div, но вот незадача. Все работает, но при нажатию на кнопку, она дублируется и так до бесконечности, при этом если нажать на первую кнопку, то все работает. и как можно загнать в блок div на карте данные из smarty

 

uttonLayout = ymaps.templateLayoutFactory.createClass(

            "<button class='hideBtn   {% if state.selected %}my-button-selected{% endif %}' >" +

                "{{data.content}}" +

                "</button>"+

"<div class='hideCont'>" +

 "454545454" +

"</div>" , 

function(){ 

firstButton = ('.hideBtn');

 $(firstButton).click(function(){ 

 $(this).toggleClass('close').siblings('.hideCont').slideToggle('normal'); 

 var hideBtn=$(firstButton).index($(this)),isShow=$(this).attr('class'); 

 return false; 

 }); 

 }

 

 

 ),

 

            

        button = new ymaps.control.Button({

            data: {

                content: "текст"

            },

            options: {

                layout: ButtonLayout

            }

        });

 

myMap.controls.add(button, {float: 'left'});

 

4 комментария
кнопка,элементы управления,события,контролы,API 2.1
Кнопка завершения редактирования прямоугольника
test-executive
19 декабря 2014, 18:06

Всем привет.

Подскажите пожалуйста, можно ли по кнопке в меню завершить редактирование polyline?

Так, не выходит :(
           var endDraw = new ymaps.control.Button({            
                         data: {
                            content: 'Завершить рисование',
                        },
                        options: {
                            maxWidth: [150],
                            floatIndex: 4,
                            selectOnClick:false
                        }
        });
        myMap.controls.add(endDraw, {float: 'left'});
        
        endDraw.events.add('click', function (e) { 
            myPolyline.editor.stopEditing();
            myPolyline.editor.stopDrawing();
        });

 

2 комментария
редактор геометрии,API 2.1,события,контролы,ломаная,кнопка,элементы управления
Не работает простой пример с кнопкой без перехода в состояние "нажата"
Noita
3 октября 2014, 15:55

На вот этой странице документации

http://api.yandex.ru/maps/doc/jsapi/2.0/ref/reference/control.Button.xml

приводится простой пример использования опции selectOnClick


var button = new ymaps.control.Button({
         data: {
             // Зададим иконку для кнопки
             image: 'images/button.jpg',
             // Текст на кнопке.
             content: 'Сохранить',
             // Текст всплывающей подсказки.
             title: 'Нажмите для сохранения маршрута'
         }
    }, {
        // Зададим опции для кнопки.
        selectOnClick: false
    });
map.controls.add(button, {top: 5, right: 5});

К сожалению, кнопка, хотя и создаётся, при щелчке переходит в состояние "нажата".

5 комментариев
кнопка,элементы управления,API 2.0,контролы
Контролы и пресеты
Удалённый пользователь
8 сентября 2014, 19:41

Может не увидел

1) нет красивых меток типа московское метро.

2) добавляю свой контрол (new ymaps.control.Button) в виде картинки, почемуто получается на кнопке (((

     var addPlacemarkButton = new ymaps.control.Button({
        data: { content: '<img title="" src="log.png" class="img-rounded">' },
        options: { maxWidth: 50, float: 'left', selectOnClick: false }});
    myMap.controls.add(addPlacemarkButton);

 в версии 2.0 небыло проблемы

Скорее всего я не увидел. ткните носом пжл.

12 комментариев
кнопка,элементы управления,API 2.1,контролы,стили
Изменить поведение кнопки на карте при расчете расстояния
rusavtoset.com
25 июня 2014, 11:07

Добрый день, господа! Помогите, пожалуйста, изменить следующее:

 

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

 

Как сделать понятную всем кнопку "Расчитать" после ввода и определнеия городов отправления и назначения? Без необходимости жать на метку. Спасибо большое всем откликнувшимся на просьбу о помощи!

 

 

<!DOCTYPE html>

<html>

<head>

    <title>Расчет стоимости доставки</title>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <!-- Если вы используете API локально, то в URL ресурса необходимо указывать протокол в стандартном виде (http://...)-->

    <script src="//api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>

    <style>

        html, body, #map {

            width: 100%;

            height: 100%;

            padding: 0;

            margin: 0;

        }

.ymaps-search__input {

width: 155px !important;}

.ymaps-balloon__content {

text-align: left !important;

 

    </style>

 

<script type="text/javascript">

function init() {

    var myMap = new ymaps.Map('map', {

            center: [58.003641,56.225284],

            zoom: 4,

            type: 'yandex#map',

            behaviors: ['scrollZoom', 'drag'],

            controls: ['zoomControl']

        }),

 

 

        searchStartPoint = new ymaps.control.SearchControl({

            options: {

                useMapBounds: true,

                noPlacemark: true,

                noPopup: true,

                placeholderContent: 'Из города',

                size: 'large',

float: 'left',

position: { left: 5, top: 10 }

            }

        }),

        searchFinishPoint = new ymaps.control.SearchControl({

            options: {

                useMapBounds: true,

                noCentering: true,

                noPopup: true,

                noPlacemark: true,

                placeholderContent: 'В город',

                size: 'large',

                float: 'left',

position: { left: 5, top: 44 }

            }

        }),

        calculator = new DeliveryCalculator(myMap, myMap.getCenter());

 

    myMap.controls.add(searchStartPoint);

    myMap.controls.add(searchFinishPoint);

 

    searchStartPoint.events.add('resultselect', function (e) {

        var results = searchStartPoint.getResultsArray(),

            selected = e.get('index'),

            point = results[selected].geometry.getCoordinates();

 

        calculator.setStartPoint(point);

    })

        .add('load', function (event) {

            // По полю skip определяем, что это не дозагрузка данных.

            // По getRusultsCount определяем, что есть хотя бы 1 результат.

            if (!event.get('skip') && searchStartPoint.getResultsCount()) {

                searchStartPoint.showResult(0);

            }

        });

 

    searchFinishPoint.events.add('resultselect', function (e) {

        var results = searchFinishPoint.getResultsArray(),

            selected = e.get('index'),

            point = results[selected].geometry.getCoordinates();

 

        calculator.setFinishPoint(point);

    })

        .add('load', function (event) {

            // По полю skip определяем, что это не дозагрузка данных.

            // По getRusultsCount определяем, что есть хотя бы 1 результат.

            if (!event.get('skip') && searchFinishPoint.getResultsCount()) {

                searchFinishPoint.showResult(0);

            }

        });

}

 

function DeliveryCalculator(map, finish) {

    this._map = map;

    this._start = null;

    this._route = null;

 

    map.events.add('click', this._onClick, this);

}

 

var ptp = DeliveryCalculator.prototype;

 

ptp._onClick= function (e) {

    if (this._start) {

        this.setFinishPoint(e.get('coords'));

    } else {

        this.setStartPoint(e.get('coords'));

    }

};

 

ptp._onDragEnd = function (e) {

    this.getDirection();

}

 

ptp.getDirection = function () {

    if(this._route) {

        this._map.geoObjects.remove(this._route);

    }

 

    if (this._start && this._finish) {

        var self = this,

            start = this._start.geometry.getCoordinates(),

            finish = this._finish.geometry.getCoordinates();

 

        ymaps.geocode(start, { results: 1 })

            .then(function (geocode) {

                var address = geocode.geoObjects.get(0) &&

                    geocode.geoObjects.get(0).properties.get('balloonContentBody') || '';

 

                ymaps.route([start, finish])

                    .then(function (router) {

                        var distance = Math.round(router.getLength() / 2000),

                            message = '<br>Расстояние: <b>' + distance + ' км.</b><br><br>' +

                                'Стоимость доставки техники:<br><div style="font-size:20px !important;"><b>%sр.</b></div><br>';

 

                        self._route = router.getPaths();

 

                        self._route.options.set({ strokeWidth: 5, strokeColor: '0000ffff', opacity: 0.5 });

                        self._map.geoObjects.add(self._route);

                        self._start.properties.set('balloonContentBody', message.replace('%s', self.calculate(distance)));

 

                    });

            });

        self._map.setBounds(self._map.geoObjects.getBounds())

    }

};

 

ptp.setStartPoint = function (position) {

    if(this._start) {

        this._start.geometry.setCoordinates(position);

    }

    else {

        this._start = new ymaps.Placemark(position, { iconContent: 'А' }, { draggable: false });

        this._start.events.add('dragend', this._onDragEnd, this);

        this._map.geoObjects.add(this._start);

    }

    if (this._finish) {

        this.getDirection();

    }

};

 

ptp.setFinishPoint = function (position) {

    if(this._finish) {

        this._finish.geometry.setCoordinates(position);

    }

    else {

        this._finish = new ymaps.Placemark(position, { iconContent: ' Б' }, { draggable: false });

        this._finish.events.add('dragend', this._onDragEnd, this);

        this._map.geoObjects.add(this._finish);

    }

    if (this._start) {

        this.getDirection();

    }

};

 

ptp.calculate = function (len) {

    // Константы.

    var DELIVERY_TARIF = 35,

        MINIMUM_COST = 500;

 

    return Math.max(len * DELIVERY_TARIF, MINIMUM_COST);

};

 

ymaps.ready(init);

 

 

</script>

</head>

<body>

<div id="map" style="width:225px; height:550px"></div>

</body>

</html>

 

 

 

 

4 комментария
кнопка,расчет стоимости доставки,контролы,API 2.1
Кнопка "Многоугольника"
Владимир
8 июня 2014, 01:14

Добрый день!

Как добавить в карты кнопку "Многоугольника".
Примерно как здесь: http://webmap-blog.ru/wp-content/uploads/2010/07/ris-ymap-49.jpg 

//Кнопки
controls: ["routeEditor","default"]

3 комментария
кнопка,элементы управления,контролы,API 2.1
Линейка со своим внешним видом
Егор
21 мая 2014, 10:24

Есть стандартный элемент управления - линейка (control.RulerControl). Очень хочется изменить внешний вид кнопки, но при этом оставить стандартный функционал. Как этого можно добиться? Хотелось бы указать свой layout, как при создании кнопки, но сохранить стандартное поведение. Пробовал передать layout через опцию options.layout - не взлетело. Как быть?

1 комментарий
кнопка,линейка,API 2.1,элементы управления,контролы
Задать html аттрибуты элементу управления на карте
Егор
11 мая 2014, 15:45

Делаю собственный контрол на карту, который представляет собой простую кнопку с картинкой. Очень хочется использовать стандартный внешний вид. Использую ymaps.control.Button с указанием картинки. Все хорошо, все работает как надо, но для тестов очень хочется иметь возможность как-то этот элемент управления получить (id, класс или data-аттрибуты). Я понимаю, что проблему можно решить созданием своего шаблона, но меня полностью устраивает существующий стандартный шаблон, который очень бы не хотелось делать заново (со всеми эффектами наведения, нажатия и т.п.). Поэтому возникает вопрос - можно ли как-то навесить html-аттрибуты на существующий контрол? Может быть можно сделать свой шаблон на основе существующего, при этом обернув его в свой div с указанным css-классом?

3 комментария
кнопка,элементы управления,API 2.1,контролы,макеты
Добавить элемент управления "увеличить" в api 2.1
Кирилл Иванов
24 апреля 2014, 08:16

Здравствуйте. 

Нужен элемент управления "увеличить" в api 2.1 такой же как в 2.0. Я знаю, что можно увеличить, потянув правую кнопку мыши, но пользователям объяснить это будет трудно. Спасибо.

4 комментария
масштаб,кнопка,элементы управления,контролы,API 2.1
myMap.controls кнопка "Получить информацию"
Андрей Е.
5 апреля 2014, 21:43

Можно ли добавить на карту кнопку "Получить информацию" ?

2 комментария
кнопка,элементы управления,API 2.0,контролы,геокодирование