zoukankan      html  css  js  c++  java
  • Arcgis镶嵌数据集java代码操作

    转自:http://www.cdtarena.com/javapx/201307/9105.html

    镶嵌数据集结合了之前arcgis管理影像的栅格目录和栅格数据集,为解决海量影像管理提供了很好的方案!
    为什么要使用镶嵌数据集?
    •可伸缩性海量影像管理 
    •重叠影像管理
    •管理离散数据集大量的空值区域
    •多种传感器数据支持
    •流畅的影像更新
    •所有比例尺下无缝显示
    •保留有价值的元数据信息
    •动态处理减少处理时间
    •减少冗余存储
    •减少重采样,提升影像质量
    开发代码使用java调用ArcEngine环境。
    首先初始化AE运行环境

    [java] view plaincopyprint?
    01./** 
    02.     * 初始化ArcgisEngine 
    03.     */  
    04.    public static void initializeAE() {  
    05.        EngineInitializer.initializeVisualBeans();  
    06.        EngineInitializer.initializeEngine();  
    07.        try {  
    08.            com.esri.arcgis.system.AoInitialize ao = new com.esri.arcgis.system.AoInitialize();  
    09.            ao.initialize(com.esri.arcgis.system.esriLicenseProductCode.esriLicenseProductCodeArcInfo);  
    10.            if (ao.isProductCodeAvailable(com.esri.arcgis.system.esriLicenseProductCode.esriLicenseProductCodeArcInfo) == com.esri.arcgis.system.esriLicenseStatus.esriLicenseAvailable)  
    11.                ao.initialize(com.esri.arcgis.system.esriLicenseProductCode.esriLicenseProductCodeArcInfo);  
    12.            else  
    13.                System.out.println("license failed");  
    14.            ao.checkOutExtension(com.esri.arcgis.system.esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst);
    15.            ao.checkOutExtension(com.esri.arcgis.system.esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);  
    16.            ao.checkOutExtension(com.esri.arcgis.system.esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);  
    17.            ao.initialize(esriLicenseProductCode.esriLicenseProductCodeEngine);  
    18.            ao.initialize(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB);  
    19.            ao.initialize(esriLicenseProductCode.esriLicenseProductCodeArcEditor);  
    20.            ao.checkOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);  
    21.            System.out.println("arcgis初始化成功>>>...");  
    22.        } catch (Exception e) {  
    23.            e.printStackTrace();  
    24.        }  
    25.    }  
    添加栅格影像到镶嵌数据集,本次测试的整个文件目录,存入镶嵌数据集

    [java] view plaincopyprint?
    01./** 
    02.     * 添加镶嵌数据集栅格数据 
    03.     * @param mosaicDataset 镶嵌数据集 
    04.     * @param path 文件存储路径 
    05.     */  
    06.    public void addMosaicDataSet(String mosaicDataset, String path){  
    07.        GeoProcessor geoprocessor;  
    08.        try {  
    09.            geoprocessor = new GeoProcessor();  
    10.            geoprocessor.setOverwriteOutput(true);  
    11.              
    12.            AddRastersToMosaicDataset addMosaicDataSet = new AddRastersToMosaicDataset();  
    13.            addMosaicDataSet.setInMosaicDataset(mosaicDataset);//1   
    14.            addMosaicDataSet.setRasterType("Raster Dataset");//2   
    15.            addMosaicDataSet.setInputPath(path);//待入库的文件目录   
    16.            addMosaicDataSet.setFilter("*.tif");//匹配入镶嵌数据集中的文件类型   
    17.            addMosaicDataSet.setUpdateOverviews("true");  
    18.              
    19.            /** ALLOW_DUPLICATES 全部添加 
    20.             * EXCLUDE_DUPLICATES 只添加更新的 
    21.             * OVERWRITE_DUPLICATES 重写以前添加的  
    22.             * */  
    23.            addMosaicDataSet.setDuplicateItemsAction("EXCLUDE_DUPLICATES");  
    24.            GPTool pGPProcess = addMosaicDataSet;  
    25.            geoprocessor.setOverwriteOutput(true);  
    26.            //执行   
    27.            geoprocessor.execute(pGPProcess, null);  
    28.        } catch (UnknownHostException e) {  
    29.            // TODO Auto-generated catch block   
    30.            e.printStackTrace();  
    31.        } catch (IOException e) {  
    32.            // TODO Auto-generated catch block   
    33.            e.printStackTrace();  
    34.        }  
    35.    }  
    移除镶嵌数据中个别数据http://www.cdtarena.com/qrs.html

    [java] view plaincopyprint?
    01./** 
    02. * 移除镶嵌数据集中的数据 
    03. * @param mosaicDataset 镶嵌数据集 
    04. * @param sql 删除命令  例如:name='004' 
    05. *  
    06. */  
    07.public void remoMosaicDataSet (String mosaicDataset, String sql) {  
    08.    GeoProcessor geoprocessor = null;  
    09.    try {  
    10.        geoprocessor = new GeoProcessor();  
    11.        geoprocessor.setOverwriteOutput(true);  
    12.          
    13.        RemoveRastersFromMosaicDataset deleteFeatures = new RemoveRastersFromMosaicDataset();  
    14.        deleteFeatures.setInMosaicDataset(mosaicDataset);  
    15.        deleteFeatures.setWhereClause(sql);  
    16.          
    17.        GPTool pGPProcess = deleteFeatures;  
    18.        geoprocessor.setOverwriteOutput(true);  
    19.        //执行   
    20.        geoprocessor.execute(pGPProcess, null);  
    21.    } catch (AutomationException e) {  
    22.        // TODO Auto-generated catch block   
    23.        e.printStackTrace();  
    24.    } catch (IOException e) {  
    25.        // TODO Auto-generated catch block   
    26.        e.printStackTrace();  
    27.    }  
    28.}  
    构建金字塔

    [java] view plaincopyprint?
    01./** 
    02.     * 创建金字塔 
    03.     * @param mosaicDataset 镶嵌数据集路径 
    04.     * @param whereSql 查询条件,wheresql可以为空 
    05.     */  
    06.    public void buildOverviewsMosaicDataSet (String mosaicDataset, String whereSql) {  
    07.        GeoProcessor geoprocessor = null;  
    08.        try {  
    09.            geoprocessor = new GeoProcessor();//初始化gp工具   
    10.            geoprocessor.setOverwriteOutput(true);  
    11.              
    12.            BuildOverviews buildPryramids = new BuildOverviews();  
    13.            buildPryramids.setInMosaicDataset(mosaicDataset);  
    14.            if (whereSql != null && whereSql.equals("") == false) {  
    15.                buildPryramids.setWhereClause(whereSql);  
    16.            }  
    17.            GPTool pGPProcess = buildPryramids;  
    18.            geoprocessor.setOverwriteOutput(true);  
    19.            //执行   
    20.            geoprocessor.execute(pGPProcess, null);  
    21.            Constant.printLnData("切割金字塔成功 :"+pGPProcess.getParameterValues()[0]);  
    22.        } catch (AutomationException e) {  
    23.            // TODO Auto-generated catch block   
    24.            e.printStackTrace();  
    25.            Constant.printLnData("切割金字塔失败 " + e.getMessage());  
    26.        } catch (IOException e) {  
    27.            // TODO Auto-generated catch block   
    28.            e.printStackTrace();  
    29.            Constant.printLnData("切割金字塔失败 "+ e.getMessage());  
    30.        }  
    31.    }  
    创建轮廓

    [java] view plaincopyprint?
    01./** 
    02.     * 创建轮廓 
    03.     * @param mosaicDataset 镶嵌数据集 
    04.     */  
    05.    public void buildFootprints (String mosaicDataset) {  
    06.        GeoProcessor geoprocessor = null;  
    07.        try {  
    08.            geoprocessor = new GeoProcessor();  
    09.            geoprocessor.setOverwriteOutput(true);  
    10.  
    11.            BuildFootprints buildPryramids = new BuildFootprints();  
    12.            buildPryramids.setInMosaicDataset(mosaicDataset);  
    13.              
    14.            GPTool pGPProcess = buildPryramids;  
    15.            geoprocessor.setOverwriteOutput(true);  
    16.            //执行   
    17.            geoprocessor.execute(pGPProcess, null);  
    18.            Constant.printLnData("构建轮廓成功 :"+pGPProcess.getParameterValues()[0]);  
    19.        } catch (AutomationException e) {  
    20.            // TODO Auto-generated catch block   
    21.            e.printStackTrace();  
    22.            Constant.printLnData("构建轮廓失败" + e.getMessage());  
    23.        } catch (IOException e) {  
    24.            // TODO Auto-generated catch block   
    25.            e.printStackTrace();  
    26.            Constant.printLnData("构建轮廓失败"+ e.getMessage());  
    27.        }  
    28.    }  
    /
    上述就是基本操作代码。

  • 相关阅读:
    day60----日考
    css之单位
    如何装双系统win10下装Ubuntu
    css之Grid Layout详解
    css之position详解
    html+css的用户注册界面
    self-introduction
    ps常用操作
    前端基础之BOM和DOM
    emment语法
  • 原文地址:https://www.cnblogs.com/cdtarena/p/3180476.html
Copyright © 2011-2022 走看看