一个AE开发添加点的有关问题
一个AE开发添加点的问题
//得到要添加地物的图层
IFeatureLayer l = this.axMapControl1.Map.get_Layer(0) as IFeatureLayer;
//定义一个地物类,把要编辑的图层转化为定义的地物类
IFeatureClass fc = l.FeatureClass;
//先定义一个编辑的工作空间,然后把转化为数据集,最后转化为编辑工作空间,
IWorkspaceEdit w = (fc as IDataset).Workspace as IWorkspaceEdit;
IFeature f;
IPoint p;
//开始事务操作
w.StartEditing(false);
//开始编辑
w.StartEditOperation();
for (int i = 0; i < 2; i++)
{
//创建一个地物
f = fc.CreateFeature();
p = new PointClass();
//设置点的坐标
p.PutCoords(i, i);
//确定图形类型
f.Shape = p;
//保存地物
f.Store();
}
//结束编辑
w.StopEditOperation();
//结束事务操作
w.StopEditing(true);
用上面的代码在一个空的点图层中添加点,为什么只显示出有一个点,然而用ArcMap打开该图层,该图层的属性中有两条记录,两条记录显示的是同一个点
------解决方案--------------------
从代码逻辑看,添加的坐标应该是(0,0),(1,1),应该是两个点。
------解决方案--------------------
兄弟,以后多来论坛逛逛吧,论坛需要你!
//得到要添加地物的图层
IFeatureLayer l = this.axMapControl1.Map.get_Layer(0) as IFeatureLayer;
//定义一个地物类,把要编辑的图层转化为定义的地物类
IFeatureClass fc = l.FeatureClass;
//先定义一个编辑的工作空间,然后把转化为数据集,最后转化为编辑工作空间,
IWorkspaceEdit w = (fc as IDataset).Workspace as IWorkspaceEdit;
IFeature f;
IPoint p;
//开始事务操作
w.StartEditing(false);
//开始编辑
w.StartEditOperation();
for (int i = 0; i < 2; i++)
{
//创建一个地物
f = fc.CreateFeature();
p = new PointClass();
//设置点的坐标
p.PutCoords(i, i);
//确定图形类型
f.Shape = p;
//保存地物
f.Store();
}
//结束编辑
w.StopEditOperation();
//结束事务操作
w.StopEditing(true);
用上面的代码在一个空的点图层中添加点,为什么只显示出有一个点,然而用ArcMap打开该图层,该图层的属性中有两条记录,两条记录显示的是同一个点
------解决方案--------------------
从代码逻辑看,添加的坐标应该是(0,0),(1,1),应该是两个点。
------解决方案--------------------
兄弟,以后多来论坛逛逛吧,论坛需要你!