创建内存图层,并写入数据

pFeatureLayer = new FeatureLayerClass();
IFieldsEdit curFileds = new FieldsClass();
IFieldEdit curField = new FieldClass();
curField = new FieldClass();
curField.Name_2 = "OBCID";
curField.Type_2 = esriFieldType.esriFieldTypeString;
curFileds.AddField(curField);

curField = new FieldClass();
curField.Name_2 = "X";
curField.Type_2 = esriFieldType.esriFieldTypeDouble;
curFileds.AddField(curField);

curField = new FieldClass();
curField.Name_2 = "Y";
curField.Type_2 = esriFieldType.esriFieldTypeDouble;
curFileds.AddField(curField);

curField = new FieldClass();
curField.Name_2 = "sex";
curField.Type_2 = esriFieldType.esriFieldTypeString;
curFileds.AddField(curField);

curField = new FieldClass();
curField.Name_2 = "OBCNO";
curField.Type_2 = esriFieldType.esriFieldTypeString;
curFileds.AddField(curField);

curField = new FieldClass();
curField.Name_2 = "PDAID";
curField.Type_2 = esriFieldType.esriFieldTypeString;
curFileds.AddField(curField);

curField = new FieldClass();
curField.Name_2 = "GPSTIME";
curField.Type_2 = esriFieldType.esriFieldTypeString;
curFileds.AddField(curField);

pFeatureLayer = CreateFeatureLayerInmemeory("Accepter", "采集员分布", new UnknownCoordinateSystemClass(), esriGeometryType.esriGeometryPoint, curFileds as IFields);
axMapControl1.AddLayer(pFeatureLayer as ILayer);
//axMapControl1.Map.DeleteLayer(pFeatureLayer);
PointRender(pFeatureLayer, @"symbol\observer\scan_.ico");
//}
foreach (AccepterInfo ei in listAccepter)
{
IFeatureClass featureClass = pFeatureLayer.FeatureClass;
IFeatureBuffer featureBuffer = featureClass.CreateFeatureBuffer();

IFeatureCursor featureCursor = featureClass.Insert(true);
object featureOID;
featureBuffer.set_Value(0, ei.AccepterName);
featureBuffer.set_Value(1, ei.AccepterX);
featureBuffer.set_Value(2, ei.AccepterY);

featureBuffer.set_Value(3, ei.Sex);
featureBuffer.set_Value(4, ei.CarNum);
featureBuffer.set_Value(5, ei.Pdaid);
featureBuffer.set_Value(6, ei.Gpstime);


IPoint xpoint1 = new PointClass();
xpoint1.PutCoords(Convert.ToDouble(ei.AccepterX), Convert.ToDouble(ei.AccepterY));
featureBuffer.Shape = xpoint1 as IGeometry;
featureOID = featureCursor.InsertFeature(featureBuffer);

featureCursor.Flush();
}

posted on 2012-05-16 09:55  pennygiser  阅读(351)  评论(0编辑  收藏  举报