//public static EsriLayerInfo Create(LAYERINFO layerInfo) //{ // EsriLayerInfo info = new EsriLayerInfo(); // if (layerInfo.visibleSpecified) info._isVisible = layerInfo.visible == LAYERINFOVisible.@true; // info._id = layerInfo.id; // try // { // if (!string.IsNullOrEmpty(layerInfo.minscale)) // { // info._minscale = double.Parse(layerInfo.minscale); // } // } // catch { } // try // { // if (!string.IsNullOrEmpty(layerInfo.maxscale)) // { // info._maxscale = double.Parse(layerInfo.maxscale); // } // } // catch { } // info._name = layerInfo.name; // info._type = layerInfo.type.ToString(); // if (layerInfo.Items != null) // { // for (int i = 0; i < layerInfo.Items.Length; i++) // { // if (layerInfo.Items[i] is ENVELOPE) // { // info._baseExtent = EsriEnvelope.Create(layerInfo.Items[i] as ENVELOPE); // } // else if (layerInfo.Items[i] is FCLASS) // { // info.IsQueryable = true; // ProcessItems(layerInfo.Items[i] as FCLASS, info); // } // } // } // return info; //} //private static void ProcessItems(FCLASS fCLASS, EsriLayerInfo info) //{ // foreach (object obj in fCLASS.Items) // { // if (obj is ENVELOPE) // { // info._baseExtent = EsriEnvelope.Create(obj as ENVELOPE); // } // else if (obj is FIELD) // { // info._Fields.Add(EsriField.ProcessFieldNode(obj as FIELD)); // } // } //} //{"id":0,"name":"Davidson_County","parentLayerId":-1,"defaultVisibility":true,"subLayerIds":null} internal static GISLayerInfo Create(JSONObject obj) { EsriLayerInfo info = new EsriLayerInfo(); for (int idx = 0; idx < obj.Count; idx++) { switch (obj[idx]) { case "id": info._id = obj.getString("id"); break; case "name": info._name = obj.getString("name"); break; case "": info._isVisible = obj.getBool("defaultVisibility"); break; } } return info; }