code: function bindMapEvents(scope, eventsStr, googleObject, element) {
      angular.forEach(eventsStr.split(' '), function (eventName) {
        //Prefix all googlemap events with 'map-', so eg 'click' 
        //for the googlemap doesn't interfere with a normal 'click' event
        var $event = { type: 'map-' + eventName };
        google.maps.event.addListener(googleObject, eventName, function (evt) {
          element.trigger(angular.extend({}, $event, evt));
          //We create an $apply if it isn't happening. we need better support for this
          //We don't want to use timeout because tons of these events fire at once,
          //and we only need one $apply
          if (!scope.$$phase) scope.$apply();
        });
      });
    }
docs: Setup map events from a google map object to trigger on a given element too, then we just use ui-event to catch events from an element