本文整理汇总了C#中ILineString.Clone方法的典型用法代码示例。如果您正苦于以下问题:C# ILineString.Clone方法的具体用法?C# ILineString.Clone怎么用?C# ILineString.Clone使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ILineString
的用法示例。
在下文中一共展示了ILineString.Clone方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Simplify
/// <summary>
/// Simplifies the line with the given tolerance.
/// Writes the result in file.
/// </summary>
/// <param name="line">Line to simplify</param>
/// <param name="tolerance">Tolerance to use by simplify function</param>
/// <param name="supposedResult">The supposed result</param>
/// <param name="index"></param>
public void Simplify(ILineString line, double tolerance, ILineString supposedResult, int index)
{
try
{
Console.WriteLine("Job {0} started", index);
IGeometry geometry = TopologyPreservingSimplifier.Simplify((ILineString)line.Clone(), tolerance);
Assert.IsTrue(geometry.Equals(supposedResult));
Console.WriteLine("Job {0} terminated", index);
}
finally
{
Interlocked.Increment(ref _finishedJob);
}
}
示例2: AppendCoordinate
private void AppendCoordinate(ILineString lineString, ICoordinate worldPosition)
{
var newLineString = (ILineString)lineString.Clone();
double worldDistance = MapHelper.ImageToWorld(Map, (int)ActualMinDistance);
ICoordinate coordinate;
if (TemporalEnd)
coordinate = lineString.Coordinates[lineString.Coordinates.Length - 2];
else
coordinate = lineString.Coordinates[lineString.Coordinates.Length - 1];
if (worldPosition.Distance(coordinate) > worldDistance)
{
// if distance is larger than marge add new coordinate at exact location. During drawing line
// you do not want to snap. For example a line should be able to pass very near a node.
// HACK: not nice to solve here. If autocurve do not add snapped point when dragging. If not auto
// curve use the actualSnapping value (=Snap)
ICoordinate SnapLocation = worldPosition;
if (!AutoCurve)
SnapLocation = Snap(worldPosition).Location;
if (TemporalEnd)
newLineString = (ILineString)GeometryHelper.SetCoordinate(lineString, lineString.Coordinates.Length - 1, SnapLocation);
else
newLineString = AppendCurvePoint(lineString, SnapLocation);
TemporalEnd = false;
}
else
{
ICoordinate snapLocation = Snap(worldPosition).Location;
if (TemporalEnd)
newLineString = (ILineString)GeometryHelper.SetCoordinate(lineString, lineString.Coordinates.Length - 1, snapLocation);
else
newLineString = AppendCurvePoint(lineString, snapLocation);
TemporalEnd = true;
}
newLineGeometry.Clear();
newLineGeometry.Add(newLineString);
}