예제 #1
0
        private void AddServer_Click(object sender, EventArgs e)
        {
            if (wmsUrl.Text.Length < 5 && ServerName.Text.Length < 1)
            {
                return;
            }
            string url = wmsUrl.Text;



            int index = url.IndexOf("?");

            if (index > -1)
            {
                url = url.Substring(0, index);
            }
            WmsServerEntry entry = new WmsServerEntry();

            entry.Name = ServerName.Text;

            if (dontParse.Checked)
            {
                entry.Url = wmsUrl.Text;
            }
            else
            {
                entry.Url = url;
            }


            ServerList.Items.Add(entry);
            SaveServerList();
        }
예제 #2
0
        private void WmsLayerWizard_Load(object sender, EventArgs e)
        {
            string path = Properties.Settings.Default.CahceDirectory + "data\\WMS_Servers.txt";

            if (!File.Exists(path))
            {
                return;
            }

            string[] lines = File.ReadAllLines(path);
            foreach (string line in lines)
            {
                string[] parts = line.Split(new char[] { '\t' });

                WmsServerEntry entry = new WmsServerEntry();
                entry.Name = parts[0];
                entry.Url  = parts[1];
                int index = ServerList.Items.Add(entry);
            }
            if (ServerList.Items.Count > 0)
            {
                ServerList.SelectedIndex = 0;
            }

            add.Enabled = false;
        }
예제 #3
0
        private void SaveServerList()
        {
            string path = Properties.Settings.Default.CahceDirectory + "data\\WMS_Servers.txt";

            StreamWriter sw = new StreamWriter(path);

            foreach (object item in ServerList.Items)
            {
                WmsServerEntry wse = (WmsServerEntry)item;
                sw.WriteLine(wse.Name + "\t" + wse.Url);
            }
            sw.Close();
        }
        private void AddServer_Click(object sender, EventArgs e)
        {
            if (wmsUrl.Text.Length < 5 && ServerName.Text.Length < 1)
            {
                return;
            }
            var url = wmsUrl.Text;

            var index = url.IndexOf("?");

            if (index > -1)
            {
                url = url.Substring(0, index);
            }
            var entry = new WmsServerEntry();
            entry.Name = ServerName.Text;

            if (dontParse.Checked)
            {
                entry.Url = wmsUrl.Text;
            }
            else
            {
                entry.Url = url;
            }

            ServerList.Items.Add(entry);
            SaveServerList();
        }
        private void WmsLayerWizard_Load(object sender, EventArgs e)
        {
            var path = Properties.Settings.Default.CahceDirectory + "data\\WMS_Servers.txt";

            if (!File.Exists(path))
            {
                return;
            }

            var lines = File.ReadAllLines(path);
            foreach (var line in lines)
            {
                var parts = line.Split(new[] { '\t' });

                var entry = new WmsServerEntry();
                entry.Name = parts[0];
                entry.Url = parts[1];
                var index = ServerList.Items.Add(entry);
            }
            if (ServerList.Items.Count > 0)
            {
                ServerList.SelectedIndex = 0;
            }

            add.Enabled = false;
        }
예제 #6
0
        private void ShowCapababilities(bool download)
        {
            if (ServerList.SelectedIndex < 0)
            {
                return;
            }

            add.Enabled = false;

            LayersTree.Nodes.Clear();
            Abstract.Text = "";

            WmsServerEntry wse = (WmsServerEntry)ServerList.SelectedItem;
            string         req = "REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.3.0";

            if (wse.Url.Contains("?"))
            {
                req = "&" + req;
            }
            else
            {
                req = "?" + req;
            }

            string url = wse.Url + req;

            string filename      = Properties.Settings.Default.CahceDirectory + "data\\wms\\" + ((uint)url.GetHashCode32()).ToString() + ".xml";
            string tiledFilename = Properties.Settings.Default.CahceDirectory + "data\\wms\\" + ((uint)url.GetHashCode32()).ToString() + ".tiled.xml";

            if (!File.Exists(filename) && !download)
            {
                LayersTree.Nodes.Add(Language.GetLocalizedText(910, "Not loaded -  Click Get Layers to download now"));
                return;
            }

            if (!FileDownload.DownloadFile(url, filename, download))
            {
                return;
            }

            bool   tiled    = false;
            string tiledUrl = "";

            try
            {
                using (Stream stream = File.Open(filename, FileMode.Open))
                {
                    WMS_Capabilities caps = WMS_Capabilities.LoadFromSream(stream);

                    serviceUrl = caps.Capability.Request.GetMap.DCPType[0].HTTP.Get.OnlineResource.href;
                    if (!serviceUrl.Contains("?"))
                    {
                        serviceUrl += "?";
                    }
                    wmsVersion = caps.version;
                    stream.Close();

                    if (caps.Capability.Request.GetTileService != null && !string.IsNullOrEmpty(caps.Capability.Request.GetTileService.DCPType[0].HTTP.Get.OnlineResource.href))
                    {
                        tiled      = true;
                        tiledUrl   = caps.Capability.Request.GetTileService.DCPType[0].HTTP.Get.OnlineResource.href + "request=GetTileService";
                        serviceUrl = caps.Capability.Request.GetTileService.DCPType[0].HTTP.Get.OnlineResource.href;
                        if (!serviceUrl.Contains("?"))
                        {
                            serviceUrl += "?";
                        }
                    }

                    if (!tiled)
                    {
                        AddChildren(caps.Capability.Layer, LayersTree.Nodes);
                    }
                }
            }
            catch
            {
                try
                {
                    using (Stream stream = File.Open(filename, FileMode.Open))
                    {
                        WMT_MS_Capabilities caps = WMT_MS_Capabilities.LoadFromSream(stream);

                        serviceUrl = caps.Capability.Request.GetMap.DCPType[0].HTTP.Get.OnlineResource.href;
                        if (!serviceUrl.Contains("?"))
                        {
                            serviceUrl += "?";
                        }
                        wmsVersion = caps.version;
                        stream.Close();
                        if (caps.Capability.Request.GetTileService != null && !string.IsNullOrEmpty(caps.Capability.Request.GetTileService.DCPType[0].HTTP.Get.OnlineResource.href))
                        {
                            tiled      = true;
                            tiledUrl   = caps.Capability.Request.GetTileService.DCPType[0].HTTP.Get.OnlineResource.href + "request=GetTileService";
                            serviceUrl = caps.Capability.Request.GetTileService.DCPType[0].HTTP.Get.OnlineResource.href;
                            if (!serviceUrl.Contains("?"))
                            {
                                serviceUrl += "?";
                            }
                        }

                        if (!tiled)
                        {
                            AddChildren(caps.Capability.Layer, LayersTree.Nodes);
                        }
                    }
                }
                catch
                {
                }
            }
            // Add Tiled if supported
            try
            {
                if (tiled)
                {
                    if (!FileDownload.DownloadFile(tiledUrl, tiledFilename, false))
                    {
                        return;
                    }
                    using (Stream stream = File.Open(tiledFilename, FileMode.Open))
                    {
                        WMS_Tile_Service wts = WMS_Tile_Service.LoadFromSream(stream);
                        AddChildren(wts.TiledPatterns[0].TiledGroup, LayersTree.Nodes);
                    }
                }
            }
            catch
            {
            }
        }