using System;
using System.Web.UI;
using ThinkGeo.MapSuite.Core;
using ThinkGeo.MapSuite.WebEdition;
using System.Xml;
using System.Collections.ObjectModel;

public partial class Sample : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            Map1.MapUnit = GeographyUnit.DecimalDegree;
            Map1.MapTools.Logo.Enabled = true;


            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(MapPath("~/Data/StreetWMSLayers.xml"));

            string srs = xmlDoc.SelectSingleNode("//SRS").InnerText;

            TiledWmsLayer wmsLayer = new TiledWmsLayer();
            wmsLayer.ServerUris.Add(new Uri("http://194.72.72.68:24572/CCS2WebMapServiceIGN/GetMap.ashx"));
            wmsLayer.Open();
            wmsLayer.Crs = srs;

            XmlNodeList list = xmlDoc.SelectNodes("//Layer");
            Collection rects = new Collection();

            foreach (var item in wmsLayer.GetServerLayerNames())
            {
                wmsLayer.ActiveLayerNames.Add(item);
            }
    
            //foreach (XmlElement item in list)
            //{
            //    wmsLayer.ActiveLayerNames.Add(item.ChildNodes[0].InnerText);
            //    wmsLayer.ActiveStyleNames.Add(item.ChildNodes[1].InnerText == "" ? "default" : item.ChildNodes[1].InnerText);


            //    XmlElement rectNode = (XmlElement)item.ChildNodes[2];
            //    RectangleShape extent = new RectangleShape(Convert.ToDouble(rectNode.Attributes["minx"].InnerText),
            //                                             Convert.ToDouble(rectNode.Attributes["maxy"].InnerText),
            //                                             Convert.ToDouble(rectNode.Attributes["maxx"].InnerText),
            //                                             Convert.ToDouble(rectNode.Attributes["miny"].InnerText));
            //    rects.Add(extent);
            //}

            //RectangleShape rect = rects[0];
            //for (int i = 1; i < rects.Count; i++)
            //{
            //    rect.ExpandToInclude(rects[i]);
            //}

            Map1.CurrentExtent = new RectangleShape(2.408901, 48.923393, 2.5683, 48.764183);
            //Map1.CurrentExtent = rect;

            LayerOverlay overlay = new LayerOverlay();
            overlay.Layers.Add(wmsLayer);

            Map1.CustomOverlays.Add(overlay);
        }
    }
}