Клуб API Карт

Найдено на тему «boundschange»:
objectState.isShown не точно определяет границу
Руслан Дмитриев
6 апреля 2017, 14:56

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

При boundschange пробегаюсь по объектам в поле видимости objectState.isShown.

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

https://jsfiddle.net/RDmitriev/Ljcm1rx9/

2 комментария
boundschange,objectState.isShown
Boundschange срабатывает дважды
Maxim Koshel
18 марта 2017, 19:34

При изменении границ карты опрашиваю сервер, который возвращает набор точек (до 300) с координатами, которые входят в эту область. При клике по кластеру происходит приближение карты и дважды срабатывает событие boundschange, в связи с чем точки/кластеры повторно перестраиваются и происходит заметные «прыжки» меток на карте.  Если использовать zoom-контролы, то событие срабатывает один раз. Использование debounce для колбека на boundschange не помогает. Как решить эту проблему?

1 комментарий
boundschange,cluster
Открытие балуна на моб.
Valentin
19 декабря 2016, 14:22

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

Привожу код открытия балуна:

// Проверяем, есть ли у выбранного объекта содержимое балуна
function hasBalloonData(objectId) {
	return objectManager.objects.getById(objectId).properties.balloonContent
}
//Получаем данные и устанавливаем содержимое балуна
function setBalloonData(objectId) {
	if (!hasBalloonData(objectId)) {
	getBalloonData(objectId).done(function (data) {
        // getBalloonData - ajax запрос к серверу по получению данных балуна
		var object = objectManager.objects.getById(objectId);
		object.properties.balloonContent = data;
		// Открываем балун на этом элементе
		var objectState = objectManager.getObjectState(objectId);
		if (objectState.isClustered) {
			// Если это кластер						  objectManager.clusters.balloon.open(objectState.cluster.id);
		} else {
			// Если обычный объект
			objectManager.objects.balloon.open(objectId);
		}
		});
	}
}

Спасибо

1 комментарий
boundschange,click,objectManager
Вопрос к разработчикам: boundschange и sizechange
Иван
10 февраля 2016, 10:22

Обнаружил интересную особенность работы boundschange. Это событие отслеживает изменение области просмотра карты. В документации написано «в результате изменения центра или уровня масштабирования». Но в случае изменения размера окна карты тоже срабатывает событие boundschange, так как при изменении размера окна карты область просмотра карты тоже меняется (проверено).

Есть также событие sizechange, которое отслеживает только изменения размера окна карты. Там доступны поля oldSize и newSize.

Но если мне нужно отследить только изменение масштаба и перетаскивание карты? Я бы мог слушать boundschange и проверять, меняется ли размер окна, но в boundschange не доступны поля oldSize и newSize.

На мой взгляд, с этим нужно что-то делать.

6 комментариев
boundschange,sizechange,область видимости,events
Обновление списка ListBox по событию
Иван
22 сентября 2015, 11:13
Добрый день! Бьюсь над задачей, не могу решить самостоятельно. Прошу помощи!

Есть свой элемент управления ListBox с собственным макетом выпадающего списка. В списке слои, которые показываются при выборе элемента списка.

Сейчас пока что список - это просто массив в items: listBoxItems.

Но мне бы хотелось динамически обновлять список при перемещении и зумировании карты (boundschange). Я написал некую функцию, которая получает список карт в формате JSON от серверного скрипта.

Вопрос, как мне прикрутить обновление списка карт при событии boundschange? При загрузке карты список так же должен динамически обновляться.
28 комментариев
API 2.1,boundschange,ListBox