/// <summary> /// Returns intersection points between the two polylines. /// </summary> /// <param name="polyline1"></param> /// <param name="polyline2"></param> /// <returns></returns> public static Point[] Intersect(this Polyline polyline1, Polyline polyline2) { if (Null(polyline1, polyline2)) return new Point[] { }; return !polyline1.Extent().Intersects(polyline2.Extent()) ? new Point[] { } : Intersect(polyline1.paths, polyline2.paths); }
/// <summary> /// Determines if the multipoint is within the specified distance from the polyline. /// </summary> /// <param name="multipoint"></param> /// <param name="polyline"></param> /// <param name="distance"></param> /// <returns></returns> public static bool WithinDistance(this Multipoint multipoint, Polyline polyline, double distance) { if (Null(multipoint, polyline)) return false; return multipoint.Extent().Buffer(distance).Intersects(polyline.Extent()) && multipoint.Distance(polyline) < distance; }
/// <summary> /// Determines if the polyline is within the specified distance from the other polyline. /// </summary> /// <param name="polyline1"></param> /// <param name="polyline2"></param> /// <param name="distance"></param> /// <returns></returns> public static bool WithinDistance(this Polyline polyline1, Polyline polyline2, double distance) { if (Null(polyline1, polyline2)) return false; return polyline1.Extent().Buffer(distance).Intersects(polyline2.Extent()) && polyline1.Distance(polyline2) < distance; }