将参考图层中的所有属性设置信息传递到新图层中,包括图层的渲染信息。
/// <summary>
/// 设置图层
/// </summary>
public static void SetupLayer(ILayer layer, ILayer referenceLayer)
{
if (layer == null || referenceLayer == null) return;
//layer.Name = referenceLayer.Name;
layer.MinimumScale = referenceLayer.MinimumScale;
layer.MaximumScale = referenceLayer.MaximumScale;
layer.Visible = referenceLayer.Visible;
layer.ShowTips = referenceLayer.ShowTips;
if ((referenceLayer as IFeatureLayer) != null && (layer as IFeatureLayer) != null)
{
IFeatureLayer refFeatureLayer = referenceLayer as IFeatureLayer;
(layer as IFeatureLayer).DisplayField = refFeatureLayer.DisplayField;
(layer as IFeatureLayer).ScaleSymbols = refFeatureLayer.ScaleSymbols;
(layer as IFeatureLayer).Selectable = refFeatureLayer.Selectable;
}
if ((referenceLayer as IGeoFeatureLayer) != null && (layer as IGeoFeatureLayer) != null)
{
IGeoFeatureLayer refGeoFeatureLayer = referenceLayer as IGeoFeatureLayer;
if (refGeoFeatureLayer.Renderer != null)
(layer as IGeoFeatureLayer).Renderer = refGeoFeatureLayer.Renderer;
if (refGeoFeatureLayer.AnnotationProperties != null)
(layer as IGeoFeatureLayer).AnnotationProperties = refGeoFeatureLayer.AnnotationProperties;
(layer as IGeoFeatureLayer).DisplayAnnotation = refGeoFeatureLayer.DisplayAnnotation;
}
if ((referenceLayer as ILayerEffects) != null && (layer as ILayerEffects) != null)
(layer as ILayerEffects).Transparency = (referenceLayer as ILayerEffects).Transparency;
}
/// <summary>
/// 设置图层
/// </summary>
public static void SetupLayer(ILayer layer, string layerName, object renderer, object annoProperties,
bool displayAnnotation, short transparency, double minimumScale, double maximumScale, bool scaleSymbols)
{
if (layer == null) return;
//layer.Name = layerName;
layer.MinimumScale = minimumScale;
layer.MaximumScale = maximumScale;
if (layer is IFeatureLayer)
{
(layer as IFeatureLayer).ScaleSymbols = scaleSymbols;
}
if (layer is IGeoFeatureLayer)
{
if (renderer != null)
(layer as IGeoFeatureLayer).Renderer = renderer as IFeatureRenderer;
if (annoProperties != null)
(layer as IGeoFeatureLayer).AnnotationProperties = annoProperties as IAnnotateLayerPropertiesCollection;
(layer as IGeoFeatureLayer).DisplayAnnotation = displayAnnotation;
}
if (layer is ILayerEffects)
{
(layer as ILayerEffects).Transparency = transparency;
}
}