Добрый день.
Я использую 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' }); } }); }