Клуб API Карт

Найдено на тему «балун»:
Мультимаршрут - как отключить балун при нажатии на маршрут
rarescrap
24 августа 2017, 06:57
Этот балун нужно отключить


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

multiRoute.events.add("click", function(){
    // Ничего не делаем
});

Весь JS карты:

function init () {
	/**
	 * Тестовый массив с метками адресов
	 */
	var arr = new Array();
	for(var i=0; i<window.getDataJSInterface.getRoutePointsNumber(); i++){
	    arr[i] = new Array();
	    arr[i][0] = window.getDataJSInterface.getRoutePointCoord(i, 0);
	    arr[i][1] = window.getDataJSInterface.getRoutePointCoord(i, 1);
	  }
	
    /**
     * Создаем мультимаршрут.
     * Первым аргументом передаем модель либо объект описания модели.
     * Вторым аргументом передаем опции отображения мультимаршрута.
     * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/multiRouter.MultiRoute.xml
     * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/multiRouter.MultiRouteModel.xml
     */
    var multiRoute = new ymaps.multiRouter.MultiRoute({
        // Описание опорных точек мультимаршрута.
        referencePoints: arr
    }, {
        // Автоматически устанавливать границы карты так, чтобы маршрут был виден целиком.
        boundsAutoApply: true
    });

    // Создаем карту с добавленными на нее кнопками.
    var myMap = new ymaps.Map('map', {
        center: [55.750625, 37.626],
        zoom: 7,
        controls: ['zoomControl']
    }, {
        buttonMaxWidth: 300
    });
   
    // Ожидаем успешного построения маршрута
    multiRoute.model.events.add("requestsuccess", function(){
		window.updateDataJSInterface.updateRouteLength( multiRoute.getActiveRoute().properties.get('distance').value );
		
		// Возвращает пиздец, если расстояние огромно
		//window.console.log( multiRoute.getActiveRoute().properties.get('durationInTraffic').value );
		
		var s = multiRoute.getActiveRoute().properties.get('duration').value;
		var m = (s/60) % 60;
		window.console.log(m);
		var h = s / 3600;
		window.console.log(h);
		
		window.updateDataJSInterface.updateTripTime(h, m);
    });

    // Добавляем мультимаршрут на карту.
    myMap.geoObjects.add(multiRoute);
}

ymaps.ready(init);

Можно ли как-нибудь отлючить этот балун?

4 комментария
Мультимаршрут,балун,клик на полилинии
Управление шириной балуна при выборе из кластера
Krem-Ilia
15 августа 2017, 14:48

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

У меня есть вот такой балун:

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

Можно заметить, что он на всю ширину карты. Если карта будет шире, он останется таким же - где-то около 520 пикселей в ширину.

Не подскажете, где можно управлять его шириной?

Я добавляю метки на карту так:

this.objectManager.add({
    type: 'FeatureCollection',
    features: data.deliveries.map((id, i) => {
        return {
            id: i + 1,
            type: 'Feature',
            geometry: {
                type: 'Point',
                coordinates: [data.latitudes[i], data.longitudes[i]]
            },
            properties: {
                balloonContent: `
                    <p>${Math.random()}</p>
                `,
                clusterCaption: `Caption #${i}`
            }
        };
    })
});

Не знаете, где задать ширину этого балуна? Или навесить на контейнер класс. Сейчас внутри контейнера с классом `ymaps-2-1-55-balloon__content` лежит элемент ymaps с шириной 480 пикселей заданной через style.

6 комментариев
балун
Текст балуна маршрута
A1-AloneZero
28 июня 2017, 11:05

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

Создаётся множество маршрутов таким образом:

ymaps.route([

[$cords_from],[$cords_to]

]).then(

function(route){

myMap.geoObjects.add(route);

});

Всё отрабатывает корректно но по умолчанию в тексте балуна точек от и до выводятся координаты. Возможно ли данный текст заменить на что то своё?

