title: Angular2 - ngZone - google.maps doesn't trigger change detection
body: <p>I'm using Geocoder API, and when the results are returned, the two-way data binding doesn't work. The data just doesn't refresh inside the view. If I change any other property manually, the data gets refreshed... So, I googled (a lot) and found a solution that uses <code>ngZone</code>. Here's what I've done:</p>
  
  <pre><code>  getLocation(address: string): void {
      var mygc = new google.maps.Geocoder();
      this._ngZone.runOutsideAngular(() =&gt; {
  
        mygc.geocode({
          'address': address
        }, (results, status) =&gt; {
  
          var data: any = results[0];
  
          this._ngZone.run(() =&gt; {
            this.myObject.myData = {          
              lat: data.geometry.location.lat(),
              lng: data.geometry.location.lng()
            };
          });
  
        });
  
      });
    }
  </code></pre>
  
  <p>So I have several questions: </p>
  
  <ol>
  <li>When is <code>ngZone</code> used anyway? The documentation is quite loose...</li>
  <li>since this works without <code>runOutsideAngular()</code> as well, what's the point of using it? The example includes this function call as well, so I implemented it too. But it works without it as well...</li>
  <li>Is there any other way to refresh <code>myObject</code> in the view?</li>
  </ol>
  
  <p>Thanks!</p>