${iServerJava6R_UGCImageLayer_Title}
Inheritance: UGCLayer
        /// <summary>${iServerJava6R_ServerLayer_method_FromJson_D}</summary>
        /// <returns>${iServerJava6R_ServerLayer_method_FromJson_return}</returns>
        /// <param name="json">${iServerJava6R_ServerLayer_method_FromJson_param_jsonObject}</param>
        public static ServerLayer FromJson(JsonObject json)
        {
            var serverLayer = new ServerLayer();
            if (json["bounds"] != null)
            {
                serverLayer.Bounds = JsonHelper.ToRectangle2D((JsonObject)json["bounds"]);
            }
            else
            {
                //null
            }
            serverLayer.Caption = (string)json["caption"];
            serverLayer.Description = (string)json["description"];
            serverLayer.Name = (string)json["name"];
            serverLayer.IsQueryable = (bool)json["queryable"];
            serverLayer.IsVisible = (bool)json["visible"];
            serverLayer.IsCompleteLineSymbolDisplayed = (bool)json["completeLineSymbolDisplayed"];
            serverLayer.MaxScale = (double)json["maxScale"];
            serverLayer.MinScale = (double)json["minScale"];
            serverLayer.MinVisibleGeometrySize = (double)json["minVisibleGeometrySize"];
            serverLayer.OpaqueRate = (int)json["opaqueRate"];
            serverLayer.IsSymbolScalable = (bool)json["symbolScalable"];
            serverLayer.SymbolScale = (double)json["symbolScale"];
            serverLayer.DatasetInfo = DatasetInfo.FromJson((JsonObject)json["datasetInfo"]);
            serverLayer.DisplayFilter = (string)json["displayFilter"];

            if (json["joinItems"] != null)
            {
                List<JoinItem> joinItems = new List<JoinItem>();
                foreach (JsonObject item in (JsonArray)json["joinItems"])
                {
                    joinItems.Add(JoinItem.FromJson(item));
                }
                serverLayer.JoinItems = joinItems;
            }
            serverLayer.RepresentationField = (string)json["representationField"];

            if ((string)json["ugcLayerType"] == SuperMapLayerType.GRID.ToString())
            {
                UGCGridLayer ugcGridLayer = new UGCGridLayer();

                List<Color> colors = new List<Color>();
                foreach (JsonObject colorItem in (JsonArray)json["colors"])
                {
                    colors.Add(ServerColor.FromJson(colorItem).ToColor());
                }
                ugcGridLayer.Colors = colors;

                if (json["dashStyle"] != null)
                {
                    ugcGridLayer.DashStyle = ServerStyle.FromJson((JsonObject)json["dashStyle"]);
                }
                if (json["gridType"] != null)
                {
                    ugcGridLayer.GridType = (GridType)Enum.Parse(typeof(GridType), json["gridType"], true);
                }
                else
                {
                }

                ugcGridLayer.HorizontalSpacing = (double)json["horizontalSpacing"];
                ugcGridLayer.SizeFixed = (bool)json["sizeFixed"];

                if (json["solidStyle"] != null)
                {
                    ugcGridLayer.SolidStyle = ServerStyle.FromJson((JsonObject)json["solidStyle"]);
                }

                if (json["specialColor"] != null)
                {
                    ugcGridLayer.SpecialColor = ServerColor.FromJson((JsonObject)json["specialColor"]).ToColor();
                }
                ugcGridLayer.SpecialValue = (double)json["specialValue"];
                ugcGridLayer.VerticalSpacing = (double)json["verticalSpacing"];
                serverLayer.UGCLayer = ugcGridLayer;
            }

            else if ((string)json["ugcLayerType"] == SuperMapLayerType.IMAGE.ToString())
            {
                UGCImageLayer ugcImageLayer = new UGCImageLayer();
                ugcImageLayer.Brightness = (int)json["brightness"];
                if (json["colorSpaceType"] != null)
                {
                    ugcImageLayer.ColorSpaceType = (ColorSpaceType)Enum.Parse(typeof(ColorSpaceType), (string)json["colorSpaceType"], true);
                }
                else
                {
                }
                ugcImageLayer.Contrast = (int)json["contrast"];

                List<int> bandIndexes = new List<int>();
                if (json["displayBandIndexes"] != null && ((JsonArray)json["displayBandIndexes"]).Count > 0)
                {
                    foreach (int item in (JsonArray)json["displayBandIndexes"])
                    {
                        bandIndexes.Add(item);
                    }

                    ugcImageLayer.DisplayBandIndexes = bandIndexes;
                }

                ugcImageLayer.Transparent = (bool)json["transparent"];
                ugcImageLayer.TransparentColor = ServerColor.FromJson((JsonObject)json["transparentColor"]).ToColor();
                serverLayer.UGCLayer = ugcImageLayer;
            }

            else if ((string)json["ugcLayerType"] == SuperMapLayerType.THEME.ToString())
            {
                UGCThemeLayer ugcThemeLayer = new UGCThemeLayer();
                if (json["theme"] != null)
                {

                    if ((string)json["theme"]["type"] == "UNIQUE")
                    {
                        ugcThemeLayer.Theme = ThemeUnique.FromJson((JsonObject)json["theme"]);
                    }

                    else if ((string)json["theme"]["type"] == "RANGE")
                    {
                        ugcThemeLayer.Theme = ThemeRange.FromJson((JsonObject)json["theme"]);
                    }

                    else if ((string)json["theme"]["type"] == "LABEL")
                    {
                        ugcThemeLayer.Theme = ThemeLabel.FromJson((JsonObject)json["theme"]);
                    }

                    else if ((string)json["theme"]["type"] == "GRAPH")
                    {
                        ugcThemeLayer.Theme = ThemeGraph.FromJson((JsonObject)json["theme"]);
                    }

                    else if ((string)json["theme"]["type"] == "DOTDENSITY")
                    {
                        ugcThemeLayer.Theme = ThemeDotDensity.FromJson((JsonObject)json["theme"]);
                    }

                    else if ((string)json["theme"]["type"] == "GRADUATEDSYMBOL")
                    {
                        ugcThemeLayer.Theme = ThemeGraduatedSymbol.FromJson((JsonObject)json["theme"]);
                    }
                    else
                    {
                        //以后有需求再添加,现在就写到这里,共六个专题图。
                    }
                }
                if (json["theme"]["type"] != null)
                {
                    ugcThemeLayer.ThemeType = (ThemeType)Enum.Parse(typeof(ThemeType), (string)json["theme"]["type"], true);
                }
                serverLayer.UGCLayer = ugcThemeLayer;
                //ugcThemeLayer.Theme
            }

            else if ((string)json["ugcLayerType"] == SuperMapLayerType.VECTOR.ToString() && json.ContainsKey("style"))
            {
                serverLayer.UGCLayer = UGCVectorLayer.FromJson((JsonObject)json["style"]);
            }
            else
            {
                serverLayer.UGCLayer = new UGCLayer();
            }
            if (json["ugcLayerType"] != null)
            {
                serverLayer.UGCLayerType = (SuperMapLayerType)Enum.Parse(typeof(SuperMapLayerType), (string)json["ugcLayerType"], true);
            }
            else
            {
                //不做处理
            }

            //这里不判断WMS和WFS图层。
            //else if (json["ugcLayerType"] == SuperMapLayerType.WMS.ToString())
            //{

            //}
            //根据图层类型增加相应属性。
            return serverLayer;
        }