最近在学习arcengine插件开发,经过不断尝试查找资料看说明文档终于让我成功做成了一个小插件。写个文档做个记录,方便后面查看。本文有参考利用C#制作ArcMap插件 - 知乎 (zhihu.com)
功能很简单,找出距离点要素最近的线要素的交点,并且把点移动到最近的交点上去。
插件的界面设计:

首先要在Button代码里设置响应函数,以便启动插件时能打开界面
protected override void OnClick()
{
//
// TODO: Sample code showing how to access button host
//
Form1 f1 = new Form1();
f1.ShowDialog();
ArcMap.Application.CurrentTool = null;
}
protected override void OnUpdate()
{
Enabled = ArcMap.Application != null;
}
接下来要想办法把地图里的图层加载到界面的下拉框里去,这里需要3个函数
//定义getlayername函数,获取已经加载的图层名称
public List<string> getLayerName(IMapDocument pMxdDocument)
{
List<string> layername = new List<string>();
IMap pMap = pMxdDocument.ActiveView.FocusMap;
for (int i = 0; i < pMap.LayerCount; i++)
{
ILayer pLayer = pMap.get_Layer(i);
layername.Add(pLayer.Name.ToString());
}
return layername;
}
//定义getlayeratname函数,通过图层名称获取图层
public ILayer getLayerAtname(string name)
{
ILayer pLayer = null;
IMap pMap = pMxd.ActiveView.FocusMap;
for (int i = 0; i < pMap.LayerCount; i++)
{
ILayer layer = pMap.get_Layer(i);
if (layer.Name.T
3792




被折叠的 条评论
为什么被折叠?



