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

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

下面是批量加点的代码,如有疑问请与我持联系。希望对你有帮助!

/// <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

}

1、首先我们打开运行电脑里的arcgis软件进入arcgis软件主界面。

2、然后我们在界面上方arcgis主菜单中,找到并点击catalog tool工具,点击catalog选项。

3、然后我们点击要创建图层的位置。

4、然后我们用鼠标右键点击新建(new)选项。

5、然后我们选择图层的类型,点线面,我们这里选择面图层。

6、然后我们点击edit选项,选择投影。

7、投影选择后,确定后即可看到具体投影信息。

8、确定后我们即可看到新建的图层。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11558651.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存