Автопанорамирование карты, чтобы информационное окно было полностью видимым
Я устанавливаю маркер, чтобы поместить центр экрана, когда он вызывает событие клика пользователем с карты Google. но возникла проблема, что содержимое информационного окна не полностью видно в окне просмотра, как вы можете видеть на рисунке ниже. Как я могу автоматически панорамировать карту по коду, чтобы информационное окно было полностью видно в окне просмотра. я отключил прокрутку содержимого информационного окна.
1 ответ
Я нашел решение в StackOverFlow. Кстати, спасибо команде Stackru.
google.maps.Map.prototype.panToWithOffset = function(latlng, offsetX, offsetY) {
var map = this;
var ov = new google.maps.OverlayView();
ov.onAdd = function() {
var proj = this.getProjection();
var aPoint = proj.fromLatLngToContainerPixel(latlng);
aPoint.x = aPoint.x+offsetX;
aPoint.y = aPoint.y+offsetY;
map.panTo(proj.fromContainerPixelToLatLng(aPoint));
};
ov.draw = function() {};
ov.setMap(this);
};
и вызывал эту функцию при нажатии на маркер.