I'm currently working with street intersections trying to find point(or points) where 2 given streets intersect(!disjoin). Streets are all Polyline features, and I have to work with 2 features at given time. I think this way it can be determined if they intersect(haven't yet tested it),

    public List<IPoint> RoadIntersections(IPolyline poly1, IPolyline poly2)
        IRelationalOperator ro = null;
        ro = poly1 as IRelationalOperator;

        ISegmentCollection sc = new PolylineClass() as ISegmentCollection;

        if (ro.Disjoint(sc as IGeometry) == false) //if they intersect
            //TODO: find intersection points

but what I would like to do is to find point (or points) where those two polylines intersect.

  • Have you tried using the "Locate Features Along Routes" tool in ArcGIS 10?
    – Aaron
    Commented Aug 13, 2012 at 15:19

2 Answers 2


You can use ITopologicalOperator Interface for finding intersections. esriGeometry0Dimension gets you the result in points/multipoints.

        List<IPoint> resultPoints = new List<IPoint>();
        ITopologicalOperator topOperator = (ITopologicalOperator)poly1;
        IGeometry resultGeom = (IGeometry)topOperator.Intersect(poly2, esriGeometryDimension.esriGeometry0Dimension);

        IGeometryCollection pointCollection = (IGeometryCollection)resultGeom;

        for (int i = 0; i < pointCollection.GeometryCount; i++)
  • Thanks, implemented in my code and it works. And I were actually starting to calcualte that point mathematically. :D
    – Sunder
    Commented Aug 13, 2012 at 11:45
  • @vinayan , it does not give me points after which two polyline are overlaping each other (have same end point) any idea how to get these points
    – Haider
    Commented Dec 27, 2016 at 18:00

Use ITopologicalOperator instead. See ITopologicalOperator.Intersect method.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.