zoukankan      html  css  js  c++  java
  • 判断该多边形是否与栅格有覆盖

    #region 判断该多边形是否与栅格有覆盖,并统计裁剪的栅格的平均值、最大值、最小值
    /// <summary>
    /// 判断该多边形是否与栅格有覆盖
    /// </summary>
    /// <param name="MyReflectRstLyr"></param>
    /// <param name="MyPolygon"></param>
    /// <returns></returns>
    private static bool GetCoverByPloygon(IRasterLayer MyReflectRstLyr, IPolygon MyPolygon)
    {
    //IExtractionOp pExtractionOp = new RasterExtractionOpClass();
    //IGeoDataset pGeoOutput = pExtractionOp.Polygon(pGeoDataset, pPolygone, binside);

    IRasterLayer pRasterLayer = MyReflectRstLyr as IRasterLayer;
    IRaster pRaster = pRasterLayer.Raster;
    IRasterProps pProps = pRaster as IRasterProps;
    object cellSizeProvider = pProps.MeanCellSize().X;
    IGeoDataset pInputDataset = pRaster as IGeoDataset;
    IExtractionOp pExtractionOp = new RasterExtractionOpClass();
    IRasterAnalysisEnvironment pRasterAnaEnvir = pExtractionOp as IRasterAnalysisEnvironment;
    pRasterAnaEnvir.SetCellSize(esriRasterEnvSettingEnum.esriRasterEnvValue, ref cellSizeProvider);
    object extentProvider = MyPolygon.Envelope;
    object snapRasterData = Type.Missing;
    pRasterAnaEnvir.SetExtent(esriRasterEnvSettingEnum.esriRasterEnvValue, ref extentProvider, ref snapRasterData);
    IGeoDataset pOutputDataset = pExtractionOp.Polygon(pInputDataset, MyPolygon as IPolygon, true);
    IRaster clipRaster; //裁切后得到的IRaster
    if (pOutputDataset is IRasterLayer)
    {
    IRasterLayer rasterLayer = pOutputDataset as IRasterLayer;
    clipRaster = rasterLayer.Raster;
    }
    else if (pOutputDataset is IRasterDataset)
    {
    IRasterDataset rasterDataset = pOutputDataset as IRasterDataset;
    clipRaster = rasterDataset.CreateDefaultRaster();
    }
    else if (pOutputDataset is IRaster)
    {
    clipRaster = pOutputDataset as IRaster;
    }
    else
    {
    return false;
    }

    //统计平均值
    IRasterBandCollection pRasterBandCol;
    pRasterBandCol = (IRasterBandCollection)clipRaster;

    int aa;
    aa = pRasterBandCol.Count;

    IRasterBand pRasterBand;
    pRasterBand = pRasterBandCol.Item(0);
    pRasterBand.ComputeStatsAndHist();

    IRasterStatistics pRasterStatistic;
    pRasterStatistic = pRasterBand.Statistics;
    double meanValue;
    double MaxValue;
    double MinValue;
    meanValue = pRasterStatistic.Mean;
    MaxValue = pRasterStatistic.Maximum;
    MinValue = pRasterStatistic.Minimum;

    if (meanValue >= 1.0)
    {
    return true;
    }
    else
    {
    return false;
    }
    }
    #endregion

  • 相关阅读:
    文件打包下载
    DES加密解密
    jQuery实现表格拖动排序
    jQuery实现星星评分功能
    问卷调查功能中的题目编辑功能
    使用JS或jQuery模拟鼠标点击a标签事件
    zTree的使用
    给文本框添加模糊搜索功能(“我记录”MVC框架下实现)
    表达式计算器的实现
    asp.net几种开源上传控件,flash,ajax版,支持多文件
  • 原文地址:https://www.cnblogs.com/yuxuetaoxp/p/4641595.html
Copyright © 2011-2022 走看看