Grieck

Why is the distance off?

Discussion created by Grieck on Nov 1, 2011
Latest reply on Nov 2, 2011 by Grieck
Hello Everyone,

I'm using the IConstructPoint.ConstructAlong method to find a position along a poly line. I return the results as an IPoint and use that point to mark the location with a symbol.

The problem is that when I use the ESRI measure tool it doesn't match the length I passed into the Construct Along method. The point seems to be approximately 7 feet off.

As for code to get the point object I do a search for a feature on the poly line feature class to get the feature. I then cast the feature to ICurve and then call the Construct Along method.

  featurecursor = featureclass.Search(queryfilter, false);
  if (featurecursor != null)
    feature = featurecursor.NextFeature();
  if (feature != null)
  {
     ICurve curve = (ICurve)feature;
     IConstructPoint2 conpnt2 = new PointClass();
     conpnt2. ConstructAlong(curve, esriSegmentExtension.esriNoExtension, length, false);
     IPoint point = (IPoint)conpnt2;
  }

  IRgbColor rgbColorWhite = new RgbColorClass();
  rgbColorWhite.Red = 255;
  rgbColorWhite.Green = 255;
  rgbColorWhite.Blue = 255;
  IPictureMarkerSymbol bitmapPictureMarkerSymbolCls = new PictureMarkerSymbolClass();
  IMarkerElement markerElement = new MarkerElementClass();
  bitmapPictureMarkerSymbolCls.CreateMarkerSymbolFromFile(esriIPictureType.esriIPictureBitmap, MyPicture);
  bitmapPictureMarkerSymbolCls.Angle = 0;
  bitmapPictureMarkerSymbolCls.Size = ((MarkerSize > 0) ? MarkerSize : 1);
  bitmapPictureMarkerSymbolCls.BitmapTransparencyColor = rgbColorWhite;
  bitmapPictureMarkerSymbolCls.XOffset = xoffset;
  bitmapPictureMarkerSymbolCls.YOffset = yoffset;
  markerElement.Symbol = bitmapPictureMarkerSymbolCls;
  IElement element = (IElement)markerElement;
  IElementProperties3 ep3 = (IElementProperties3)element;
  element.Geometry = point;
  ep3.Name = System.IO.Path.GetFileNameWithoutExtension(picFilePath);
  MxDoc.ActiveView.GraphicsContainer.AddElement(element, 0);
  MxDoc.ActiveView.GraphicsContainer.UpdateElement(element);
  MxDoc.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);

Outcomes