title: Setting a Google Maps viewport to automatically fit pane for locations of (n) markers of various locations
body: <p>The approach I took thus far has been: </p>
  
  <pre><code>function addMarker( query ) {
      var geocoder = new google.maps.Geocoder();
      var afterGeocode = $.Deferred();
  
      // Geocode 'query' which is the address of a location.
      geocoder.geocode( 
              { address: query }, 
              function( results, status ){
  
                      if( status === 'OK' ){
                          afterGeocode.resolve( results ); // Activate deferred.
                      }
              }
      );
  
      afterGeocode.then( function( results ){
          var mOptions = {
              position: results[0].geometry.location,
              map: map
          }
  
          // Create and drop in marker.
          var marker = new google.maps.Marker( mOptions );
          marker.setAnimation( google.maps.Animation.DROP );      
  
          var current_bounds = map.getBounds(); // Get current bounds of map
          // use the extend() function of the latlngbounds object
          // to incorporate the location of the marker
          var new_bounds = current_bounds.extend( results[0].geometry.location );
          map.fitBounds( new_bounds ); // fit the map to those bounds
      }); 
  }
  </code></pre>
  
  <p>The problem I'm running into is that the map inexplicably zooms out by some amount, no matter if the new marker fits within the current viewport or not.</p>
  
  <p>What am I doing wrong?</p>
  
  <p><strong>ADDENDUM</strong></p>
  
  <p>I added logs and an additional variable to capture the map bounds <em>after</em> the transition was made (new_new_bounds)</p>
  
  <pre><code>current_bounds = // Map bounds before anything is done.
      {-112.39575760000002, 33.60691883366427},
      {-112.39295444655761, 33.639099}
  
  new_bounds = // From after the extend
      {-112.39295444655761, 33.60691883366427}, 
      {-112.39575760000002, 33.639099}
  
  new_new_bounds = // From after the fitbounds
      {-112.33942438265382, 33.588697452015374},
      {-112.44928766390382, 33.657309727063996}
  </code></pre>