docs: function(x, y, scale) {
           scale = scale || 1;
           var origin = this.layerContainerOriginPx,
               needTransform = scale !== 1;
           x = x || origin.x;
           y = y || origin.y;
              
           var style = this.layerContainerDiv.style,
               transform = this.applyTransform.transform,
               template = this.applyTransform.template;
          
           if (transform === undefined) {
               transform = OpenLayers.Util.vendorPrefix.style('transform');
               this.applyTransform.transform = transform;
               if (transform) {
                   // Try translate3d, but only if the viewPortDiv has a transform
                   // defined in a stylesheet
                   var computedStyle = OpenLayers.Element.getStyle(this.viewPortDiv,
                       OpenLayers.Util.vendorPrefix.css('transform'));
                   if (!computedStyle || computedStyle !== 'none') {
                       template = ['translate3d(', ',0) ', 'scale3d(', ',1)'];
                       style[transform] = [template[0], '0,0', template[1]].join('');
                   }
                   // If no transform is defined in the stylesheet or translate3d
                   // does not stick, use translate and scale
                   if (!template || !~style[transform].indexOf(template[0])) {
                       template = ['translate(', ') ', 'scale(', ')'];
                   }
                   this.applyTransform.template = template;
               }
           }
           
           // If we do 3d transforms, we always want to use them. If we do 2d
           // transforms, we only use them when we need to.
           if (transform !== null && (template[0] === 'translate3d(' || needTransform === true)) {
               // Our 2d transforms are combined with style.left and style.top, so
               // adjust x and y values and set the origin as left and top
               if (needTransform === true && template[0] === 'translate(') {
                   x -= origin.x;
                   y -= origin.y;
                   style.left = origin.x + 'px';
                   style.top = origin.y + 'px';
               }
               style[transform] = [
                   template[0], x, 'px,', y, 'px', template[1],
                   template[2], scale, ',', scale, template[3]
               ].join('');
           } else {
               style.left = x + 'px';
               style.top = y + 'px';
               // We previously might have had needTransform, so remove transform
               if (transform !== null) {
                   style[transform] = '';
               }
           }
       }