У меня есть карта Google v3 с элементом пользовательского интерфейса, который нависает над верхней частью, вот так…
![Panel overhangs top of map by about 30px](https://i.stack.imgur.com/Kgyas.png)
И у меня есть информационное окно, прикрепленное к нескольким маркерам. У меня проблема в том, что когда открывается информационное окно и автоматически панорамируются на карте (поведение, которое я хочу), оно, очевидно, не учитывает свисание элемента…
![infowindow partially obscured, user has to manually pan to get at close box](https://i.stack.imgur.com/yIoA9.jpg)
… так что пользователь должен вручную перемещаться, чтобы увидеть всю информацию, или получить доступ к окну закрытия.
Я посмотрел, есть ли способ получить offsetTop информационного окна из его родительской карты, так что я могу добавить дополнительное смещение panTo, когда это необходимо, но я в замешательстве.
Попытки, такие как ...
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(this.html);
infowindow.open(map, marker);
var infoTop = infowindow.offsetTop;
console.log(infoTop);
});
… просто дайте мне не определено .
Было бы замечательно иметь возможность установить свойство просвет для информационного окна, как это возможно с помощью свойства infoBoxClearance утилиты InfoBox . Но я не хочу использовать InfoBox, потому что есть стилистические аспекты стандартного информационного окна, которое я предпочитаю.
И я бы предпочел не использовать панорамирование карты больше, чем необходимо, используя disableAutoPan и вычисляя оптимальное панорамирование для каждого маркера.
Есть предложения?