最近在利用Arcengine二次开发地图模板应用时需要更改数据源的功能,Arcengine的Adddata对话框可以方便地添加支持的各类数据,但是没有给出接口可以直接获取Adddata选择的数据源,自己直接写一个添加数据对话框又太费事,所以采用了一个间接方法,终于获取了adddata的数据源,方法如下:
1、在需要获取数据源的窗体中添加一个MapControl,并使其不可见;
2、在需要获取数据源的地方利用MapControl调Arcengine的adddata对话框,添加数据到隐藏的MapControl中:
mapControl1.ClearLayers();
ICommand cmd = new ControlsAddDataCommand();
cmd.OnCreate(mapControl1);
cmd.OnClick();
注意:有的需要用
/*
cmd.OnCreate(mapControl1.Object);
cmd.OnClick();*/
3、获取MapControl中新添加的图层
/*先判断用户是否选择了图层,然后获取第一个图层
if(axMapControl2.LayerCount == 0){ return; }
ILayer layer = axMapControl2.get_Layer(0);
*/
ILayer layer= map.GetLayer(i);
if (layer!= null)
{
//获取相关属性
IDataset d