Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        /// <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));
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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;
            }
        }
Esempio n. 5
0
 /// <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);
 }