protected internal virtual void CreateLayer(SCMap map, InformationDataProviderBase provider)
        {
            var layer = new InformationLayer()
            {
                EnableHighlighting = false,
                EnableSelection    = false
            };

            if (layer.DataProvider == null)
            {
                layer.DataProvider = provider;
            }

            map.Map.Layers.Add(layer);
            map.CurrentLayer = layer;
        }
        protected internal virtual void CreateLayer(SCMap map, InformationDataProviderBase provider)
        {
            var layer = new InformationLayer()
            {
                EnableHighlighting = false,
                EnableSelection    = false,
                DataProvider       = provider
            };

            if (!string.IsNullOrWhiteSpace(Name))
            {
                layer.Name = Name;
            }

            if (!string.IsNullOrWhiteSpace(ShapeTitlesPattern))
            {
                layer.ShapeTitlesPattern    = ShapeTitlesPattern;
                layer.ShapeTitlesVisibility = VisibilityMode.Visible;
            }

            if (ItemImageIndex.HasValue)
            {
                layer.ItemImageIndex = ItemImageIndex.Value;
            }

            var itemStyle = layer.ItemStyle;

            var fillColor = Utils.ColorFromString(FillColor);

            if (fillColor != Color.Empty)
            {
                itemStyle.Fill = fillColor;
            }

            var font = Utils.StringToFont(Font, out Color textColor);

            if (font != null)
            {
                itemStyle.Font = font;
            }
            if (textColor != Color.Empty)
            {
                itemStyle.TextColor = textColor;
            }

            var strokeColor = Utils.ColorFromString(StrokeColor);

            if (strokeColor != Color.Empty)
            {
                itemStyle.Stroke = strokeColor;
            }
            if (StrokeWidth.HasValue)
            {
                itemStyle.StrokeWidth = StrokeWidth.Value;
            }

            var textGlowColor = Utils.ColorFromString(TextGlowColor);

            if (textGlowColor != Color.Empty)
            {
                itemStyle.TextGlowColor = textGlowColor;
            }

            if (layer.DataProvider == null)
            {
                layer.DataProvider = provider;
            }

            map.Map.Layers.Add(layer);
            map.CurrentLayer = layer;
        }