I have a simple question, but i can't find the answer in the Google Maps API documentation...
I have a map with 13 polygons drawed by the API. Here is an exemple of one of these polygons :
var zone_up_montblanc = new GPolygon([
new GLatLng(46.21270329318585, 6.134903900311617),
new GLatLng(46.20538443787925, 6.136844716370282),
new GLatLng(46.20525043957647, 6.141375978638086),
new GLatLng(46.20698751554006, 6.148050266912262),
new GLatLng(46.21110286985207, 6.153203229026629),
new GLatLng(46.21730757985668, 6.151718301267355),
new GLatLng(46.22092122197341, 6.153676364285801),
new GLatLng(46.22615123408969, 6.149844858907489),
new GLatLng(46.22851200024137, 6.149876939987202),
new GLatLng(46.22945159836955, 6.142758190170017),
new GLatLng(46.21735908463437, 6.141457132705133),
new GLatLng(46.21753573755057, 6.138058122426195),
new GLatLng(46.21270329318585, 6.134903900311617)
], "#6b1f43", 2, 0.9, "#92c87f", 0.5);
then :
map.addOverlay(zone_up_montblanc);
Polygons appears on my map, no problem. But the thing I have to do now is to open an "InfoWindow" by clicking on each polygons (with a different content for each polygons).
Did someone have an idea or an example?
Thanks a lot for your help !
I found a very nice solution to have multiple polygons with individual infowindows.
here is my code:
<script type="text/javascript"
src="https://maps.google.com/maps/api/js?sensor=false">
</script>
<script type="text/javascript" charset="utf-8">
var map;
var cities = {
"Hamburg":[
[53.60, 9.75],
[53.73, 10.19],
[53.48, 10.22]
],
"Hannover":[
[52.34, 9.61],
[52.28, 9.81],
[52.43, 9.85]
],
"Bremen":[
[53.22, 8.49],
[53.12, 8.92],
[53.02, 8.72]
]
};
var opened_info = new google.maps.InfoWindow();
function init() {
var mapOptions = {
zoom:8,
center:new google.maps.LatLng(53, 9.2),
mapTypeId:google.maps.MapTypeId.TERRAIN
};
map = new google.maps.Map(document.getElementById('map_canvas'),
mapOptions);
for (var c in cities) {
var coods = cities[c]
var polyPath = [];
for (j = 0; j < coods.length; j++) {
polyPath.push(new google.maps.LatLng(coods[j][0], coods[j][1]));
}
var shape = new google.maps.Polygon({
paths:polyPath,
fillColor:"#00FF00",
fillOpacity:0.6,
});
shape.infowindow = new google.maps.InfoWindow(
{
content:"<b>" + c + "</b>" + "</br>",
});
shape.infowindow.name = c;
shape.setMap(map);
google.maps.event.addListener(shape, 'click', showInfo);
}
}
;
function showInfo(event) {
opened_info.close();
if (opened_info.name != this.infowindow.name) {
this.infowindow.setPosition(event.latLng);
this.infowindow.open(map);
opened_info = this.infowindow;
}
}
</script>
It Provide also the function to close the Infowindows by clicking on the same polygon again.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With