Клуб API Карт

Центровка карты от результатов + LOP

Valentin
19 января 2017, 23:32

Всем привет, подскажите пожалуйста. Имеется собираю точки при помощи: 

objectManager = new ymaps.LoadingObjectManager(mapControl.data.url, {
	splitRequests: false,
	clusterize: true,
	clusterHasBalloon: false,
	geoObjectOpenBalloonOnClick: false
});
objectManager.objects.options.set('preset', 'islands#redIcon');
objectManager.clusters.options.set('preset', 'islands#redClusterIcons');
myMap.geoObjects.add(objectManager);

Так же на карте имеется фильтр, в самом конце он отправляем запрос на получение новых точек, все прекрасно работает (прим.:)

if(serializeFilter.length) {
  objectManager.setUrlTemplate(mapControl.data.url+'&'+serializeFilter);
} else {
  objectManager.setUrlTemplate(mapControl.data.url);
}
objectManager.reloadData();

, но заметил одну проблему. Если в ответе одна точка и она не находится в пределах видимости карты, как можно заставить карту передвинуться и позиционироваться относительно всех точек? И если их очень много, то ближайших (но не более, т.к. точки могут быть разбросаны по всей России). 2 вариант наверное сложный, а про первый, помню было решение, но оно работало не с LoadingObjectManager. Как повторить такое позиционирование с новыми точками?

Большое спасибо.

2 комментария
Пришел к варианту, дописать для 2 куска кода:
objectManager.reloadData();

if(objectManager.getBounds() !== null) {
  myMap.setBounds(objectManager.getBounds());
}
, но кажется не правильно
Почему отдает ошибку: 

Uncaught TypeError: Cannot read property '0' of null
at Object.toGlobalPixelBounds (https://api-maps.yandex.ru/2.1.47/combine.js?load=6O6S@$(!(U(X!D(*()(,066U(…,C,D,FiGiFqR,H,L8v,MqSqTqUqVqXqYq08x&callback_prefix=ymaps_loader:242:4476)
at Object.getCenterAndZoom (https://api-maps.yandex.ru/2.1.47/combine.js?load=6O6S@$(!(U(X!D(*()(,066U(…A,C,D,FiGiFqR,H,L8v,MqSqTqUqVqXqYq08x&callback_prefix=ymaps_loader:242:998)
at https://api-maps.yandex.ru/2.1.47/combine.js?load=6O6S@$(!(U(X!D(*()(,066U(…A,C,D,FiGiFqR,H,L8v,MqSqTqUqVqXqYq08x&callback_prefix=ymaps_loader:316:512
at V.setBounds (https://api-maps.yandex.ru/2.1.47/combine.js?load=2h2v0e9_0l@N1_,J9!1,1*1;,…@X*8*$*-6B*R@S@T6D*S@U*76E6G*.*!6K6M&callback_prefix=ymaps_loader:389:5641)
at HTMLInputElement.<anonymous> (/js/nyx_map.js:524:11)
at HTMLInputElement.dispatch (/js/jquery.js:4641:9)
at HTMLInputElement.elemData.handle (/js/jquery.js:4309:28)
at Object.trigger (/js/jquery.js:4550:12)
at HTMLInputElement.<anonymous> (/js/jquery.js:5260:17)
at Function.each (/js/jquery.js:383:23)
ссылаясь на myMap.setBounds(objectManager.getBounds(), {checkZoomRange:true}); ???