code: function( element, location, placement ) {
          var i;
  
          element = $.getElement( element );
          i = getOverlayIndex( this.currentOverlays, element );
  
          if ( i >= 0 ) {
              this.currentOverlays[ i ].update( location, placement );
              THIS[ this.hash ].forceRedraw = true;
              /**
               * Raised when an overlay's location or placement changes
               * (see {@link OpenSeadragon.Viewer#updateOverlay}).
               *
               * @event update-overlay
               * @memberof OpenSeadragon.Viewer
               * @type {object}
               * @property {OpenSeadragon.Viewer} eventSource - A reference to the
               * Viewer which raised the event.
               * @property {Element} element
               * @property {OpenSeadragon.Point|OpenSeadragon.Rect} location
               * @property {OpenSeadragon.Placement} placement
               * @property {?Object} userData - Arbitrary subscriber-defined object.
               */
              this.raiseEvent( 'update-overlay', {
                  element: element,
                  location: location,
                  placement: placement
              });
          }
          return this;
      }
docs: Updates the overlay represented by the reference to the element or
  element id moving it to the new location, relative to the new placement.
  @method
  @param {Element|String} element - A reference to an element or an id for
  the element which is overlaid.
  @param {OpenSeadragon.Point|OpenSeadragon.Rect} location - The point or
  rectangle which will be overlaid. This is a viewport relative location.
  @param {OpenSeadragon.Placement} placement - The position of the
  viewport which the location coordinates will be treated as relative
  to.
  @return {OpenSeadragon.Viewer} Chainable.
  @fires OpenSeadragon.Viewer.event:update-overlay