internal static Geometries.Polygon ToSharpMapPolygon(Polygon polygon) { Geometries.LinearRing exteriorRing = ToSharpMapLinearRing((LinearRing)polygon.ExteriorRing); Collection <Geometries.LinearRing> interiorRings = new Collection <Geometries.LinearRing>(); foreach (LineString interiorRing in polygon.InteriorRings) { interiorRings.Add(ToSharpMapLinearRing((LinearRing)interiorRing)); } return(new Geometries.Polygon(exteriorRing, interiorRings)); }
/// <summary> /// Converts the <see cref="SharpMap.Geometries.BoundingBox"/> instance <paramref name="boundingBox"/> /// into a correspondant <see cref="SharpMap.Geometries.Polygon"/>. /// </summary> /// <param name="boundingBox"></param> /// <returns></returns> public static Geometries.Geometry ToSharpMapGeometry(BoundingBox boundingBox) { Collection <Point> vertices = new Collection <Point>(); vertices.Add(new Point(boundingBox.Min.X, boundingBox.Min.Y)); vertices.Add(new Point(boundingBox.Max.X, boundingBox.Min.Y)); vertices.Add(new Point(boundingBox.Max.X, boundingBox.Max.Y)); vertices.Add(new Point(boundingBox.Min.X, boundingBox.Max.Y)); vertices.Add(new Point(boundingBox.Min.X, boundingBox.Min.Y)); Geometries.LinearRing exterior = new Geometries.LinearRing(vertices); return(new Geometries.Polygon(exterior)); }
internal static LinearRing ToNTSLinearRing(Geometries.LinearRing linearRing, GeometryFactory factory) { Coordinate[] coordinates = new Coordinate[linearRing.NumPoints]; int index = 0; foreach (Point point in linearRing.Vertices) { coordinates[index++] = ToNTSCoordinate(point, factory); } return(factory.CreateLinearRing(coordinates) as LinearRing); }
/// <summary> /// Converts the <see cref="SharpMap.Geometries.BoundingBox"/> instance <paramref name="boundingBox"/> /// into a correspondant <see cref="SharpMap.Geometries.Polygon"/>. /// </summary> /// <param name="boundingBox"></param> /// <returns></returns> public static Geometries.Geometry ToSharpMapGeometry(BoundingBox boundingBox) { Collection<Point> vertices = new Collection<Point>(); vertices.Add(new Point(boundingBox.Min.X, boundingBox.Min.Y)); vertices.Add(new Point(boundingBox.Max.X, boundingBox.Min.Y)); vertices.Add(new Point(boundingBox.Max.X, boundingBox.Max.Y)); vertices.Add(new Point(boundingBox.Min.X, boundingBox.Max.Y)); vertices.Add(new Point(boundingBox.Min.X, boundingBox.Min.Y)); Geometries.LinearRing exterior = new Geometries.LinearRing(vertices); return new Geometries.Polygon(exterior); }