ArcMapAddinVisibility.ViewModels.LOSBaseViewModel.GetSurfaceFromMapByName C# (CSharp) Метод

GetSurfaceFromMapByName() публичный Метод

Method to get a ISurface from a map with layer name
public GetSurfaceFromMapByName ( IMap map, string name ) : ISurface
map IMap IMap that contains surface layer
name string Name of the layer that you are looking for
Результат ISurface
        public ISurface GetSurfaceFromMapByName(IMap map, string name)
        {
            for (int x = 0; x < map.LayerCount; x++)
            {
                var layer = map.get_Layer(x);

                if (layer == null || layer.Name != name)
                    continue;

                var tin = layer as ITinLayer;
                if (tin != null)
                {
                    return tin.Dataset as ISurface;
                }

                var rasterSurface = new RasterSurfaceClass() as IRasterSurface;
                ISurface surface = null;

                var mosaicLayer = layer as IMosaicLayer;
                var rasterLayer = layer as IRasterLayer;

                if (mosaicLayer != null && mosaicLayer.PreviewLayer != null && mosaicLayer.PreviewLayer.Raster != null)
                {
                    rasterSurface.PutRaster(mosaicLayer.PreviewLayer.Raster, 0);
                }
                else if (rasterLayer != null && rasterLayer.Raster != null)
                {
                    rasterSurface.PutRaster(rasterLayer.Raster, 0);
                }

                surface = rasterSurface as ISurface;

                if (surface != null)
                    return surface;
            }

            return null;
        }