使用Java中的ArcObjects 10.2在ArcGIS中打开文件系统栅格数据集

时间:2014-12-22 14:25:19

标签: java layer arcgis raster arcobjects

已解决:请参阅下面的答案

我正在尝试将.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类可能调用命令打开文件并将文件路径作为输入。构建自定义命令以打开文件?

注意:单击“图谱”菜单上的“添加数据”选项可以正常打开文件。

1 个答案:

答案 0 :(得分:0)

解决

    IRasterLayer rasterLayer = new RasterLayer();
    rasterLayer.createFromFilePath(output);
    mxDocument.addLayer(rasterLayer);

通过浏览Eclipse中的JavaDoc工具提示找到此代码。

只需键入对象和"。" Eclipse将显示所有可用选项。

我很惊讶这段代码片段并未在网上任何地方列出(我在大约8小时的搜索时间内找到)。无论如何,这是简单的3线解决方案!