在点图层加入点时,将已有坐标的点赋给要素的shape 报错No support for this geometry type.
#region 加入点
private void AddPointByStore(IFeatureLayer pFeatureLayer, IPoint pt)
{
if (pFeatureLayer != null)
{
//定义一个地物类, 把要编辑的图层转化为定义的地物类
IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass;
//先定义一个编辑的工作空间, 然后将其转化为数据集, 最后转化为编辑工作空间
IWorkspaceEdit w = (pFeatureClass as IDataset).Workspace as IWorkspaceEdit;
IFeature pFeature;
//开始事务操作
w.StartEditing(false);
//开始编辑
w.StartEditOperation();
//创建一个(点)要素
pFeature = pFeatureClass.CreateFeature();
//赋值该要素的Shape属性
IGeometry ptGeo = pt;
pFeature.Shape = ptGeo;// 报错!!
//保存要素, 完成点要素生成
//此时生成的点要素只要集合特征(shape/Geometry), 无普通属性
pFeature.Store();
//结束编辑
w.StopEditOperation();
//结束事务操作
w.StopEditing(true);
}
//屏幕刷新this.axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, pFeatureLayer, null);
}
#endregion
private void AddPointByStore(IFeatureLayer pFeatureLayer, IPoint pt)
{
if (pFeatureLayer != null)
{
//定义一个地物类, 把要编辑的图层转化为定义的地物类
IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass;
//先定义一个编辑的工作空间, 然后将其转化为数据集, 最后转化为编辑工作空间
IWorkspaceEdit w = (pFeatureClass as IDataset).Workspace as IWorkspaceEdit;
IFeature pFeature;
//开始事务操作
w.StartEditing(false);
//开始编辑
w.StartEditOperation();
//创建一个(点)要素
pFeature = pFeatureClass.CreateFeature();
//赋值该要素的Shape属性
IGeometry ptGeo = pt;
pFeature.Shape = ptGeo;// 报错!!
//保存要素, 完成点要素生成
//此时生成的点要素只要集合特征(shape/Geometry), 无普通属性
pFeature.Store();
//结束编辑
w.StopEditOperation();
//结束事务操作
w.StopEditing(true);
}
//屏幕刷新this.axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, pFeatureLayer, null);
}
#endregion
1 个回复
宽恕 - 95后测绘仔
赞同来自:
要回复问题请先登录或注册