Я рисую набор полигонов на Картах Google и хотел бы, чтобы InfoWindow всплывал в центре каждого, когда я нажимаю на него.Настройка InfoWindow Postion в Картах Google
function attach_info_window(polygon, centroid, title){
var info_window = new google.maps.InfoWindow({
content: title,
position: { lat: centroid[0], lng: centroid[1] }
});
google.maps.event.addListener(polygon, 'click', function() {
info_window.open(map, this);
});
}
Проблема в том, что окно появляется в углу северо-запада каждый раз. Параметр «позиция», кажется, полностью игнорируется. Я также попытался установить положение на клик с
event.latLng
Но это возвращает неопределенное значение, даже если API Docs указать его, так что не работает. Любопытно, что это работает отлично, если я использую маркер вместо полигонов.
Что такое, что центр тяжести? Это просто массив с [0] и [1]? Но реальная проблема, вероятно: «position: ...» требует точку в Google Картах. Попробуйте это: position: new google.maps.LatLng (centroid [0], centroid [1]) –
Почему вы не передаете маркер вместо этого в качестве второго параметра с помощью info_window.open (map, this) -> info_window.open (map, new new google.maps.Marker ({...}) .Установка положения маркера с помощью центроида и объекта LatLng-Object. В этом примере используется также открытый метод infowindow: https: // developers .google.com/карты/документы/JavaScript/примеры/InfoWindow простые? гектолитров = де – Blauharley