简体   繁体   中英

mapwingis shape is not adding to shapefile

int i = 0;
int j = 0;
int intHandler1 = 0;
MapWinGIS.Shapefile shapefile = new MapWinGIS.Shapefile();
MapWinGIS.Field newField = new MapWinGIS.Field();

newField.Name = "ID";
newField.Type = MapWinGIS.FieldType.INTEGER_FIELD;
newField.Width = 10;
newField.Precision = 0;

shapefile.CreateNew("dummy.shp",MapWinGIS.ShpfileType.SHP_POLYGON);
shapefile.EditInsertField(newField, 0);

List<MapWinGIS.Shape> shape = new List<MapWinGIS.Shape>();

List<MapWinGIS.Point> pt = new List<MapWinGIS.Point>();

foreach (int cell in Drawings.Keys)
{
    foreach (int sector in Drawings[cell].Keys)
    {
        shape.Add(new MapWinGIS.Shape());
        shape[i].Create(MapWinGIS.ShpfileType.SHP_POLYGON);
        shape[i].InsertPart(0, 0);

        pt.Add(new MapWinGIS.Point());
        pt[j].x = Drawings[cell][sector]["X0"];
        pt[j].y = Drawings[cell][sector]["Y0"];
        shape[i].InsertPoint(pt[j], 0);
        j++;

        pt.Add(new MapWinGIS.Point());
        pt[j].x = Drawings[cell][sector]["X3"];
        pt[j].y = Drawings[cell][sector]["Y3"];
        shape[i].InsertPoint(pt[j], 1);
        j++;

        pt.Add(new MapWinGIS.Point());
        pt[j].x = Drawings[cell][sector]["X2"];
        pt[j].y = Drawings[cell][sector]["Y2"];
        shape[i].InsertPoint(pt[j], 2);
        j++;

        pt.Add(new MapWinGIS.Point());
        pt[j].x = Drawings[cell][sector]["X1"];
        pt[j].y = Drawings[cell][sector]["Y1"];
        shape[i].InsertPoint(pt[j], 3);
        j++;

        shape[i].InsertPoint(pt[j - 4], 4);
        shapefile.StartEditingShapes();
        shapefile.EditInsertShape(shape[i],i);                    
        i++;
    }
}            

shapefile.StopEditingTable();
shapefile.Save();
shapefile.Close();

intHandler1 = axMap1.AddLayer(shapefile, true);
axMap1.set_ShapeLayerFillColor(intHandler1, (UInt32)(System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.SaddleBrown)));
axMap1.ZoomToMaxExtents();
axMap1.Refresh();

I am trying to plot multiple polygons in a MapWinGIS control. Drawing is a "Dicationary(int, DIctionary(int, Dictionary(string, float)))"

Shapes are filling up nicely in the above code. I looked at the "IsValid" property of Shape object and it was true. But when I run the code to add to the shape object to shapefile obj it does not add. shapefile object's property "numShapes" is zero. Please help identify what I am doing wrong. So far no errors. Just a blank map canvus.

CreateNew (string ShapefileName, ShpfileType ShapefileType)函数更改为CreateNewWithShapeID (string ShapefileName, ShpfileType ShapefileType)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM