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(); }
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; }
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; }
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 { } }