public Panel PropertyPage(gView.Framework.Data.IDataset dataset, gView.Framework.Data.ILayer layer) { if (layer == null) { return(null); } _class = layer.Class as IGridClass; panel1.Dock = DockStyle.Fill; MakeGUI(); return(panel1); }
async public Task <IRasterLayer> NextRasterLayer() { if (_cursor == null || _layer == null) { return(null); } try { while (true) { IFeature feature = await _cursor.NextFeature(); if (feature == null) { return(null); } IRasterLayer rLayer = null; double cell = Math.Max((double)feature["CELLX"], (double)feature["CELLY"]); int levels = (int)feature["LEVELS"], level = 0; if ((bool)feature["MANAGED"] && _layer._imageSpaceType == SqlFDBImageCatalogClass.ImageSpaceType.Database) { for (int l = 0; l < levels; l++) { if (cell * Math.Pow(2, l) < _pix) { level = l + 1; } else { break; } } if (level == 0 && levels > 0) { level = 1; } DataTable tab = await _layer._fdb.Select("ID,SHAPE", _layer._dsname + "_IMAGE_DATA", "IMAGE_ID=" + feature.OID + " AND LEV=" + level); if (tab == null) { continue; } foreach (DataRow row in tab.Rows) { byte[] obj = (byte[])row["SHAPE"]; BinaryReader r = new BinaryReader(new MemoryStream()); r.BaseStream.Write((byte[])obj, 0, ((byte[])obj).Length); r.BaseStream.Position = 0; Polygon polygon = new Polygon(); polygon.Deserialize(r, new GeometryDef(geometryType.Polygon, null, true)); r.Close(); if (gView.Framework.SpatialAlgorithms.Algorithm.IntersectBox(polygon, _dispEnvelope)) { SqlFDBImageDatasetImageClass rClass = new SqlFDBImageDatasetImageClass(_layer._fdb, _layer._dsname, (int)row["ID"], polygon); rLayer = new RasterLayer(rClass); rLayer.InterpolationMethod = _layer.InterpolationMethod; if (rClass.SpatialReference == null) { rClass.SpatialReference = _layer._sRef; } } } } else if (!(bool)feature["MANAGED"]) { if (feature["RF_PROVIDER"] == null || feature["RF_PROVIDER"] == DBNull.Value) { gView.DataSources.Raster.File.RasterFileDataset rDataset = new gView.DataSources.Raster.File.RasterFileDataset(); rLayer = rDataset.AddRasterFile((string)feature["PATH"], feature.Shape as IPolygon); } else { IRasterFileDataset rDataset = _layer._compMan.CreateInstance(new Guid(feature["RF_PROVIDER"].ToString())) as IRasterFileDataset; if (rDataset == null) { continue; } rLayer = rDataset.AddRasterFile((string)feature["PATH"], feature.Shape as IPolygon); } if (rLayer != null && rLayer.RasterClass != null) { rLayer.InterpolationMethod = _layer.InterpolationMethod; if (rLayer.RasterClass.SpatialReference == null) { rLayer.RasterClass.SpatialReference = _layer._sRef; } } } if (rLayer != null) { if (rLayer.Class is IGridClass) { IGridClass gridClass = (IGridClass)rLayer.Class; gridClass.ColorClasses = _layer.ColorClasses; gridClass.UseHillShade = _layer.UseHillShade; gridClass.HillShadeVector = _layer.HillShadeVector; gridClass.UseIgnoreDataValue = _layer.UseIgnoreDataValue; gridClass.IgnoreDataValue = _layer.IgnoreDataValue; gridClass.RenderRawGridValues = _layer.RenderRawGridValues; } return(rLayer); } } } catch { } return(null); }
async public Task <IRasterLayer> NextRasterLayer() { if (_cursor == null || _layer == null) { return(null); } try { while (true) { IFeature feature = await _cursor.NextFeature(); if (feature == null) { return(null); } IRasterLayer rLayer = null; double cell = Math.Max((double)feature["CELLX"], (double)feature["CELLY"]); int levels = Convert.ToInt32(feature["LEVELS"]); if ((bool)feature["MANAGED"] && _layer._imageSpaceType == SQLiteFDBImageCatalogClass.ImageSpaceType.FileSystem) { //gView.DataSources.Raster.File.PyramidFileClass rasterClass = new gView.DataSources.Raster.File.PyramidFileClass(_layer._dataset, _layer._imageSpace + @"/" + (string)feature["MANAGED_FILE"], feature.Shape as IPolygon); //if (rasterClass.isValid) //{ // rLayer = LayerFactory.Create(rasterClass) as IRasterLayer; // if (rLayer != null) // { // rLayer.InterpolationMethod = _layer.InterpolationMethod; // if (rasterClass.SpatialReference == null) rasterClass.SpatialReference = _layer._sRef; // } //} } else if (!(bool)feature["MANAGED"]) { if (feature["RF_PROVIDER"] == null || feature["RF_PROVIDER"] == DBNull.Value) { gView.DataSources.Raster.File.RasterFileDataset rDataset = new gView.DataSources.Raster.File.RasterFileDataset(); rLayer = rDataset.AddRasterFile((string)feature["PATH"], feature.Shape as IPolygon); } else { IRasterFileDataset rDataset = _layer._compMan.CreateInstance(new Guid(feature["RF_PROVIDER"].ToString())) as IRasterFileDataset; if (rDataset == null) { continue; } rLayer = rDataset.AddRasterFile((string)feature["PATH"], feature.Shape as IPolygon); } if (rLayer != null && rLayer.RasterClass != null) { rLayer.InterpolationMethod = _layer.InterpolationMethod; if (rLayer.RasterClass.SpatialReference == null) { rLayer.RasterClass.SpatialReference = _layer._sRef; } } } if (rLayer != null) { if (rLayer.Class is IGridClass) { IGridClass gridClass = (IGridClass)rLayer.Class; gridClass.ColorClasses = _layer.ColorClasses; gridClass.UseHillShade = _layer.UseHillShade; gridClass.HillShadeVector = _layer.HillShadeVector; gridClass.UseIgnoreDataValue = _layer.UseIgnoreDataValue; gridClass.IgnoreDataValue = _layer.IgnoreDataValue; gridClass.RenderRawGridValues = _layer.RenderRawGridValues; } return(rLayer); } } } catch { } return(null); }
async public Task <IRasterLayer> NextRasterLayer() { if (_cursor == null || _layer == null) { return(null); } try { while (true) { IFeature feature = await _cursor.NextFeature(); if (feature == null) { return(null); } IRasterLayer rLayer = null; double cell = Math.Max((double)feature["CELLX"], (double)feature["CELLY"]); int levels = (int)feature["LEVELS"]; if (!(bool)feature["MANAGED"]) { if (feature["RF_PROVIDER"] == null || feature["RF_PROVIDER"] == DBNull.Value) { gView.DataSources.Raster.File.RasterFileDataset rDataset = new gView.DataSources.Raster.File.RasterFileDataset(); rLayer = rDataset.AddRasterFile((string)feature["PATH"], feature.Shape as IPolygon); } else { IRasterFileDataset rDataset = _layer._compMan.CreateInstance(new Guid(feature["RF_PROVIDER"].ToString())) as IRasterFileDataset; if (rDataset == null) { continue; } rLayer = rDataset.AddRasterFile((string)feature["PATH"], feature.Shape as IPolygon); } if (rLayer != null && rLayer.RasterClass != null) { rLayer.InterpolationMethod = _layer.InterpolationMethod; if (rLayer.RasterClass.SpatialReference == null) { rLayer.RasterClass.SpatialReference = _layer._sRef; } } } if (rLayer != null) { if (rLayer.Class is IGridClass) { IGridClass gridClass = (IGridClass)rLayer.Class; gridClass.ColorClasses = _layer.ColorClasses; gridClass.UseHillShade = _layer.UseHillShade; gridClass.HillShadeVector = _layer.HillShadeVector; gridClass.UseIgnoreDataValue = _layer.UseIgnoreDataValue; gridClass.IgnoreDataValue = _layer.IgnoreDataValue; gridClass.RenderRawGridValues = _layer.RenderRawGridValues; } return(rLayer); } } } catch { } return(null); }