当前位置:编程学习 > CGI >>

Arcgis镶嵌数据集java代码操作

镶嵌数据集结合了之前arcgis管理影像的栅格目录和栅格数据集,为解决海量影像管理提供了很好的方案!

为什么要使用镶嵌数据集?

可伸缩性海量影像管理
重叠影像管理
管理离散数据集大量的空值区域
多种传感器数据支持
流畅的影像更新
所有比例尺下无缝显示
保留有价值的元数据信息
动态处理减少处理时间
减少冗余存储
减少重采样,提升影像质量

开发代码使用java调用ArcEngine环境。

首先初始化AE运行环境


[java] 
/**
     * 初始化ArcgisEngine
     */ 
    public static void initializeAE() { 
        EngineInitializer.initializeVisualBeans(); 
        EngineInitializer.initializeEngine(); 
        try { 
            com.esri.arcgis.system.AoInitialize ao = new com.esri.arcgis.system.AoInitialize(); 
            ao.initialize(com.esri.arcgis.system.esriLicenseProductCode.esriLicenseProductCodeArcInfo); 
            if (ao.isProductCodeAvailable(com.esri.arcgis.system.esriLicenseProductCode.esriLicenseProductCodeArcInfo) == com.esri.arcgis.system.esriLicenseStatus.esriLicenseAvailable) 
                ao.initialize(com.esri.arcgis.system.esriLicenseProductCode.esriLicenseProductCodeArcInfo); 
            else 
                System.out.println("license failed"); 
            ao.checkOutExtension(com.esri.arcgis.system.esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst); 
            ao.checkOutExtension(com.esri.arcgis.system.esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst); 
            ao.checkOutExtension(com.esri.arcgis.system.esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst); 
            ao.initialize(esriLicenseProductCode.esriLicenseProductCodeEngine); 
            ao.initialize(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB); 
            ao.initialize(esriLicenseProductCode.esriLicenseProductCodeArcEditor); 
            ao.checkOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst); 
            System.out.println("arcgis初始化成功>>>..."); 
        } catch (Exception e) { 
            e.printStackTrace(); 
        } 
    } 

/**
  * 初始化ArcgisEngine
  */
 public static void initializeAE() {
  EngineInitializer.initializeVisualBeans();
  EngineInitializer.initializeEngine();
  try {
   com.esri.arcgis.system.AoInitialize ao = new com.esri.arcgis.system.AoInitialize();
   ao.initialize(com.esri.arcgis.system.esriLicenseProductCode.esriLicenseProductCodeArcInfo);
   if (ao.isProductCodeAvailable(com.esri.arcgis.system.esriLicenseProductCode.esriLicenseProductCodeArcInfo) == com.esri.arcgis.system.esriLicenseStatus.esriLicenseAvailable)
    ao.initialize(com.esri.arcgis.system.esriLicenseProductCode.esriLicenseProductCodeArcInfo);
   else
    System.out.println("license failed");
   ao.checkOutExtension(com.esri.arcgis.system.esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst);
   ao.checkOutExtension(com.esri.arcgis.system.esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);
   ao.checkOutExtension(com.esri.arcgis.system.esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);
   ao.initialize(esriLicenseProductCode.esriLicenseProductCodeEngine);
   ao.initialize(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB);
   ao.initialize(esriLicenseProductCode.esriLicenseProductCodeArcEditor);
   ao.checkOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);
   System.out.println("arcgis初始化成功>>>...");
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
添加栅格影像到镶嵌数据集,本次测试的整个文件目录,存入镶嵌数据集


[java]
/**
     * 添加镶嵌数据集栅格数据
     * @param mosaicDataset 镶嵌数据集
     * @param path 文件存储路径
     */ 
    public void addMosaicDataSet(String mosaicDataset, String path){ 
        GeoProcessor geoprocessor; 
        try { 
            geoprocessor = new GeoProcessor(); 
            geoprocessor.setOverwriteOutput(true); 
             
            AddRastersToMosaicDataset addMosaicDataSet = new AddRastersToMosaicDataset(); 
            addMosaicDataSet.setInMosaicDataset(mosaicDataset);//1  
            addMosaicDataSet.setRasterType("Raster Dataset");//2  
            addMosaicDataSet.setInputPath(path);//待入库的文件目录  
            addMosaicDataSet.setFilter("*.tif");//匹配入镶嵌数据集中的文件类型  
            addMosaicDataSet.setUpdateOverviews("true"); 
             
            /** ALLOW_DUPLICATES 全部添加
             * EXCLUDE_DUPLICATES 只添加更新的
             * OVERWRITE_DUPLICATES 重写以前添加的 
             * */ 
            addMosaicDataSet.setDuplicateItemsAction("EXCLUDE_DUPLICATES"); 
            GPTool pGPProcess = addMosaicDataSet; 
     &

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,