Tip: KML file can display big infowindow with scroll bar

159 views
Skip to first unread message

Joseph Elfelt

unread,
Sep 28, 2011, 4:11:07 PM9/28/11
to Google Maps JavaScript API v3
Myself and others have complained that if a KML feature has a lot of
text then part of that text spills out the bottom of the infowindow
when that feature is clicked. Today I discovered a simple solution.

1. (This step is optional) Make a single API infowindow that you
will reuse by updating its contents and location.

2. In your KML options - suppress the standard infowindow. Since
that one cannot do scroll bars, tell it to keep quiet.

3. Code snip (you will need to tweak the variable names):

google.maps.event.addListenerOnce(masu.kml_layer,
'metadata_changed', function(kmlEvent) {
// Get the name and description for the KML FILE
masu.kml_metadata = masu.kml_layer.getMetadata();
// Listen for a click on the KML
google.maps.event.addListener(masu.kml_layer, 'click',
function(kmlEvent) {
masu.infowindow.close();
masu.name = "";
masu.description = "";
masu.name = kmlEvent.featureData.name;
masu.description = kmlEvent.featureData.description;
if (masu.name == undefined || masu.name == "?") {
masu.name = "";
}
if (masu.description == undefined || masu.description ==
"?") {
masu.description = "";
}
// Display name and description for the item that was
clicked
temp_position = kmlEvent.latLng;
masu.msg = "<div style='margin-right:15px;'>" +
masu.name + "<br><br>" + masu.description + "</div>";
masu.infowindow.setContent(masu.msg);
masu.infowindow.setPosition(temp_position);
masu.infowindow.open(masu.map);
});
});
Reply all
Reply to author
Forward
0 new messages