internal static Geometries.Polygon ToSharpMapPolygon(NTSPolygon geom) { Geometries.LinearRing exteriorRing = ToSharpMapLinearRing((NTSLinearRing)geom.ExteriorRing); Collection <Geometries.LinearRing> interiorRings = new Collection <Geometries.LinearRing>(); foreach (NTSLineString interiorRing in geom.InteriorRings) { interiorRings.Add(ToSharpMapLinearRing((NTSLinearRing)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> public static Geometries.Geometry ToSharpMapGeometry(BoundingBox boundingBox) { Collection <Geometries.Point> vertices = new Collection <Geometries.Point>(); vertices.Add(new Geometries.Point(boundingBox.Min.X, boundingBox.Min.Y)); vertices.Add(new Geometries.Point(boundingBox.Max.X, boundingBox.Min.Y)); vertices.Add(new Geometries.Point(boundingBox.Max.X, boundingBox.Max.Y)); vertices.Add(new Geometries.Point(boundingBox.Min.X, boundingBox.Max.Y)); vertices.Add(new Geometries.Point(boundingBox.Min.X, boundingBox.Min.Y)); Geometries.LinearRing exterior = new Geometries.LinearRing(vertices); return(new Geometries.Polygon(exterior)); }
internal static NTSLinearRing ToNTSLinearRing(Geometries.LinearRing geom, IGeometryFactory factory) { NTSCoordinate[] coordinates = new NTSCoordinate[geom.NumPoints]; int index = 0; foreach (Geometries.Point point in geom.Vertices) { coordinates[index++] = ToNTSCoordinate(point, factory); } return(factory.CreateLinearRing(coordinates) as NTSLinearRing); }
protected override void OnMouseDoubleClick(MouseEventArgs e) { base.OnMouseDoubleClick(e); if (_activeTool == Tools.DrawPolygon) { if (GeometryDefined != null) { Geometries.LinearRing extRing = new Geometries.LinearRing(); for (int i = 0; i < _pointArray.GetUpperBound(0); i++) extRing.Vertices.Add(Map.ImageToWorld(new PointF(_pointArray[i].X, _pointArray[i].Y))); extRing.Vertices.Add(Map.ImageToWorld(new PointF(_pointArray[0].X, _pointArray[0].Y))); GeometryDefined(new Geometries.Polygon(extRing)); } ActiveTool = Tools.None; } else if (_activeTool == Tools.DrawLine) { if (GeometryDefined != null) { Geometries.LineString line = new Geometries.LineString(); for (int i = 0; i <= _pointArray.GetUpperBound(0); i++) line.Vertices.Add(Map.ImageToWorld(new PointF(_pointArray[i].X, _pointArray[i].Y))); GeometryDefined(line); } ActiveTool = Tools.None; } }
/// <summary> /// Converts the <see cref="SharpMap.Geometries.BoundingBox"/> instance <paramref name="boundingBox"/> /// into a correspondant <see cref="SharpMap.Geometries.Polygon"/>. /// </summary> public static Geometries.Geometry ToSharpMapGeometry(BoundingBox boundingBox) { Collection<Geometries.Point> vertices = new Collection<Geometries.Point>(); vertices.Add(new Geometries.Point(boundingBox.Min.X, boundingBox.Min.Y)); vertices.Add(new Geometries.Point(boundingBox.Max.X, boundingBox.Min.Y)); vertices.Add(new Geometries.Point(boundingBox.Max.X, boundingBox.Max.Y)); vertices.Add(new Geometries.Point(boundingBox.Min.X, boundingBox.Max.Y)); vertices.Add(new Geometries.Point(boundingBox.Min.X, boundingBox.Min.Y)); Geometries.LinearRing exterior = new Geometries.LinearRing(vertices); return new Geometries.Polygon(exterior); }