SuperMap.Web.iServerJava6R.ServerGeometry.FromJson C# (CSharp) Method

FromJson() public static method

${iServerJava6R_ServerType_method_FromJson_D}
public static FromJson ( System.Json.JsonObject json ) : ServerGeometry
json System.Json.JsonObject ${iServerJava6R_ServerType_method_FromJson_param_jsonObject}
return ServerGeometry
        public static ServerGeometry FromJson(JsonObject json)
        {
            if (json == null)
            {
                return null;
            }
            ServerGeometryType type;
            bool isSuccess = Enum.TryParse<ServerGeometryType>((string)json["type"], true, out type);

            ServerGeometry geometry;
            if (type == ServerGeometryType.LINEM)
            {
                geometry = new ServerRoute();
                ((ServerRoute)geometry).Length = (double)json["length"];
                ((ServerRoute)geometry).MaxM = (double)json["maxM"];
                ((ServerRoute)geometry).MinM = (double)json["minM"];
            }
            else
            {
                geometry = new ServerGeometry();
            }

            if (isSuccess)
            {
                geometry.Type = type;
            }
            else
            {
                return geometry;
            }
            geometry.ID = (int)json["id"];
            geometry.Style = ServerStyle.FromJson((JsonObject)json["style"]);

            JsonArray parts = (JsonArray)json["parts"];
            if (parts != null && parts.Count > 0)
            {
                geometry.Parts = new List<int>();
                for (int i = 0; i < parts.Count; i++)
                {
                    geometry.Parts.Add((int)parts[i]);
                }
            }

            JsonArray point2Ds = (JsonArray)json["points"];
            if (point2Ds != null && point2Ds.Count > 0)
            {
                geometry.Points = new Point2DCollection();
                for (int i = 0; i < point2Ds.Count; i++)
                {
                    Point2D point = JsonHelper.ToPoint2D((JsonObject)point2Ds[i]);
                    if (type == ServerGeometryType.LINEM)
                    {
                        if (point != Point2D.Empty && ((JsonObject)point2Ds[i]).ContainsKey("measure"))
                        {
                            point.Tag = (double)(((JsonObject)point2Ds[i])["measure"]);
                        }
                    }
                    geometry.Points.Add(point);
                }
            }

            return geometry;
        }