code: function(id, geometry, style, featureId) {
          style = this.applyDefaultSymbolizer(style);
          // Get the node if it's already on the map.
          var node = this.nodeFactory(id, this.getNodeType(geometry, style));
          
          // Set the data for the node, then draw it.
          node._featureId = featureId;
          node._boundsBottom = geometry.getBounds().bottom;
          node._geometryClass = geometry.CLASS_NAME;
          node._style = style;
  
          var drawResult = this.drawGeometryNode(node, geometry, style);
          if(drawResult === false) {
              return false;
          }
           
          node = drawResult.node;
          
          // Insert the node into the indexer so it can show us where to
          // place it. Note that this operation is O(log(n)). If there's a
          // performance problem (when dragging, for instance) this is
          // likely where it would be.
          if (this.indexer) {
              var insert = this.indexer.insert(node);
              if (insert) {
                  this.vectorRoot.insertBefore(node, insert);
              } else {
                  this.vectorRoot.appendChild(node);
              }
          } else {
              // if there's no indexer, simply append the node to root,
              // but only if the node is a new one
              if (node.parentNode !== this.vectorRoot){ 
                  this.vectorRoot.appendChild(node);
              }
          }
          
          this.postDraw(node);
          
          return drawResult.complete;
      }
docs: Method: redrawNode
  
  Parameters:
  id - {String}
  geometry - {<OpenLayers.Geometry>}
  style - {Object}
  featureId - {String}
  
  Returns:
  {Boolean} true if the complete geometry could be drawn, null if parts of
  the geometry could not be drawn, false otherwise