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); }
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); }
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); } }
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(); }