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

            Coordinate[] coordinates = CoordinateArrays.RemoveRepeatedPoints(lineString.Coordinates);
            if (coordinates.Length < 2)
            {
                return; // same check already added in PolygonizeGraph (see #87 and #146)
            }
            Coordinate   startCoordinate = coordinates[0];
            Coordinate   endCoordinate   = coordinates[coordinates.Length - 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.Length - 2], false);
            Edge edge = new LineMergeEdge(lineString);

            edge.SetDirectedEdges(directedEdge0, directedEdge1);
            Add(edge);
        }
 /// <summary>
 /// Adds an Edge, DirectedEdges, and Nodes for the given LineString representation
 /// of an edge. 
 /// </summary>
 public void AddEdge(ILineString lineString)
 {
     if (lineString.IsEmpty)
         return;
     Coordinate[] coordinates = CoordinateArrays.RemoveRepeatedPoints(lineString.Coordinates);
     Coordinate startCoordinate = coordinates[0];
     Coordinate endCoordinate = coordinates[coordinates.Length - 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.Length - 2], false);
     Edge edge = new LineMergeEdge(lineString);
     edge.SetDirectedEdges(directedEdge0, directedEdge1);
     Add(edge);
 }
        /// <summary>
        /// Adds an Edge, DirectedEdges, and Nodes for the given LineString representation
        /// of an edge.
        /// </summary>
        public void AddEdge(ILineString lineString)
        {
            if (lineString.IsEmpty)
            {
                return;
            }
            Coordinate[] coordinates     = CoordinateArrays.RemoveRepeatedPoints(lineString.Coordinates);
            Coordinate   startCoordinate = coordinates[0];
            Coordinate   endCoordinate   = coordinates[coordinates.Length - 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.Length - 2], false);
            Edge edge = new LineMergeEdge(lineString);

            edge.SetDirectedEdges(directedEdge0, directedEdge1);
            Add(edge);
        }