Из документации пробовал balloonContent и balloonLayout но что то видимо до конца не разобрался(.

1 комментарий
baloon,балун,Маршрут и точка,текст балуна
Удаление балуна при построении мультимаршрута
Удалённый пользователь
13 июня 2017, 20:04

Добрый день.

При построении мультимаршрута, при клике на путевую точку, возникает балун с описанием точки и кнопкой "Подробнее", при клике на которую открывается маршрут на карте Yandex Maps. Можно ли как-нибудь убрать появление такого балуна при клике по путевой точке?

2 комментария
Мультимаршрут,балун
Не работает определение размера контента у баллуна
Мелюков Сергей
29 мая 2017, 16:12

Привет!

- заходим в пример из песочницы - https://tech.yandex.ru/maps/jsbox/2.1/balloon_autopan

- правим шаблон баллуна: описываем options.contentLayout как $[[options.contentLayout observeSize maxWidth=500 maxHeight=1000]]

- открываем баллун

- нажимаем "задать содержимое баллуна"

- контент вылезает за пределы баллуна: http://prntscr.com/fdchtv

Это норма?

Ожидается, что если контент не влезает по ширине в указанные 500px, то баллун растянется по высоте (максимум в 1000px)

2 комментария
балун
Балун на все поле карты
D.Abramov8
26 апреля 2017, 09:11

Добрый день! Подскажите, пожалуйста, как сделать чтобы баллун открывался на весь объем видимой области карты?

2 комментария
балун
Высота балуна кластера
Дракон
24 апреля 2017, 14:36

Всем привет.

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

Нашёл один пост от 2013 года, в котором написано, что такого сделать нельзя. Может сейчас что-то изменилось.

Подскажите, пожалуйста.

4 комментария
балун,Кластер
Как отобразить контент балуна в html?
Удалённый пользователь
10 февраля 2017, 04:39
 {
type: 'Feature',
geometry: {
type: 'Point',
coordinates: [55.8104533, 37.64509599999997]
},
options: {
preset: 'twirl#greenIcon'
},
properties: {
  balloonContent: "Мой контент балуна"
}
},

Все точки идут через FeatureCollection
Как сделать так чтобы можно было в BallonContent отображать любой html-код?

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

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

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

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

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

2 комментария
Balloon,балун,кнопка,Placemark
Изменить высоту баллуна
Сергей Шевченко
21 декабря 2016, 16:55
Как задать высоту балуна в 300px?
Что я делаю не так? 
Все делаю строго по инструкции

3 комментария
балун,высота
Проблема при открытии булета
Valentin
20 декабря 2016, 11:11

При открытии карты, загружаем точки которые может видеть в данный момент пользователь. Контент буллетов подгружается при клике на метку. Новые точки могут загружаться 2 способами:

  1. Использоваие фильтра;
  2. Передвижение по карте с исп. ивента boundschange.

Проблема появляется когда жмакаем на метку на вверху экрана карты (прим.) карта сдвигается на вверх, что бы показать контент балуна. Он подгружается и пропадает, т.к. мы обновляем все точки. Подскажите пожалуйста, как это можно побороть? 

4 комментария
метка,балун
Не показываются балуны
a@leshkacho.ru
30 октября 2016, 18:16

Здравствуйте, подскажите, пожалуйста, в чем может быть проблема

На сайте использую карту, данные в нее загружаю через objectManager

$( "select.serviceFirst" ).change(function() {
			if ($(this).val()!=''){
				myMap.geoObjects.removeAll();
				curval = $(this).val();
				objectManager = new ymaps.ObjectManager({
		            // Чтобы метки начали кластеризоваться, выставляем опцию.
		            clusterize: false,
		            geoObjectOpenBalloonOnClick: true,
            		clusterOpenBalloonOnClick: true,
		            // ObjectManager принимает те же опции, что и кластеризатор.
		            gridSize: 32
		        });
		        objectManager.objects.options.set('preset', 'islands#greenDotIcon');
			    objectManager.clusters.options.set('preset', 'islands#greenClusterIcons');
			    myMap.geoObjects.add(objectManager);

			    $.ajax({
			        url: "<?=SITE_TEMPLATE_PATH?>"+"/map_"+curval+".json"
			    }).done(function(data) {
			    	console.log('ok');
			        objectManager.add(data);
			    });
			} else {
				if ($('select#city').val()!=''){
					myMap.geoObjects.removeAll();
					panto($('select#city option:selected').text());
				}
			}
		});

Соотвественно при смене селекта, меняются и метки на карте, но по клику балун не показывается, но подсказка при наведении появляется.

Вот пример json файла

{
	"type":"FeatureCollection",
	"features":[{
		"type":"Feature",
		"id":0,
		"geometry":{
			"type":"Point",
			"coordinates":"44.8350115,65.5009237"
		},
		"properties":{
			"baloonContent":"Bek",
			"clusterCaption":"\u043c\u0435\u0442\u043a\u0430",
			"hintContent":"\u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430"
		}
	},
	{
		"type":"Feature",
		"id":1,
		"geometry":{
			"type":"Point",
			"coordinates":"42.8946592,71.3759428"
		},
		"properties":{
			"baloonContent":"\u0421\u0435\u0440\u0433\u0435\u0439",
			"clusterCaption":"\u043c\u0435\u0442\u043a\u0430",
			"hintContent":"\u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430"
		}
	}]
}

5 комментариев
яндекс карты api,балун,балун-панель
Использование CSP, интерактивные маркеры объектов и другие возможности новой версии API Карт
Maps API
26 октября 2016, 12:46

Начиная с версии 2.1.44, в API появились настройки для работы с использованием CSP и другие возможности, которые будут полезны как разработчикам, так и конечным пользователям.  О наиболее интересных из них речь пойдет ниже.

Подключение API при использовании CSP

Если ваш сервис использует политику защиты контента (CSP) , то вы наверняка уже задумывались, как обеспечить корректную работу API на странице. Теперь достаточно добавить параметр 'csp=true' при подключении API и настроить правила, как описано в нашей документации.

https://api-maps.yandex.ru/2.1/?lang=ru_RU&csp=true

Интерактивные маркеры POI на подложке

Points Of Interest или POI - это маркеры на подложке карты, которые обозначают наиболее значимые или заметные объекты и помогают ориентироваться на схеме. Это могут быть как организации, так и, например, достопримечательности.
Теперь точки POI на карте стали интерактивными - при нажатии откроется карточка с информацией об объекте. А если хочется узнать больше, прямо из карточки можно перейти на Яндекс.Карты.

Если по каким-то причинам интерактивность подложки не нужна в вашем проекте, её можно отключить.

Новые балуны маршрутов

Информация о маршруте стала более подробной  - вид транспорта, пересадки и время в пути наглядно представлены в стандартном балуне. Также в нем появился умный блок «Открыть в Яндекс.Картах», который позволит узнать дополнительные детали о маршруте или изменить его при необходимости.

Управление с клавиатуры в плеере Панорам

В плеере Панорам появилась поддержка горячих клавиш, достаточно включить опцию 'hotkeysEnabled' . С помощью клавиатуры можно, например, перемещаться между сценами и менять направление взгляда.

Подробнее о возможностях новых версий читайте в ChangeLog.

Команда разработки API Яндекс.Карт

новости,POI,панорамы,балун,маршрутизатор,CSP,API 2.1
Изменить значок кластера при закрытии балуна
Krem-Ilia
10 октября 2016, 12:32

Всем привет.

Имеется карта с множеством объектов, часть из которых идут по одному адресу. Из-за чего возникает необходимость вот такого способа выбора меток: https://yandex.ru/blog/mapsapi/vybrat-obekt-pri-klike-vnutri-ballooncontent

Возник вопрос, есть ли возможность менять значок кластера при закрытии балуна (равно как и при смене объекта). Нашёл, что есть вот такое событие:

objectManager.events.add('balloonclose', event => {});

Однако event.get('target').getData().options там - пустой объект.

В 

objectManager.clusters.state.events.add('change', event => {});

я тоже не могу получить доступ к кластеру и его опциям.

Есть ли такая возможность?

7 комментариев
кластеризация,балун,события
Как управлять положением балуна внутри полигона ?
shopgo51
6 сентября 2016, 09:25

Здравствуйте, коллеги !
У меня следующая ситуация:
На карте есть коллекция полигонов, созданная следующей функцией:

var myCollection=[];
function polygon(groups, name) {
    
    var flag_groups = localStorage[prefix + name];
    if ((flag_groups == null) || (flag_groups == 'no'))
    {    
     localStorage[prefix + name] = 'yes' ;  
     myCollection[name] = new ymaps.GeoObjectCollection();        
    for (var i = 0; i < groups.length; i++)
    {
    myCollection[name].add( new ymaps.Polygon([                
            groups[i].coord_out,              
            groups[i].coord_in
           
    ], {
        balloonContent: "Описание участка",
        hintContent: groups[i].hint
    }, {
        fillColor: groups[i].fillColor,
        opacity: 0.55,
        strokeColor: '#000fff',
        strokeWidth: 1
    }));
    }
      myMap.geoObjects.add(myCollection[name]);    
   }
 else
  {
localStorage[prefix + name] = 'no';
      myMap.geoObjects.remove(myCollection[name]);    

  }
}

Всё отрабатывает, как описано в документации.
Вне карты есть небольшой список полигонов, выбирая из которого я перехожу на карту с полигонами так:
    
Вставки на php для определения, с какой из коллекций полигонов я работаю и получения значения для определения участка.
И вот теперь собственно описание проблемы:
1) если опустить список аргументов в функции open, балун открывается ("хвостик" балуна) в определенной вершине участка
2) если передать координаты точки, где я хочу открыть, то открывается в другой вершине, но не там, куда указывают координаты
 Как правильно задать в этом случае координаты для open, чтобы управлять положением балуна ?

