Wygląda na to, że moje okno InfoWindow, po kliknięciu ikony strony głównej w moich Mapach Google v3, nie dopasowuje się automatycznie do zawartości okna InfoWindow.
Daje paski przewijania, kiedy nie powinno. Okno InfoWindow powinno mieć poprawną automatyczną zmianę rozmiaru.
Jakieś pomysły, dlaczego?
Na żądanie odpowiedni JavaScript, który wstrzykuje kod HTML dla InfoWindow:
listing = '<div>Content goes here</div>';
AKTUALIZACJA
Ten błąd został rozwiązany przez Google, którego dotyczy problem
https://issuetracker.google.com/issues/35823659
Poprawka została wdrożona w lutym 2015 r. W wersji 3.19 interfejsu API JavaScript Map Google.
javascript
html
css
google-maps
JacobT
źródło
źródło
Odpowiedzi:
Dodaj element DIV do swojego okna informacyjnego
<div id=\"mydiv\">YourContent</div>
Następnie ustaw rozmiar za pomocą css. pracuje dla mnie. Zakłada się, że wszystkie okna informacyjne mają ten sam rozmiar!
#mydiv{ width:500px; height:100px; }
źródło
<div class=\"mydiv\">YourContent</div>
i.mydiv{ width:500px; height:100px; }
Krótka odpowiedź: ustaw właściwość opcji maxWidth w konstruktorze . Tak, nawet jeśli ustawienie maksymalnej szerokości nie było tym, co chciałeś zrobić.
Dłuższa historia: Migracja mapy v2 do v3, widziałem dokładnie opisany problem. Okna różniły się szerokością i wysokością, niektóre miały pionowe paski przewijania, a inne nie. Niektóre z nich <br /> zostały osadzone w danych, ale przynajmniej jeden z tych rozmiarów OK.
Nie sądziłem, że właściwość InfoWindowsOptions.maxWidth była istotna, ponieważ nie zależało mi na ograniczaniu szerokości ... ale ustawiając ją konstruktorem InfoWindow, otrzymałem to, czego chciałem, a okna teraz automatycznie zmieniają rozmiar (w pionie) i pokaż pełną treść bez pionowego paska przewijania. Nie ma to dla mnie większego sensu, ale działa!
Zobacz: http://fortboise.org/maps/sailing-spots.html
źródło
maxWidth
wartość procentową, mapy Google rozpoznają zmiennoprzecinkowy jako procent elementu nadrzędnego i przekonwertują go na odpowiednik w pikselach: deklaruj{"maxWidth":0.25}
, element nadrzędny ma szerokość 1000 pikseli, InfoWindow będzie miał rozszerzeniewidth: 250px
. Nie sądzę, aby można było zmusić szerokość InfoWindow, aby pozostała procentem (wartośćmaxWidth
musi być liczbą, więc{"maxWidth":"25%"}
nie zadziała i{"maxWidth":25%}
jest traktowana jako niezdefiniowany moduł 25 i powoduje błąd składni).Treść należy przekazać do InfoWindow z obiektu jQuery.
var $infoWindowContent = $("<div class='infowin-content'>Content goes here</div>"); var infoWindow = new google.maps.InfoWindow(); infowindow.setContent($infoWindowContent[0]);
źródło
overflow: auto
włączać InfoWindow DIV, gdy przekazujesz węzły DOM zamiast ciągu. To rozwiązuje problem, jeśli zawartość jest zmniejszona tylko o 1-2 piksele. Niestety oznacza to, że dłuższa treść faktycznie wisi poza InfoWindow zamiast dodawania pasków przewijania.infoWindow's
wyświetlać poprawnie. Pełna odpowiedź, dlaczego to działa, jest wymieniona w mojej odpowiedzi -jQuery
tworzy odłączone drzewo DOM, które wymusza prawidłowe renderowanie treści, a jego rozmiar dokładnie określa, zanim Google spróbuje umieścićinfoWindow
na mapie.gm-style-iw{ height: 100% !important; overflow: hidden !important; }
mi to pasuje
źródło
ZMIENIONO (aby wyróżnić się): Zaufaj mi, z setki innych odpowiedzi na to pytanie jest to jedyna poprawna odpowiedź, która wyjaśnia również DLACZEGO to się dzieje
Ok, więc wiem, że ten wątek jest stary i ma tysiąc odpowiedzi, ale żadna z nich nie jest poprawna i czuję potrzebę opublikowania poprawnej odpowiedzi.
Po pierwsze, nie musisz nigdy określać
width's
aniheight's
niczego włączać, aby Twoje okno infoWindow wyświetlało się bez pasków przewijania, chociaż czasami możesz przypadkowo uruchomić go w ten sposób (ale ostatecznie zakończy się niepowodzeniem).Po drugie, Google Maps API
infoWindow's
nie ma błędu przewijania, po prostu bardzo trudno jest znaleźć prawidłowe informacje na temat ich działania. Cóż, oto jest:Gdy powiesz interfejsowi API Map Google, aby otworzył się w infoWindow w następujący sposób:
var infoWindow = new google.maps.InfoWindow({...}); .... infoWindow.setContent('<h1>Hello!</h1><p>And welcome to my infoWindow!</p>'); infoWindow.open(map);
We wszystkich celach i celach mapy google tymczasowo umieszczają znak
div
na końcu strony (w rzeczywistości tworzy ondetached DOM tree
- ale koncepcyjnie łatwiej jest to zrozumieć, jeśli powiem, że wyobrażasz sobiediv
istnienie na końcu strony ) z treścią HTML, którą określony. Następnie mierzy ten element div (co oznacza, że w tym przykładzie wszystkie reguły CSS w moim dokumencie mają zastosowanieh1
ip
tagi zostaną do niego zastosowane), aby uzyskać jegowidth
iheight
. Następnie Google bierze todiv
, przypisuje do niego pomiary, które uzyskał, gdy został dołączony do Twojej strony, i umieszcza go na mapie w określonej przez Ciebie lokalizacji.Oto, gdzie problem występuje w przypadku wielu osób - mogą mieć kod HTML, który wygląda tak:
<body> <div id="map-canvas"><!-- google map goes here --></div> </body>
iz jakiegoś powodu CSS wygląda tak:
Czy widzisz problem? Kiedy interfejs API próbuje wykonać pomiary dla Twojego
infoWindow
(bezpośrednio przed wyświetleniem),h1
część treści będzie miała rozmiar18px
(ponieważ tymczasowy element „pomiarowy” jest dołączany do treści), ale gdy interfejs API faktycznie umieszcza elementinfoWindow
on na mapie,#map-canvas h1
selektor będzie miał pierwszeństwo, powodując, że rozmiar czcionki będzie znacznie różny od tego, jaki był, gdy API mierzyło rozmiar,infoWindow
iw tej sytuacji zawsze otrzymasz paski przewijania.Może być więcej nieco innych niuansów z konkretnego powodu, dla którego masz w swoim pasku przewijania
infoWindow
, ale powodem tego jest:Więc zawsze robię coś takiego:
infoWindow.setContent('<div class="info-window-content">...your content here...</div>');
aw moim CSS:
.info-window-content { ... } .info-window-content h1 { .... } .info-window-content p { ... } etc...
Bez względu na to, gdzie API dołącza swój pomiar
div
- przed zamknięciembody
lub wewnątrz a#map-canvas
, zastosowane do niego reguły CSS będą zawsze takie same.EDYCJA RE: Rodziny czcionek
Wygląda na to, że Google aktywnie pracuje nad problemem ładowania czcionek (opisanym poniżej), a funkcjonalność zmieniła się bardzo niedawno, więc możesz lub nie widzieć ładowania czcionki Roboto przy
infoWindow
pierwszym uruchomieniu, w zależności od wersji interfejsu API, z którego korzystasz. Istnieje otwarty raport o błędzie (mimo że w dzienniku zmian ten raport o błędzie został już oznaczony jako naprawiony), który ilustruje, że Google nadal ma problemy z tym problemem.WIĘCEJ RZECZY: ZOBACZ SWOJE RODZINY CZCIONEK !!!
W najnowszym wcieleniu API Google starało się być sprytnym i opakować zawartość infoWindow w coś, na co można by skierować selektor CSS -
.gm-style-iw
. Dla ludzi, którzy nie rozumieli zasad, które wyjaśniłem powyżej, nie pomogło to, aw niektórych przypadkach nawet pogorszyło. Paski przewijania prawie zawsze pojawiały się przy pierwszyminfoWindow
otwarciu, ale jeśli otworzysz jeinfoWindow
ponownie, nawet z dokładnie taką samą zawartością, paski przewijania znikną. Poważnie, gdybyś nie był zdezorientowany, zanim to spowodowałoby, że straciłeś rozum. Oto, co się działo:Jeśli spojrzysz na style ładowane przez Google na stronie, gdy ładuje się interfejs API, zobaczysz to:
OK, więc Google chciał, aby mapy były nieco bardziej spójne, zawsze wykorzystując
Roboto
rodzinę czcionek. Problem polega na tym, że dla większości ludzi, zanim otworzyłeśinfoWindow
, przeglądarka nie pobrała jeszczeRoboto
czcionki (ponieważ nic innego na twojej stronie jej nie używało, więc przeglądarka jest na tyle inteligentna, że wie, że nie musi jej pobierać ta czcionka). Pobieranie tej czcionki nie jest natychmiastowe, mimo że jest bardzo szybkie. Gdy po raz pierwszy otworzyszinfoWindow
i API dopisujediv
ze swojejinfoWindow
zawartości do ciała, aby wziąć go za pomiary, rozpoczyna pobieranieRoboto
czcionek, ale twojeinfoWindow's
są pomiary, a okno jest umieszczone na mapie, zanimRoboto
zakończy pobieranie. Rezultatem był dość częstoinfoWindow
którego pomiary zostały wykonane, gdy treść była renderowana przy użyciuArial
lubsans-serif
czcionką, ale gdy była wyświetlana na mapie (iRoboto
zakończyła pobieranie), jej zawartość była wyświetlana czcionką o innym rozmiarze - i voila - paski przewijania pojawiają się po raz pierwszy otwieraszinfoWindow
. Otwórz dokładnie to samoinfoWindow
po raz drugi - w którym momencieRoboto
plik został pobrany i będzie używany, gdy API będzie mierzyćinfoWindow
zawartość i nie zobaczysz żadnych pasków przewijania.źródło
Wypróbowałem każdą z wymienionych odpowiedzi. Żaden nie pracował dla mnie. To ostatecznie naprawiło to na stałe. Kod, który odziedziczyłem, miał
DIV
otokę wokół wszystkich wpisów<h#>
i<p>
. Po prostu wymusiłem jakiś "styl" w tym samym DIV, biorąc pod uwagę pożądaną maksymalną szerokość, wrzuciłem na wszelki wypadek zmianę wysokości linii na wszelki wypadek (czyjaś poprawka) i własnąwhite-space: nowrap
, co następnie sprawiło, że automatyczne przepełnienie dokonało poprawnych korekt. Bez paska przewijania, bez obcinania i bez problemów!html = '<div class="map-overlay" style="max-width: 400px; line-height: normal; white-space: nowrap; overflow: auto; ">';
źródło
white-space: nowrap
magia - pozostałe style były niepotrzebne. Twoje zdrowie!font-family: sans-serif !important; font-weight: normal !important;
do CSS.Wiem, że to stary wątek, ale właśnie napotkałem ten sam problem. Miałem
<h2>
i<p>
elementy w InfoWindow i oba miały dolne marginesy. Usunąłem marginesy i rozmiar InfoWindow był prawidłowy. Żadna z innych sugerowanych poprawek nie zadziałała. Podejrzewam, że kalkulacja rozmiaru InfoWindow nie uwzględnia marginesów.źródło
<div style='overflow:hidden;'></div>
Wygląda dobrze teraz.Zamierzam dodać moją odpowiedź do listy, ponieważ ŻADEN z nich nie rozwiązał mojego problemu. Skończyło się na zawinięciu zawartości w element div, nadając mu klasę i określając element
min-width
wmaxWidth
elemencie div ORAZ określając element w infoWindow, ORAZ oba musiały mieć ten sam rozmiar, w przeciwnym razie szerokość lub wysokość byłyby przepełnione na pudełkach z niewłaściwą ilością zawartości.JavaScript:
// Set up the content for the info box var content = "<div class='infowindow-content'>" + content + "</div>"; // create a map info box var infoWindow = new google.maps.InfoWindow({ maxWidth: 350, content: content });
CSS:
źródło
min-width
treści było jedyną rzeczą, która działała dla mnie. NiemaxWidth
musiałem jednak ustawiać na infoWindow.Wypróbowałem wszystkie te rozwiązania i żadne nie działało. Po kilku próbach i błędach zrozumiałem.
<style type="text/css"> #map_canvas { line-height:normal; } </style>
Ustaw wysokość linii: normalna dla elementu div kanwy mapy.
źródło
#map_canvas
Mapach Google v3 nie ma tego, co widzę. To musi pochodzić ze starej wersji v2.#map_canvas
to div, którego używasz na mapie. Może to być dowolne imię.Wygląda na to, że problem dotyczy czcionki internetowej Roboto.
Infowindow jest renderowane z wbudowanymi właściwościami width i height na podstawie dostarczonej treści. Jednak nie jest obliczany przy użyciu już wyrenderowanych / załadowanych czcionek internetowych. Kiedy czcionka zostanie wyrenderowana PO wydrukowaniu całej mapy na ekranie, powoduje to pojawienie się pasków przewijania z powodu właściwości „overflow: auto” wewnątrz DIV okna.
Rozwiązaniem, które znalazłem, jest zawinięcie treści w DIV, a następnie zastosowanie CSS, aby zastąpić czcionkę internetową:
.gmap_infowin { font-family: sans-serif !important; font-weight: normal !important; } <div class="gmap_infowin">Your info window content here.</div>
źródło
To zabawne, podczas gdy poniższy kod poprawi pasek przewijania WIDTH:
.gm-style-iw { overflow: hidden !important; line-height: 1.35; }
Wymagało to poprawienia paska przewijania HEIGHT:
.gm-style-iw div { overflow: hidden !important; }
EDYCJA: dodawanie spacji: nowrap; do obu stylów może rozwiązać problem z odstępami, który wydaje się utrzymywać się po usunięciu pasków przewijania. Świetna uwaga, Nathan.
źródło
To działa dla mnie. Umieść
div
wsetContent
sh_map.infoWindow.setContent([ '<div id=\"mydiv\">', 'Your content goes here', ].join(''));
Następnie dodaj ten CSS do swojej strony:
<style type="text/css"> #map-canvas { text-align: center; vertical-align: middle; } #mydiv { font-family: "Comic Sans MS", cursive; font-size: 10px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; letter-spacing: normal; text-align: center; vertical-align: middle; word-spacing: normal; } </style>
Na przykład zobacz http://www.student-homes-northampton.co.uk ; kliknij linki pod zdjęciami domów, aby wyświetlić mapę Google.
źródło
To całkowicie rozwiązało mój problem:
.gm-style-iw { overflow: visible !important; height: auto !important; width: auto !important; }
źródło
Miałem ten sam problem z IE i wypróbowałem wiele poprawek opisanych w tych odpowiedziach, ale nie byłem w stanie niezawodnie usunąć pionowych pasków przewijania w IE.
To, co działało najlepiej, to przełączenie się na stałe rozmiary czcionek w oknie informacyjnym - „px” ... Używałem ems. Po naprawieniu rozmiaru czcionki nie musiałem już jawnie deklarować szerokości lub wysokości okna infowindow, a paski przewijania zniknęły na dobre.
źródło
Ważna jest również wysokość kontenera mapy. Jeśli za mały infoWindow zawsze będzie miał wysokość 80px. Inaczej
maxWidth
i#innerDiv
poprawka działa jak czar.źródło
Jeśli nic innego, spróbuj dodać zawartość po otwarciu okna. To powinno zmusić go do zmiany rozmiaru.
infoWindow = new google.maps.InfoWindow() infoWindow.open(map, marker) infoWindow.setContent(content)
źródło
Użyj zdarzenia domready i ponownie otwórz okno informacyjne i pokaż ukrytą zawartość po dwukrotnym uruchomieniu zdarzenia domready, aby upewnić się, że wszystkie elementy dom zostały załadowane.
// map is created using google.maps.Map() // marker is created using google.maps.Marker() // set the css for the content div .infowin-content { visibility: hidden; } infowindow = new google.maps.InfoWindow(); infowindow.setContent("<div class='infowin-content'>Content goes here</div>"); infowindow.setPosition(marker.getPosition()); infowindow.set("isdomready", false); infowindow.open(map); // On Dom Ready google.maps.event.addListener(infowindow, 'domready', function () { if (infowindow.get("isdomready")) { // show the infowindow by setting css jQuery('.infowin-content').css('visibility', 'visible'); } else { // trigger a domready event again. google.maps.event.trigger(infowindow, 'content_changed'); infowindow.set("isdomready", true); } }
Próbowałem po prostu wykonać setTimeout (/ * show infowin callback * /, 100), ale czasami to nie działało, jeśli zawartość (tj: obrazy) ładowała się zbyt długo.
Mam nadzieję, że to działa dla Ciebie.
źródło
Miałem ten sam problem, szczególnie zauważalny, gdy mój
<h2>
element został zawinięty do drugiej linii.Zastosowałem klasę do a
<div>
w infoWindow i zmieniłem czcionki na ogólną czcionkę systemową (w moim przypadku Helvetica) zamiast na czcionkę internetową @ font-face, z której korzystała. Problem rozwiązany.źródło
//infowindow.setContent(response); var infowindowopts = { maxWidth: 274, content: response }; infowindow.setOptions(infowindowopts);
źródło
Dodaj a
min-height
do elementu klasy infoWindow.To rozwiąże problem, jeśli wszystkie twoje infoWindows mają ten sam rozmiar.
Jeśli nie, dodaj ten wiersz jQuery do funkcji klikania dla infoWindow:
//remove overflow scrollbars $('#myDiv').parent().css('overflow','');
źródło
Nie mogłem zmusić go do działania w jakimkolwiek kształcie lub formie, włączyłem 3 elementy div do pudełka. Owinąłem je w zewnętrzny element div, z szerokościami i wysokościami ustawionymi prawidłowo i nic nie działało.
Ostatecznie naprawiłem to, ustawiając div jako absolutny lewy górny róg, a następnie przed div ustawiłem dwa obrazy, jeden o szerokości 300 pikseli i wysokości 1 piksela, jeden o wysokości 120 pikseli i szerokości 1 piksela, przezroczystego gifu.
W takim razie skalował się prawidłowo!
Jest brzydki, ale działa.
Możesz też zrobić jeden obraz i ustawić zindeks, którego oczekuję, lub nawet jeden obraz, jeśli twoje okno nie ma interakcji, ale zawierał on formularz, więc to nie była opcja ...
źródło
Myślę, że to zachowanie jest spowodowane stylizacją css w zewnętrznym kontenerze, miałem ten sam problem, ale rozwiązałem go za pomocą wewnętrznego div i dodając do niego trochę wypełnienia, wiem, że to dziwne, ale rozwiązało problem
<div id="fix_height"> <h2>Title</h2> <p>Something</p> </div>
I w moim style.css
div#fix_height{ padding: 5px; }
źródło
Miałem element inline (tag a) bezpośrednio wewnątrz elementu
div
zstyle="overflow:auto"[...
owiniętymp
tagiem i naprawiłem go.Wygląda na to, że spowoduje to każdy element wbudowany, który nie jest zagnieżdżony w elemencie blokowym bezpośrednio w oknie infowindow.
źródło
Moją odpowiedzią jest dodanie detektora (za pomocą addListenerOnce), aby sprawdzić, czy infoWindow zostało dodane do DOM, a następnie ponowne otwarcie infoWindow (nie ma potrzeby go zamykać).
// map, marker and infoWindow code, we'll call them // myMap, myMarker and myInfoWindow myInfoWindow.open(myMap, myMarker); google.maps.event.addListenerOnce(myInfoWindow, 'domready', function(){ myInfoWindow.open(myMap, myMarker); });
źródło
Dodanie następującego kodu do mojego CSS załatwiło sprawę:
źródło
Podsumowując wszystkie rozwiązania, które działały dla mnie we wszystkich przeglądarkach:
Ustaw maksymalną szerokość okna informacyjnego:
this.infowindow = new google.maps.InfoWindow({ maxWidth: 200 });
Owiń zawartość okna informacyjnego za pomocą
<div style="overflow:hidden;line-height:1.35;min-width:200px;">*CONTENT*</div>
(zmień min-width dla wartości ustawionej w infowindow maxWidth)
Przetestowałem to i działało na każdej przeglądarce, a miałem ponad 400 markerów ...
źródło
Wiem, że wiele innych osób znalazło rozwiązania, które działały w ich konkretnym przypadku, ale ponieważ żadna z nich nie działała w moim konkretnym przypadku, pomyślałem, że może to być pomocne dla kogoś innego.
Trochę szczegółów:
Używam google Maps API v3 w projekcie, w którym wbudowany CSS jest czymś, czego naprawdę chcemy uniknąć. Moje okna informacyjne działały we wszystkim oprócz IE11, gdzie szerokość nie została poprawnie obliczona. Spowodowało to przepełnienie div, które wyzwoliło paski przewijania.
Musiałem zrobić trzy rzeczy:
Usuń cały wyświetlacz: reguły stylu inline-block z czegokolwiek w treści infowindow (zamieniłem na display: block) - wpadłem na pomysł, aby wypróbować to z wątku (którego już nie mogę znaleźć), w którym ktoś miał to samo problem z IE6.
Przekaż zawartość jako węzeł DOM zamiast jako ciąg. Używam jQuery, więc mogłem to zrobić, zastępując:
infowindow.setContent(infoWindowDiv.html());
zinfowindow.setContent($(infoWindowDiv.html())[0]);
To okazało się dla mnie najłatwiejsze, ale jest wiele innych sposobów na uzyskanie tego samego wyniku.Użyj hackowania "setMaxWidth" - ustaw opcję MaxWidth w konstruktorze - ustawienie opcji później nie działa. Jeśli naprawdę nie chcesz maksymalnej szerokości, ustaw ją na bardzo dużą liczbę.
Nie wiem, dlaczego to zadziałało i nie jestem pewien, czy podzbiór z nich zadziała. Wiem, że żaden z nich nie działa dla wszystkich moich przypadków użycia indywidualnie i że 2 + 3 nie działa. Nie miałem czasu na testowanie 1 + 2 lub 1 + 3.
źródło
Nie do przyjęcia było dla mnie sztywne zakodowanie szerokości i wysokości okna informacyjnego lub ustawienie
white-space: nowrap
,maxWidth
rozwiązanie nie pomogło mi, a wszystko inne albo nie działało, albo było w inny sposób nieodpowiednie dla mojego przypadku użycia.Moim rozwiązaniem było ustawienie zawartości, otwarcie okna, a następnie po uruchomieniu
domready
zdarzenia ustawienieheight
właściwości CSS zawartości na dowolną wysokość, a następnie wymuszenie odpowiedniej zmiany rozmiaru okna InfoWindow w Mapach Google.infoWindow
jest obiektem InfoWindow,$infoWindowContents
jest obiektem Jquery zawierającym zawartość, którą chcę tam umieścić,map
jest moim obiektem Map.marker
to znacznik, który został kliknięty.infoWindow.setContent($infoWindowContents.get(0)); var listener = google.maps.event.addListener(infoWindow, 'domready', function() { // Stop listening, otherwise the listeners stack up if the window is opened again google.maps.event.removeListener(listener); // Set the height on the container to however tall the browser is currently rendering it $infoWindowContents.height($infoWindowContents.height()); // Force Google Maps to recalculate the InfoWindow height infoWindow.setContent($infoWindowContents.get(0)); }); infoWindow.open(map, marker);
(Opublikowałem to samo rozwiązanie na podobne pytanie Jak mogę zmienić rozmiar mapy Google Maps InfoWindow, aby dopasować ją do treści, która jest w nim umieszczona? )
źródło
Po straceniu czasu i czytaniu przez chwilę chciałem po prostu czegoś prostego, ten CSS działał zgodnie z moimi wymaganiami.
.gm-style-iw > div { overflow: hidden !important; }
Nie jest to również rozwiązanie natychmiastowe, ale oznaczenie problemu gwiazdką / komentowanie może sprawić, że go naprawią, ponieważ uważają, że został naprawiony: http://code.google.com/p/gmaps-api-issues/issues/detail?id= 5713
źródło
To jest ten, który załatwił mi sprawę:
.gm-style-iw>div { overflow: visible !important; }
Dopiero
overflow: visible
włączenie.gm-style-iw
faktycznie pogorszyło problem! Zauważyłem w inspektorze narzędzi deweloperskich Chrome, że wewnątrz.gm-style-iw
elementu znajdują się dwa elementy div , które sąoverflow: auto
ustawione domyślnie.W moich InfoWindows wyświetlam sporo tekstu w formacie HTML, może to dlatego inne rozwiązania w ogóle nie działały.
źródło