public IPointCollection4 ToPointCollection(IGeometry geometry, out int nrPoints)
        {
            IPointCollection4 result = null;

            nrPoints = 0;

            if (geometry != null)
            {
                result = geometry as IPointCollection4;
                TypeOfLayer typeOfLayer = GetTypeOfLayer(geometry);

                if ((!geometry.IsEmpty) && (typeOfLayer == TypeOfLayer.Point) && (result == null) && IsPointMeasurement)
                {
                    var pointc = geometry as IPoint;
                    result = new MultipointClass();
                    result.AddPoint(pointc);
                }

                if (result != null)
                {
                    nrPoints = result.PointCount;

                    if ((nrPoints >= 2) && (typeOfLayer == TypeOfLayer.Polygon))
                    {
                        IPoint point1 = result.Point[0];
                        IPoint point2 = result.Point[nrPoints - 1];
                        nrPoints = (point1.Compare(point2) == 0) ? (nrPoints - 1) : nrPoints;
                    }
                }
            }

            return(result);
        }
        private Measurement(int entityId, string entityType, FrmGlobespotter frmGlobespotter, bool drawPoint)
        {
            _entityId        = entityId;
            _frmGlobespotter = frmGlobespotter;
            DrawPoint        = drawPoint;

            switch (entityType)
            {
            case "pointMeasurement":
                _typeOfLayer = TypeOfLayer.Point;
                break;

            case "surfaceMeasurement":
                _typeOfLayer = TypeOfLayer.Polygon;
                break;

            case "lineMeasurement":
                _typeOfLayer = TypeOfLayer.Line;
                break;

            default:
                _typeOfLayer = TypeOfLayer.None;
                break;
            }
        }
 public bool IsTypeOfLayer(TypeOfLayer typeOfLayer)
 {
     return(_typeOfLayer == typeOfLayer);
 }