5 комментариев
балун,balloon
Динамическая загрузка содержимого балуна
MisterLibra
14 июля 2016, 09:52

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

Есть стилизованный под сайт ContentLayout для балуна, который создается с помощью ymaps.templateLayoutFactory.createClass(). Этот ContentLayout устанавливается при создании Placemark. Все хорошо, работает - балун всплывает с нужной информацией.

Теперь возникла задача подгружать данные балуна с сервера в момент открытия балуна. За основу я взял balloon_ajax из песочницы. Но возникли проблемы:

1) Не получается сменить ContentLayout балуна после загрузки данных и непонятно - возможно ли это вообще. Т.е. вообще есть два пути, на мой взгляд: или a) отображать надпись "Загрузка данных..." в balloonContent и после загрузки менять ContentLayout балуна с передачей загруженных данных, или b) надпись "Загрузка данных..." встраивать в ContentLayout и скриптами управлять видимостью этой надписи и основной части балуна. Тут вторая проблема.

2) Не получается поменять данные в балуне. Даже если просто в событии balloonopen сделать

placemark.balloon.setData(<объект с данными>)

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

placemark.properties.set('balloonContent', "Идет загрузка данных...")

, если, конечно, при создании placemark не передавать ContentLayout балуна.

Т.е. вопросы:

