已解决:请参阅下面的答案
我正在尝试将.tif,.img和.dat栅格文件打开到ArcMap中的新图层。
我已经尝试了我在文档中找到的所有方法以及StackOverflow上的一些实现。
这是当前的代码:
File file = new File(output);
IWorkspaceFactory wsFactory = (IWorkspaceFactory)new RasterWorkspaceFactory();
IRasterWorkspace2 rasterWS = (IRasterWorkspace2)wsFactory.openFromFile(file.getParentFile().getAbsolutePath(),0);
IRasterDataset rds = rasterWS.openRasterDataset(output);
IRasterLayer rasterLayer = new RasterLayer();
rasterLayer.createFromDataset(rds);
IActiveView activeView = mxDocument.getActiveView();
IMap _map = activeView.getFocusMap();
_map.addLayer(rasterLayer);
此代码不会抛出任何错误消息,但不会打开该层。我从arcObjects 10.2的示例程序和文档中获得的先前实现在此行上抛出异常:
RasterDataset rasterDataset = (RasterDataset) rasterWorkspace.openRasterDataset(file.getAbsolutePath());
我现在唯一的领导是ControlsAddDataCommand类可能调用命令打开文件并将文件路径作为输入。构建自定义命令以打开文件?
注意:单击“图谱”菜单上的“添加数据”选项可以正常打开文件。
答案 0 :(得分:0)
解决
IRasterLayer rasterLayer = new RasterLayer();
rasterLayer.createFromFilePath(output);
mxDocument.addLayer(rasterLayer);
通过浏览Eclipse中的JavaDoc工具提示找到此代码。
只需键入对象和"。" Eclipse将显示所有可用选项。
我很惊讶这段代码片段并未在网上任何地方列出(我在大约8小时的搜索时间内找到)。无论如何,这是简单的3线解决方案!