Ejemplo n.º 1
0
        public void FinishEdit()
        {
            lists.Add(editingpoints);
            switch (geometrytype)
            {
            case OSGeo.OGR.wkbGeometryType.wkbPoint:
                foreach (List <PointD> onelist in lists)
                {
                    for (int i = 0; i < onelist.Count; i++)
                    {
                        Feature pointfeature = new Feature(EditingFeaturesource.GetNextFeatureID(), EditingFeaturesource.schema, onelist[i]);
                        LogItem_CreateFeature logitem_create_point = new LogItem_CreateFeature(this.layername, pointfeature.featureID);
                        Utils.gislog.AddLog(logitem_create_point);
                        EditingFeaturesource.features.InsertFeature(pointfeature);
                    }
                }
                break;

            case OSGeo.OGR.wkbGeometryType.wkbLineString:
                foreach (List <PointD> onelist in lists)
                {
                    SimplePolyline        simplepolyline      = new SimplePolyline(onelist);
                    Feature               linefeature         = new Feature(EditingFeaturesource.GetNextFeatureID(), EditingFeaturesource.schema, simplepolyline);
                    LogItem_CreateFeature logitem_create_line = new LogItem_CreateFeature(this.layername, linefeature.featureID);
                    Utils.gislog.AddLog(logitem_create_line);
                    EditingFeaturesource.features.InsertFeature(linefeature);
                }
                break;

            case OSGeo.OGR.wkbGeometryType.wkbPolygon:
                List <SimplePolyline> rings = new List <SimplePolyline>();
                foreach (List <PointD> onelist in lists)
                {
                    onelist.Add(onelist.First());
                    SimplePolyline onering = new SimplePolyline(onelist);
                    rings.Add(onering);
                }
                SimplePolygon         simplepolygon          = new SimplePolygon(rings);
                Feature               polygonfeature         = new Feature(EditingFeaturesource.GetNextFeatureID(), EditingFeaturesource.schema, simplepolygon);
                LogItem_CreateFeature logitem_create_polygon = new LogItem_CreateFeature(this.layername, polygonfeature.featureID);
                Utils.gislog.AddLog(logitem_create_polygon);
                EditingFeaturesource.features.InsertFeature(polygonfeature);
                break;
            }
            this.editstatus = EditStatus.finished;
        }