1) Есть ли возможность сменить ContentLayout открытого балуна и передачей новых данных?

geoObject.Balloon.setOptions({contentLayout: BalloonContentLayout})

я тоже пробовал - не работает.

2) Если нет, то возможно ли открытому балуну передать новые данные для ContentLayout, чтобы он их отобразил?

2 комментария
балун
Вывод данных в своём макете балуна
Андрей Нейман
2 июня 2016, 13:38

Есть балун, отображаемый по клику на карте (map.balloon.open()) с собственным макетом. Не удаётся вывести данные, переданные балуну, в макете.

Пример - https://jsfiddle.net/unnamed777/o01o5goy/

Ожидается, что в балуне будет выведено "param1: aa", однако, данные не доступны и через {{ data.param1 }}, и через {{ properties.param1 }}. Что я делаю не так?

2 комментария
балун
Балун за границы карты
taruk21
21 мая 2016, 00:31

Как сделать, что бы балун выходил за границы карты? Сейчас у меня такие для него свойства

balloonMaxWidth: 700,
balloonMinWidth: 585,
balloonAutoPan: false,
balloonMinHeight: 520,
1 комментарий
карта,балун,границы
Не открывается балун кластера
Андрей Работинский
12 апреля 2016, 13:21

Добрый день.

Я использую LoadingObjectManager для отрисовки большого количества объектов на карте. На странице с картой есть список видимых на карте объектов. При клике на элементе этого списка хотелось бы, чтобы карта центрировалась на объекте и, если объект входит в состав кластера, то масштабировала карту до тех пор, пока объект будет отображаться отдельно(не в составе кластера) или пока не будет достигнут максимальный для координат объекта зум карты. Если при достижении максимального зума объект все еще будет входить в кластер, то сделать этот объект активным и открыть балун кластера. Все работает при использовании функции приведенной ниже, за исключением открытия балуна на метке кластера. При открытии балуна вне функции setZoom он открывается нормально. Может есть какие-то пути обхода или я где-то что-то упускаю?

function focusOnGeoobject(id) {
        //Находим объект по id, который получаем при клике по элементу списка
        var object = loadingObjectManager.objects.getById(id);
        var coords = object.geometry.coordinates;
        var objectState = loadingObjectManager.getObjectState(id);
         
        myMap.setCenter(coords);

        myMap.zoomRange.get(coords).then(function (zoomRange) {
            //Масштабируем карту до тех пор, пока объект не выйдет из кластера или не будет достигнут максимальный зум
            while (objectState.isClustered && myMap.getZoom() !== zoomRange[1]) {
                myMap.setZoom(myMap.getZoom() + 1);
            }
            if (objectState.isClustered) {
                loadingObjectManager.clusters.state.set('activeObject', object);
                loadingObjectManager.clusters.balloon.open(objectState.cluster.id);
            } else {
                loadingObjectManager.objects.setObjectProperties(id, { preset: 'islands#redStretchyIcon' });
            }
        });
    }

5 комментариев
кластер,балун,LoadingObjectManager,zoom
Не отображаются балуны при открытии большой карты
jollyuser.jolly
23 марта 2016, 09:54

Не отображаются балуны при открытии большой карты, при переходе по ссылке "Открыть в Яндекс.Картах", почему? Подскажите пожалуйста.

9 комментариев
карта на весь экран,балун