Esempio n. 1
0
        /// <summary>
        /// Adds an Edge, DirectedEdges, and Nodes for the given LineString representation
        /// of an edge.
        /// </summary>
        public void AddEdge(LineString lineString)
        {
            if (lineString.IsEmpty)
            {
                return;
            }

            ICoordinateList coordinates     = CoordinateCollection.RemoveRepeatedCoordinates(lineString.Coordinates);
            Coordinate      startCoordinate = coordinates[0];
            Coordinate      endCoordinate   = coordinates[coordinates.Count - 1];
            Node            startNode       = GetNode(startCoordinate);
            Node            endNode         = GetNode(endCoordinate);
            DirectedEdge    directedEdge0   = new LineMergeDirectedEdge(startNode, endNode, coordinates[1], true);
            DirectedEdge    directedEdge1   = new LineMergeDirectedEdge(endNode, startNode, coordinates[coordinates.Count - 2], false);
            Edge            edge            = new LineMergeEdge(lineString);

            edge.SetDirectedEdges(directedEdge0, directedEdge1);

            Add(edge);
        }
Esempio n. 2
0
 /// <summary>
 /// Adds a directed edge which is known to form part of this line.
 /// </summary>
 public void Add(LineMergeDirectedEdge directedEdge)
 {
     directedEdges.Add(directedEdge);
 }