C#中已知点的坐标,如何通过编程向一个指定的SHP图层上批量添加这些点啊?ArcEngine/C#

已知点的坐标,如何通过编程向一个指定的SHP图层上批量添加这些点并给点赋予相应的属性啊?跪求高手指导--ArcEngine/C#... 已知点的坐标,如何通过编程向一个指定的SHP图层上批量添加这些点并给点赋予相应的属性啊?跪求高手指导- -ArcEngine/C# 展开
 我来答
后来的_后来
推荐于2016-06-06 · TA获得超过442个赞
知道小有建树答主
回答量:101
采纳率:0%
帮助的人:107万
展开全部
下面是批量加点的代码,如有疑问请与我持联系。希望对你有帮助!
/// <summary>
/// 点坐标 结构体
/// </summary>
public struct PointXY
{
public double dX;
public double dY;
}

/// <summary>
/// 建立 ESRI中的 点类型 并 将其转化为基类接口 IGeometry
/// </summary>
/// <param name="point">点坐标 结构体</param>
/// <returns></returns>
public IGeometry BuildPoint(PointXY point)
{
IPoint pPoint = new PointClass();
pPoint.X = point.dX;
pPoint.Y = point.dY;
IGeometry pGeometry = pPoint as IGeometry;
return pGeometry;
}

/// <summary>
/// 批量加入 点坐标 结构体
/// </summary>
/// <param name="pLayer">点图层</param>
/// <param name="pointCol">泛型集合【点坐标 结构体】</param>
/// <returns></returns>
public bool AddPointsToLayer(ILayer pLayer, List<PointXY> pointCol)
{
IFeatureLayer pFeatureLayer = pLayer as IFeatureLayer;
if (pFeatureLayer == null)
{
System.Windows.Forms.MessageBox.Show(pLayer.Name + "不是矢量图层!"); return false;
}
//
IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass;
if (pFeatureClass.ShapeType != esriGeometryType.esriGeometryPoint)
{
System.Windows.Forms.MessageBox.Show(pLayer.Name + "不是点图层!"); return false;
}
//
IFeatureCursor pFeatureCursor = pFeatureClass.Insert(true);
IFeatureBuffer pFeatureBuffer = null;
foreach(PointXY one in pointCol)
{
pFeatureBuffer = pFeatureClass.CreateFeatureBuffer();
IFeature pNewFeature = pFeatureBuffer as IFeature;
pNewFeature.Shape = BuildPoint(one);
//
pFeatureCursor.InsertFeature(pFeatureBuffer);
}
pFeatureCursor.Flush();

return true;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式