Пример #1
0
        private static MG_MultiPolygon AsMultiPolygon(Geometry g)
        {
            MG_MultiPolygon multiPolygon  = new MG_MultiPolygon();
            int             geometryCount = g.GetGeometryCount();

            for (int i = 0; i < geometryCount; i++)
            {
                MG_Polygon polygon = AsPolygon(g.GetGeometryRef(i));
                multiPolygon.Add(polygon);
            }
            return(multiPolygon);
        }
Пример #2
0
        private static MG_Polygon AsPolygon(Geometry g)
        {
            MG_Polygon polygon       = new MG_Polygon();
            int        geometryCount = g.GetGeometryCount();

            for (int i = 0; i < geometryCount; i++)
            {
                MG_LineString lineString = AsLineString(g.GetGeometryRef(i));
                polygon.Add(lineString);
            }
            return(polygon);
        }
Пример #3
0
        public static void RenderPolygon(Graphics g, Pen pen, MG_MapView mapview, MG_Polygon polygon)
        {
            int countLineString = polygon.Count();

            for (int i = 0; i < countLineString; i++)
            {
                MG_LineString lineString = polygon.GetAt(i);
                int           countPoint = lineString.Count();
                if (countPoint < 3)
                {
                    return;
                }
                Point[] points = new Point[countPoint];
                for (int j = 0; j < countPoint; j++)
                {
                    MG_Point mp = lineString.GetAt(j);
                    points[j] = AsPoint(mp, mapview);
                }
                //FillPolygon(g, brush, points);
                //Pen pen = new Pen(Color.Red, 1);
                DrawPolygon(g, pen, points);
            }
        }
Пример #4
0
 public MG_ToolDrawPolygon(MG_Layer layer, MG_MapView mapview)
     : base(MG_ToolType.Tool_DrawPolygon, layer, mapview)
 {
     this.LineString = new MG_LineString();
     this.Polygon    = new MG_Polygon();
 }