Ejemplo n.º 1
0
        private static void ApplySymbology(ILayer layer, FileInfo symbology)
        {
            if (symbology == null || !symbology.Exists)
            {
                return;
            }

            IGxLayer pGXLayer = new GxLayer();
            IGxFile  pGXFile  = (IGxFile)pGXLayer;

            pGXFile.Path = symbology.FullName;


            if (layer is IRasterLayer)
            {
                if (pGXLayer.Layer is IRasterLayer)
                {
                    IRasterLayer prlayer = (IRasterLayer)pGXLayer.Layer;
                    ((IRasterLayer)layer).Renderer = prlayer.Renderer;
                }
                else
                {
                    throw new Exception(string.Format("Cannot apply symbology file to raster layer {0}. file: {1}", layer.Name, symbology.FullName));
                }
            }
            else if (layer is IGeoFeatureLayer)
            {
                if (pGXLayer.Layer is IGeoFeatureLayer)
                {
                    IGeoFeatureLayer pGFLayer = (IGeoFeatureLayer)pGXLayer.Layer;
                    ((IGeoFeatureLayer)layer).Renderer = pGFLayer.Renderer;

                    // Copy labels
                    if (pGFLayer.DisplayAnnotation)
                    {
                        try
                        {
                            ((IGeoFeatureLayer)layer).DisplayAnnotation    = true;
                            ((IGeoFeatureLayer)layer).AnnotationProperties = pGFLayer.AnnotationProperties;
                        }
                        catch (Exception ex)
                        {
                            System.Diagnostics.Debug.Print(ex.Message);
                            System.Diagnostics.Debug.Assert(false, "Error applying labels from layer file.");
                        }
                    }

                    // Make sure the correct layer properties dialog appears
                    IRendererPropertyPage pRendererPropPage = GetVectorPropertyPage(pGFLayer.Renderer);
                    if (pRendererPropPage != null)
                    {
                        ((IGeoFeatureLayer)layer).RendererPropertyPageClassID = pRendererPropPage.ClassID;
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private static void ApplySymbology(ILayer layer, FileInfo symbology)
        {
            if (symbology == null || !symbology.Exists)
            {
                return;
            }

            IGxLayer pGXLayer = new GxLayer();
            IGxFile  pGXFile  = (IGxFile)pGXLayer;

            pGXFile.Path = symbology.FullName;


            if (layer is IRasterLayer)
            {
                if (pGXLayer.Layer is IRasterLayer)
                {
                    IRasterLayer prlayer = (IRasterLayer)pGXLayer.Layer;
                    ((IRasterLayer)layer).Renderer = prlayer.Renderer;
                }
                else
                {
                    throw new Exception(string.Format("Cannot apply symbology file to raster layer {0}. file: {1}", layer.Name, symbology.FullName));
                }
            }
            else if (layer is IGeoFeatureLayer)
            {
                if (pGXLayer.Layer is IGeoFeatureLayer)
                {
                    IGeoFeatureLayer pGFLayer = (IGeoFeatureLayer)pGXLayer.Layer;
                    ((IGeoFeatureLayer)layer).Renderer = pGFLayer.Renderer;

                    IRendererPropertyPage pRendererPropPage = GetVectorPropertyPage(pGFLayer.Renderer);
                    if (pRendererPropPage != null)
                    {
                        ((IGeoFeatureLayer)layer).RendererPropertyPageClassID = pRendererPropPage.ClassID;
                    }
                }
            }
        }