Клуб API Карт

Найдено на тему «controls»:
Магическое определение позиции пользователя
Valentin
14 декабря 2016, 14:27

Добрый день, подскажите пожалуйста. Имеется контроллер "control.GeolocationControl". Возможно создать два контроллера (дублирующий друг друга), но один на самой карте, а второй вне её. Или как привязать созданую кнопку вне карты с вашим АПИ? 

И еще видел отличный пример у вас в песочнице (не могу найти). Вы создавали кнопку и при помощи geo API определяли местонахождения пользователя на сайте с разрешением доступа к получению координат пользователя. Но данный функционал работает только если есть https, а если его нет, как лучше создать такой функционал?

Спасибо.

p.s. https://tech.yandex.ru/maps/jsbox/2.0/geolocation_api — нашел замечательный пример

9 комментариев
controls,geolocation api
Запретить дефолтное выполнение у созданной кнопки
Valentin
14 декабря 2016, 14:15

Создали кнопку:

var button  = new ymaps.controlButton({ .... });

повесиили событие:

button.events.add('click', function(e) {

  console.log(e.target) // undefined — почему? странно

  // а теперь самое важное, пробывал:

  return; // не помогает

    e.stopPropagation();
    e.preventDefault();

// так же ничего не меняет.

});

Как при определенном условии, не делать кнопку активной? Так же пробывал  button.state.set('selected', false); внутри ивента никак не влияет. Как быть?

3 комментария
controls
Разные позиции для элементов карты на разных разрешениях
Valentin
14 декабря 2016, 12:18

Добрый день. Подскажите пожалуйста, как управлять расположением элементов управления карты (дефолтными: зум, пробки и т.д.) и созданными (на пример control.Button)?

На пример я хочу разместить свою кнопку на всю ширину на вверх, а остальные элементы управления внизу. На планшете поменять местами 2 кнопки на вверху, а на ПК версиии еще иначе, возможно так сделать? Из документации понял, что можно настраивать только максимальную ширину для объекта?)

СПАСИБА!

3 комментария
controls,position
Как разместить пункт управления (зум) справа по центру?
Valentin
14 декабря 2016, 12:14

Пробывал и так и сяк, точно раньше такое можно было сделать.

Добавляю зум:

var zoomControl = new ymaps.control.ZoomControl({
                options: {
                    position: {
                        left: 'auto', // так же пробывал добавить флоат, top/bottom = 0 или auto 
                        right: 10
                    }
                }
                });
            myMap.controls.add(zoomControl, {float: 'none'});

Результат один и тот же, я заставил зум отображаться справа, но прибитый к вверху. Как быть?

1 комментарий
controls,zoom,position
Фиксированный список контролов
just_boris
12 июня 2015, 15:58

Здравствуйте. Сейчас по умолчанию карта инициализируется с некоторым набором контролов. Для своего приложения я хочу определить свой фиксированный набор контролов. Есть ли возможность указать список контролов для карты?


Пока я нашел только такой способ.

var controls = [];
// coберем список всех стандартных контролов   
myMap.controls.each(function(control) {
    controls.push(control);
});
// если удалять в цикле, то некоторые контролы пропустятся
controls.forEach(function(control) {
    myMap.controls.remove(control)
});
// a теперь добавим свой набор
var myControls = ['scaleLine', 'typeSelector', 'zoomControl'];
myControls.forEach(function(controlName) {
    myMap.controls.add(controlName)
});

Но удалять все контролы, чтобы потом добавить некоторые из их обратно это странно.

 

Может в опциях карты есть возможность указать список нужных контролов, наподобие как это происходит с behaviors?

 

1 комментарий
API 2.1,controls
Навигация кнопками по результатам поиска (тем, которые не suggests, а islets).
Удалённый пользователь
11 июня 2015, 20:23

Здравствуйте! Сколько не искал - не нашел ответа на свой вопрос. Подскажите, пожалуйста, куда копать.

Использую API v2.1.26. На карте стандартный searchControl. Если результатов поиска больше одного, то по нажатию Enter открывается ниспадающий список результатов (не подсказок, а именно результатов), при этом выбрать результат с клавиатуры нет никакой возможности: нажатие Tab уводит на следующую после карты ссылку, нажатие стрелки вниз открывает список саджестов. Нет даже возможности выбрать первый результат из списка повторным нажатием Enter (что было бы, вроде, логично). Пробовал ловить нажатия кнопок на инпуте searchControl-а, но это лишено смысла, т.к. элементы списка результатов не являются ссылками, и фокус на них поставить не получается.

Сопутствующий вопрос: почему в searchControl-е значение инпута обновляется по выбору одного из саджестов по нажатию Enter, а не по фокусу на саджесте, как это сделано на maps.yandex.ru? Так было бы гораздо удобнее набирать адреса - нажал пару букв, вниз, затем сразу запятую и дом. Вроде как такой подход сильно распространен, да и на самих Я.Картах он используется, а здесь получается, что жмешь стрелку вниз, затем на рефлексе жмешь запятую, и список саджестов пропадает, т.к. значение не было подставлено.

элементы управления,поиск,controls,API 2.1,SearchControl