Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Google Maps Api v3 - getBounds is undefined

I'm switching from v2 to v3 google maps api and got a problem with gMap.getBounds() function.

I need to get the bounds of my map after its initialization.

Here is my javascript code:

 var gMap; $(document).ready(      function() {          var latlng = new google.maps.LatLng(55.755327, 37.622166);         var myOptions = {             zoom: 12,             center: latlng,             mapTypeId: google.maps.MapTypeId.ROADMAP         };         gMap = new google.maps.Map(document.getElementById("GoogleMapControl"), myOptions);          alert(gMap.getBounds());     } ); 

So now it alerts me that gMap.getBounds() is undefined.

I've tried to get getBounds values in click event and it works fine for me, but I cannot get the same results in load map event.

Also getBounds works fine while document is loading in Google Maps API v2, but it fails in V3.

Could you please help me to solve this problem?

like image 420
DolceVita Avatar asked May 14 '10 07:05

DolceVita


1 Answers

In the early days of the v3 API, the getBounds() method required the map tiles to have finished loading for it to return correct results. However now it seems that you can listen to bounds_changed event, which is fired even before the tilesloaded event:

<!DOCTYPE html> <html>  <head>     <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>     <title>Google Maps v3 - getBounds is undefined</title>     <script src="http://maps.google.com/maps/api/js?sensor=false"             type="text/javascript"></script>  </head>  <body>     <div id="map" style="width: 500px; height: 350px;"></div>      <script type="text/javascript">        var map = new google.maps.Map(document.getElementById("map"), {          zoom: 12,          center: new google.maps.LatLng(55.755327, 37.622166),          mapTypeId: google.maps.MapTypeId.ROADMAP       });        google.maps.event.addListener(map, 'bounds_changed', function() {          alert(map.getBounds());       });    </script>  </body>  </html> 
like image 111
Daniel Vassallo Avatar answered Sep 21 '22 17:09

Daniel Vassallo