1添加许可
首先第一步要加入许可lisent,然后在代码中绑定许可。
这是AE中的许可控件。下面是绑定许可需要的代码。
2找到ArcEngine自带的icon
我的存在D:\ARCGIS\DeveloperKit10.4\Icons\Icons目录下。
3打开mxd文件,代码如下
private void 打开mxd文件ToolStripMenuItem_Click(object sender, EventArgs e)
{
// 创建一个打开文件对话框
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "MXD文件 (*.mxd)|*.mxd";
openFileDialog.Title = "选择要打开的MXD文件";
// 如果用户点击了"确定"按钮
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
// 获取用户选择的文件路径
string mxdPath = openFileDialog.FileName;
// 加载MXD文件
IMapDocument mapDocument = new MapDocumentClass();
mapDocument.Open(mxdPath, "");
// 获取MXD中的地图
IMap map = mapDocument.Map[0];
// 将地图设置为MainMapControl的地图
MainMapControl.Map = map;
// 刷新MainMapControl控件
MainMapControl.Refresh();
}
}
}
4打开shpfile文件
在打开Shpfile文件的过程中遇到了
System.Runtime.InteropServices.COMException:“异常来自 HRESULT:0x80040228”报错。
通过在band代码后面加入这两行代码,就不会报错啦。
IAoInitialize aoInit = new AoInitializeClass(); aoInit.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcServer);这段代码是什么意思
这段代码是使用 ArcObjects 初始化 ArcGIS 运行时的过程。在 ArcObjects 中,AoInitialize
接口用于初始化 ArcGIS 运行时环境。
具体来说:
AoInitialize
是 ArcObjects 中的一个接口,用于对 ArcGIS 运行时环境进行初始化和管理。AoInitializeClass
是AoInitialize
接口的一个具体实现类。Initialize
方法用于初始化 ArcGIS 运行时环境,并指定所需的许可证级别。在这里,通过esriLicenseProductCodeArcServer
指定了 ArcGIS Server 的许可证级别。这将使得初始化的 ArcGIS 运行时支持 ArcGIS Server 功能,比如创建和管理 ArcGIS Server 服务等。
总之,这段代码的目的是初始化 ArcGIS 运行时环境,并指定了使用 ArcGIS Server 许可证。
5打开tif文件
private void 打开tif文件ToolStripMenuItem_Click(object sender, EventArgs e)
{
// 创建一个打开文件对话框
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "TIFF 文件 (*.tif)|*.tif";
openFileDialog.Title = "选择要打开的TIFF 文件";
// 如果用户点击了"确定"按钮
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
// 获取用户选择的文件路径
string tiffPath = openFileDialog.FileName;
// 使用工作空间工厂打开 TIFF 文件
IWorkspaceFactory workspaceFactory = new RasterWorkspaceFactory();
string directory = System.IO.Path.GetDirectoryName(tiffPath);
string fileName = System.IO.Path.GetFileName(tiffPath);
IRasterWorkspace rasterWorkspace = workspaceFactory.OpenFromFile(directory, 0) as IRasterWorkspace;
// 使用工作空间打开栅格数据集
IRasterDataset rasterDataset = rasterWorkspace.OpenRasterDataset(fileName);
IRasterLayer rasterLayer = new RasterLayerClass();
rasterLayer.CreateFromDataset(rasterDataset);
// 将栅格图层添加到地图控件中
MainMapControl.AddLayer(rasterLayer);
// 刷新地图控件
MainMapControl.Refresh();
}
}
6清空图层
private void 清空图层ToolStripMenuItem_Click(object sender, EventArgs e)
{
// 清空地图控件中的所有图层
MainMapControl.ClearLayers();
// 刷新地图控件
MainMapControl.Refresh();
}