private void comboBoxOpen_SelectedIndexChanged(object sender, EventArgs e)//选择图层并自动设置默认输出像元大小及图层路径 { if (comboBoxOpen.Items.Count > 0) { txtSave.Text = ""; txtCellSize.Text = "0.02"; fileName = comboBoxOpen.SelectedItem.ToString(); ILayer pLayer = GetLayerByName(ref fileName); //去除不可用的数据 ZQ 20110907 if (pLayer.Valid) { return; } IWorkspace pSourceWorkspace; if (pLayer is IRasterLayer)//读取RasterLayer的路径名和像元大小值 { IRasterLayer pRasterLayer = pLayer as IRasterLayer; IRaster pRaster = pRasterLayer.Raster; IRasterAnalysisProps pRasterAnalysisProps = (IRasterAnalysisProps)pRaster; double pixH = pRasterAnalysisProps.PixelHeight; txtCellSize.Text = Convert.ToString(pixH); IDataset pDataset = pRasterLayer as IDataset; pSourceWorkspace = pDataset.Workspace; filePath = pSourceWorkspace.PathName; filePath = filePath + fileName; } else if (pLayer is ITinLayer)//读取TIN数据的路径信息 { ITinLayer pTinLayer = pLayer as ITinLayer; ITin pTin = pTinLayer.Dataset; IDataset pDataset = pTin as IDataset; pSourceWorkspace = pDataset.Workspace; filePath = pSourceWorkspace.PathName; filePath = filePath + "\\" + fileName; } btnSure.Enabled = true; } else { btnSure.Enabled = false; } }
private void comboBoxOpenraster_SelectedIndexChanged(object sender, EventArgs e) { if (comboBoxOpenraster.Items.Count > 0) { fileName_raster = comboBoxOpenraster.SelectedItem.ToString(); ILayer pLayer = GetLayerByName(ref fileName_raster); IWorkspace pSourceWorkspace; if (pLayer is IRasterLayer)//读取RasterLayer的路径名和像元大小值 { IRasterLayer pRasterLayer = pLayer as IRasterLayer; IRaster pRaster = pRasterLayer.Raster; IRasterAnalysisProps pRasterAnalysisProps = (IRasterAnalysisProps)pRaster; double pixH = pRasterAnalysisProps.PixelHeight; txtCellSize.Text = Convert.ToString(pixH); IDataset pDataset = pRasterLayer as IDataset; pSourceWorkspace = pDataset.Workspace; filePath_raster = pSourceWorkspace.PathName; filePath_raster = filePath_raster + fileName_raster; } else if (pLayer is ITinLayer) { ITinLayer pTinLayer = pLayer as ITinLayer; ITin pTin = pTinLayer.Dataset; IDataset pDataset = pTin as IDataset; pSourceWorkspace = pDataset.Workspace; filePath_raster = pSourceWorkspace.PathName; filePath_raster = filePath_raster + "\\" + fileName_raster; } btnSure.Enabled = true; } else { btnSure.Enabled = false; btnSure.ForeColor = Color.Black; } }
private void btnOpenraster_Click(object sender, EventArgs e) { OpenFileDialog pOpenFileDialog = new OpenFileDialog(); pOpenFileDialog.Filter = "TIFF(*.tif)|*.tif|GRID(*.Grid)|*.grid|IMAGINE(*.img)|*.img"; if (pOpenFileDialog.ShowDialog() == DialogResult.OK) { comboBoxOpenraster.Text = pOpenFileDialog.FileName; if (comboBoxOpenraster.Text != "")//获取打开的栅格数据的路径信息及像元值 { IWorkspaceFactory pWorkspaceFactory = new RasterWorkspaceFactoryClass(); filePath_raster = comboBoxOpenraster.Text; fileName_raster = System.IO.Path.GetFileName(comboBoxOpenraster.Text); IRasterWorkspace pRasterWorkspace = pWorkspaceFactory.OpenFromFile(System.IO.Path.GetDirectoryName(filePath_raster), 0) as IRasterWorkspace; IRasterDataset pRasterDataset = pRasterWorkspace.OpenRasterDataset(fileName_raster); IRasterLayer pRasterLayer = new RasterLayerClass(); pRasterLayer.CreateFromDataset(pRasterDataset); IRaster pRaster = pRasterLayer.Raster; IRasterAnalysisProps pRasterAnalysisProps = (IRasterAnalysisProps)pRaster; txtCellSize.Text = Convert.ToString(pRasterAnalysisProps.PixelHeight); } } }