Вместо перемещения карты или расчета высоты или ширины просто используйте следующую функцию.Хитрость здесь в том, чтобы отложить какое-то время, прежде чем мы откроем информационное окно.Мы должны установить Zoom и setCenter и задержать 300 миллисекунд, прежде чем мы откроем информационное окно, и API карт Google откроет информационное окно прямо в центре, как это должно быть:
function OpenInfoWindowCentralized(map, infowindow, marker) {
map.setZoom(16);
map.setCenter(marker.getPosition());
setTimeout(function() {
infowindow.open(map, marker);
}, 300);
}
Надеюсь, это поможет каким-то образом ...
Приветствия