public virtual ITrackerFeature GetTrackerAtCoordinate(ICoordinate worldPos) { for (int i = 0; i < trackers.Count; i++) { ITrackerFeature trackerFeature = trackers[i]; ICoordinate size; if (null != trackerFeature.Bitmap) { size = CoordinateConverter.ImageToWorld(trackerFeature.Bitmap.Width, trackerFeature.Bitmap.Height); } else { // hack for RegularGridCoverageLayer size = CoordinateConverter.ImageToWorld(6, 6); } IEnvelope boundingBox = MapControlHelper.GetEnvelope(worldPos, size.X, size.Y); if (trackerFeature.Geometry.EnvelopeInternal.Intersects(boundingBox)) { return(trackerFeature); } } return(null); }
public override ITrackerFeature GetTrackerAtCoordinate(ICoordinate worldPos) { ITrackerFeature trackerFeature = base.GetTrackerAtCoordinate(worldPos); if (null == trackerFeature) { ICoordinate org = CoordinateConverter.ImageToWorld(new PointF(0, 0)); ICoordinate range = CoordinateConverter.ImageToWorld(new PointF(6, 6)); // todo make attribute if (SourceFeature.Geometry.Distance(GeometryFactory.CreatePoint(worldPos)) < Math.Abs(range.X - org.X)) { return(AllTracker); } } return(trackerFeature); }