code: function(evt) {
          var featureId, feature;
          
          if (this.hitDetection && this.root.style.display !== "none") {
              // this dragging check should go in the feature handler
              if (!this.map.dragging) {
                  var xy = evt.xy;
                  var x = xy.x | 0;
                  var y = xy.y | 0;
                  var data = this.hitContext.getImageData(x, y, 1, 1).data;
                  if (data[3] === 255) { // antialiased
                      var id = data[2] + (256 * (data[1] + (256 * data[0])));
                      if (id) {
                          featureId = "OpenLayers_Feature_Vector_" + (id - 1 + this.hitOverflow);
                          try {
                              feature = this.features[featureId][0];
                          } catch(err) {
                              // Because of antialiasing on the canvas, when the hit location is at a point where the edge of
                              // one symbol intersects the interior of another symbol, a wrong hit color (and therefore id) results.
                              // todo: set Antialiasing = 'off' on the hitContext as soon as browsers allow it.
                          }
                      }
                  }
              }
          }
          return feature;
      }
docs: Method: getFeatureIdFromEvent
  Returns a feature id from an event on the renderer.
  
  Parameters:
  evt - {<OpenLayers.Event>}
  
  Returns:
  {<OpenLayers.Feature.Vector} A feature or undefined.  This method returns a
  feature instead of a feature id to avoid an unnecessary lookup on the
  layer.