Center Google Maps InfoWindow On Load

J'ai un problème consistant à centrer mon InfoWindow sur le chargement de la page. Sur la charge, la carte se concentre sur le marqueur, ce qui met l'InfoWindow hors écran (je travaille avec une taille courte pour mon conteneur de carte).

Maintenant, cliquez sur le marqueur pour recentrer la carte sur InfoWindow afin qu'elle ressemble exactement à ce que je veux. Dans ce cas, j'ai même essayé de déclencher le déclencheur marker.click pour obtenir une solution sur la charge, mais n'a eu aucune chance. Qu'est-ce qui me manque?

JSFIDDLE: http://jsfiddle.net/q9NTS/7/

<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script> <script type="text/javascript"> var geocoder = new google.maps.Geocoder(); var marker; var infoWindow; var map; function initialize() { var mapOptions = { zoom: 15, mapTypeId: google.maps.MapTypeId.ROADMAP }; map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); setLocation(); } function setLocation() { var address = '@(Model.Event.Address)' + ', ' + '@(Model.Event.City)' + ', ' + '@(Model.Event.State)' + ' ' + '@(Model.Event.Zip)'; geocoder.geocode({ 'address': address }, function (results, status) { if (status == google.maps.GeocoderStatus.OK) { var position = results[0].geometry.location; marker = new google.maps.Marker({ map: map, position: position, title: '@(Model.Event.Venue)' }); map.setCenter(marker.getPosition()); var content = 'blah'; infoWindow = new google.maps.InfoWindow({ content: content }); google.maps.event.addListener(marker, 'click', function () { infoWindow.open(map, marker); }); //infoWindow.open(map, marker); doesn't work google.maps.event.trigger(marker, 'click'); //still doesn't work } else { // } }); } google.maps.event.addDomListener(window, 'load', initialize); </script> 

Vous avez simplement besoin d'attendre plus longtemps avant de déclencher l'événement de clic.

 // wait until the map is idle. google.maps.event.addListenerOnce(map, 'idle', function() { setTimeout(function() { // wait some more (...) google.maps.event.trigger(marker, 'click'); //still doesn't work },2000); }); 

violon