Here is what I would like to do:
var rlayer = new RasterLayer(new Raster("C:/...../myraster.tif");
My problem is that the raster file is still in use (presumably a reference held by the layer). So I can't delete the file or rename it. I tried a few things to try to uncouple the raster from the layer, but no luck. For example ...
var layers = mapVm.Map.OperationalLayers; var raster = myRasterLayer.Raster; layers.Remove(layer); raster = null; layer = null; System.GC.Collect();
I even tried to force garbage collection. I think that may have worked once or twice, but I can't replicate it reliably.
I also tried the local server approach in the
sample, but same result.
Any advice? Maybe I need to take a different approach?
Quick bit of additional info. I tried this using LocalServer as it is done in the Dynamic Workspace Raster from the SDK Samples App, and I get similar behavior. The local server holds a reference to the raster even when a new/different raster file is chosen.
I had a similar problem trying to delete files even after clearing the operational layers. Looking through the documentation, I found a note on GeoPackage.Close() saying that only after closing the geopackage can an underlying file be deleted/renamed etc. Adding a call to this got my system working. Hope this helps.