public static SuperMapLayerSetting FromJson(JsonObject jsonObject)
{
if (jsonObject == null)
{
return null;
}
SuperMapLayerSetting result = new SuperMapLayerSetting();
result.Brightness = (int)jsonObject["brightness"];
result.Contrast = (int)jsonObject["contrast"];
if (jsonObject.ContainsKey("datasetInfo") && jsonObject["datasetInfo"] != null)
{
result.DatasetInfo = DatasetInfo.FromJson((JsonObject)jsonObject["datasetInfo"]);
}
if (jsonObject.ContainsKey("joinItems") && jsonObject["joinItems"] != null)
{
result.JoinItems = new List<JoinItem>();
for (int i = 0; i < jsonObject["joinItems"].Count; i++)
{
result.JoinItems.Add(JoinItem.FromJson((JsonObject)jsonObject["joinItems"]));
}
}
if (jsonObject.ContainsKey("style"))
{
result.Style = ServerStyle.FromJson((JsonObject)jsonObject["style"]);
}
else if (jsonObject.ContainsKey("theme"))
{
//这里要判断ThemeType,对不同的专题图进行解析;
//但是还存在问题:有Style属性的没有Theme,反之亦然;
if (jsonObject["theme"]["themeType"] == 1)
{
//ThemeUnique
result.Theme = ThemeUnique.FromJson((JsonObject)jsonObject["theme"]);
}
else if (jsonObject["theme"]["themeType"] == 2)
{
//ThemeRange
result.Theme = ThemeRange.FromJson(((JsonObject)jsonObject["theme"]));
}
else if (jsonObject["theme"]["themeType"] == 3)
{
//ThemeGraph
result.Theme = ThemeGraph.FromJson((JsonObject)jsonObject["theme"]);
}
else if (jsonObject["theme"]["themeType"] == 4)
{
//ThemeGraduatedSymbol
result.Theme = ThemeGraduatedSymbol.FromJson((JsonObject)jsonObject["theme"]);
}
else if (jsonObject["theme"]["themeType"] == 5)
{
// ThemeDotDensity
result.Theme = ThemeDotDensity.FromJson((JsonObject)jsonObject["theme"]);
}
else if (jsonObject["theme"]["themeType"] == 7)
{
//ThemeLabel
result.Theme = Themelabel.FromJson((JsonObject)jsonObject["theme"]);
}
}
if (jsonObject.ContainsKey("superMapLayerType"))
{
result.SuperMapLayerType = (SuperMapLayerType)(int)jsonObject["superMapLayerType"];
}
result.OpaqueRate = (int)jsonObject["opaqueRate"];
result.ServerLayerSettingType = (ServerLayerSettingType)(int)jsonObject["layerSettingType"];
return result;
}