private IPolyline CreateGeodeticLine(IPoint fromPoint, IPoint toPoint, double distance = 0.0)
{
var construct = new Polyline() as IConstructGeodetic;
if (construct == null)
{
return null;
}
try
{
if (distance == 0)
{
construct.ConstructGeodeticLineFromPoints(GetEsriGeodeticType(), fromPoint, toPoint, GetLinearUnit(), esriCurveDensifyMethod.esriCurveDensifyByDeviation, -1.0);
}
else
{
var minorPolyline = new Polyline() as IPolyline;
minorPolyline.SpatialReference = Point1.SpatialReference;
minorPolyline.FromPoint = Point1;
minorPolyline.ToPoint = Point3;
construct.ConstructGeodeticLineFromDistance(GetEsriGeodeticType(), fromPoint, GetLinearUnit(), distance, GetAzimuth(minorPolyline as IGeometry),
esriCurveDensifyMethod.esriCurveDensifyByDeviation, -1.0);
}
}
catch { }
return construct as IPolyline;
}