本文整理汇总了C#中Route.GetPoints方法的典型用法代码示例。如果您正苦于以下问题:C# Route.GetPoints方法的具体用法?C# Route.GetPoints怎么用?C# Route.GetPoints使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Route
的用法示例。
在下文中一共展示了Route.GetPoints方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ProjectOn
/// <summary>
/// Project on route and return the next entry index and coordinate.
/// </summary>
/// <param name="route"></param>
/// <param name="coordinates"></param>
/// <returns></returns>
private KeyValuePair<int, GeoCoordinate> ProjectOn(Route route, GeoCoordinate coordinates)
{
double distance = double.MaxValue;
GeoCoordinate closest = null;
int closestIdx = -1;
List<GeoCoordinate> points = route.GetPoints();
for (int idx = 0; idx < points.Count - 1; idx++)
{
GeoCoordinateLine line = new GeoCoordinateLine(points[idx], points[idx + 1], true, true);
PointF2D projectedPoint = line.ProjectOn(coordinates);
GeoCoordinate projected;
double currentDistance;
if (projectedPoint != null) {
projected = new GeoCoordinate(projectedPoint[1], projectedPoint[0]);
currentDistance = coordinates.Distance(projected);
if (currentDistance < distance)
{
closest = projected;
closestIdx = idx + 1;
distance = currentDistance;
}
}
projected = points[idx];
currentDistance = coordinates.Distance(projected);
if (currentDistance < distance)
{
closest = projected;
closestIdx = idx;
distance = currentDistance;
}
}
return new KeyValuePair<int,GeoCoordinate>(closestIdx, closest);
}