private void btnGO_Click(object sender, EventArgs e) { string fileName; string shpFile; int startX, endX; string shpDir; if (bDataPath == true) { fileName = txtOutData.Text; shpDir = fileName.Substring(0, fileName.LastIndexOf("\\")); startX = fileName.LastIndexOf("\\"); endX = fileName.Length; shpFile = fileName.Substring(startX + 1, endX - startX - 1); } else { shpDir = txtOutData.Text; shpFile = "象素统计栅格"; } try { IRasterBandCollection pLocalCollection = new RasterClass(); ILocalOp pLocalOp = new RasterLocalOpClass(); for (int i = 0; i <= listBoxAddedLayer.Items.Count - 1; i++) { IRaster pInRaster = GetRSLyrFromMapLyr(listBoxAddedLayer.Items[i].ToString().Trim()); IRasterDataset pRasterGeo = pInRaster as IRasterDataset; pLocalCollection.AppendBand(pRasterGeo as IRasterBand); } string sMethod = comboBoxMethod.Text; IRasterLayer pRasterLayer = new RasterLayerClass(); IRaster pOutRaster = null; switch (sMethod) { case "Majority": pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsMajority) as IRaster; break; case "Maximum": pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsMaximum) as IRaster; break; case "Mean": pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsMean) as IRaster; break; case "Median": pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsMedian) as IRaster; break; case "Minimum": pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsMinimum) as IRaster; break; case "Minority": pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsMinority) as IRaster; break; case "Range": pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsRange) as IRaster; break; case "Standard Deviation": pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsStd) as IRaster; break; case "Sum": pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsSum) as IRaster; break; case "Variety": pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsVariety) as IRaster; break; } pRasterLayer.Name = "象素统计栅格"; Utility.ConvertRasterToRsDataset(shpDir, pOutRaster, "象素统计栅格"); pRasterLayer = Utility.SetStretchRenderer(pOutRaster); pMainFrm.getMapControl().AddLayer(pRasterLayer, 0); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
private void btnGO_Click(object sender, EventArgs e) { string fileName; string shpFile; int startX, endX; string shpDir; �� if (bDataPath == true) { fileName = txtOutData.Text; shpDir = fileName.Substring(0, fileName.LastIndexOf("\\")); startX = fileName.LastIndexOf("\\"); endX = fileName.Length; shpFile = fileName.Substring(startX + 1, endX - startX - 1); } else { shpDir = txtOutData.Text; shpFile = "����ͳ��դ��"; } try { IRasterBandCollection pLocalCollection=new RasterClass(); ILocalOp pLocalOp=new RasterLocalOpClass(); for (int i = 0; i <= listBoxAddedLayer.Items.Count - 1; i++) { IRaster pInRaster=GetRSLyrFromMapLyr(listBoxAddedLayer.Items[i].ToString().Trim()); IRasterDataset pRasterGeo = pInRaster as IRasterDataset; pLocalCollection.AppendBand(pRasterGeo as IRasterBand ); } string sMethod = comboBoxMethod.Text; IRasterLayer pRasterLayer = new RasterLayerClass(); IRaster pOutRaster = null; switch (sMethod) { case "Majority": pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsMajority) as IRaster; break; case "Maximum": pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsMaximum) as IRaster; break; case "Mean": pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsMean) as IRaster; break; case "Median": pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsMedian) as IRaster; break; case "Minimum": pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsMinimum ) as IRaster; break; case "Minority": pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsMinority ) as IRaster; break; case "Range": pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsRange ) as IRaster; break; case "Standard Deviation": pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsStd ) as IRaster; break; case "Sum": pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsSum ) as IRaster; break; case "Variety": pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsVariety) as IRaster; break; } pRasterLayer.Name = "����ͳ��դ��"; Utility.ConvertRasterToRsDataset(shpDir, pOutRaster, "����ͳ��դ��"); pRasterLayer = Utility.SetStretchRenderer(pOutRaster); pMainFrm.getMapControl().AddLayer(pRasterLayer, 0); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }