internal GeometricEdge(GeometricGraph.EdgeEnumerator enumerator) { this.Id = enumerator.Id; this.From = enumerator.From; this.To = enumerator.To; this.Data = enumerator.Data; this.DataInverted = enumerator.DataInverted; this.Shape = enumerator.Shape; }
public bool RemoveEdge(uint vertex1, uint vertex2) { GeometricGraph.EdgeEnumerator edgeEnumerator = this.GetEdgeEnumerator(vertex1); while (edgeEnumerator.MoveNext()) { if ((int)edgeEnumerator.To == (int)vertex2) { return(this.RemoveEdge(edgeEnumerator.Id)); } } return(false); }
public int RemoveEdges(uint vertex) { int num = 0; GeometricGraph.EdgeEnumerator edgeEnumerator = this.GetEdgeEnumerator(vertex); while (edgeEnumerator.MoveNext()) { ((ArrayBase <ShapeBase>) this._shapes)[(long)edgeEnumerator.Id] = (ShapeBase)null; if (this.RemoveEdge(edgeEnumerator.Id)) { ++num; } } return(num); }
public static FeatureCollection GetFeaturesIn(this GeometricGraph graph, float minLatitude, float minLongitude, float maxLatitude, float maxLongitude) { FeatureCollection featureCollection = new FeatureCollection(); HashSet <uint> uintSet = graph.Search(minLatitude, minLongitude, maxLatitude, maxLongitude); HashSet <long> longSet = new HashSet <long>(); GeometricGraph.EdgeEnumerator edgeEnumerator = graph.GetEdgeEnumerator(); foreach (uint vertex1 in uintSet) { GeoCoordinateSimple vertex2 = graph.GetVertex(vertex1); featureCollection.Add(new Feature((Geometry) new Point(new GeoCoordinate((double)vertex2.Latitude, (double)vertex2.Longitude)), (GeometryAttributeCollection) new SimpleGeometryAttributeCollection((IEnumerable <Tag>) new Tag[1] { Tag.Create("id", vertex1.ToInvariantString()) }))); edgeEnumerator.MoveTo(vertex1); edgeEnumerator.Reset(); while (edgeEnumerator.MoveNext()) { if (!longSet.Contains((long)edgeEnumerator.Id)) { longSet.Add((long)edgeEnumerator.Id); List <ICoordinate> shape = graph.GetShape(edgeEnumerator.Current); List <GeoCoordinate> geoCoordinateList = new List <GeoCoordinate>(); foreach (ICoordinate coordinate in shape) { geoCoordinateList.Add(new GeoCoordinate((double)coordinate.Latitude, (double)coordinate.Longitude)); } LineString lineString = new LineString((IEnumerable <GeoCoordinate>)geoCoordinateList); featureCollection.Add(new Feature((Geometry)lineString, (GeometryAttributeCollection) new SimpleGeometryAttributeCollection((IEnumerable <Tag>) new Tag[1] { Tag.Create("id", edgeEnumerator.Id.ToInvariantString()) }))); } } } return(featureCollection); }