private void load_version_1_3_0(string capabilitiesFilePath) { capabilities_1_3_0.capabilities_1_3_0Doc doc = new capabilities_1_3_0.capabilities_1_3_0Doc(); capabilities_1_3_0.wms.WMS_CapabilitiesType root = new capabilities_1_3_0.wms.WMS_CapabilitiesType(doc.Load(capabilitiesFilePath)); if(!root.HasCapability()) return; if(!root.Capability.HasLayer()) return; string[] imageFormats = null; if(root.Capability.HasRequest() && root.Capability.Request.HasGetMap()) { if(root.Capability.Request.GetMap.HasDCPType()) { this._serverGetMapUrl = root.Capability.Request.GetMap.DCPType.HTTP.Get.OnlineResource.href.Value; } else this._serverGetMapUrl = this._serverGetCapabilitiesUrl; if(root.Capability.Request.GetMap.HasFormat()) { imageFormats = new string[root.Capability.Request.GetMap.FormatCount]; for(int i = 0; i < root.Capability.Request.GetMap.FormatCount; i++) { imageFormats[i] = root.Capability.Request.GetMap.GetFormatAt(i).Value; } } } this.Layers = new MyWMSLayer[root.Capability.LayerCount]; for(int i = 0; i < root.Capability.LayerCount; i++) { capabilities_1_3_0.wms.LayerType curLayer = (capabilities_1_3_0.wms.LayerType)root.Capability.GetLayerAt(i); this.Layers[i] = this.getWMSLayer(curLayer, null, imageFormats); } }
private void RefreshCapabilities( Stream capabilitiesStream ) { System.Xml.XmlReader capReader = null; try { capReader = new System.Xml.XmlTextReader(capabilitiesStream); capabilities_1_3_0.capabilities_1_3_0Doc doc = new capabilities_1_3_0.capabilities_1_3_0Doc(); capabilities_1_3_0.wms.WMS_CapabilitiesType root = new capabilities_1_3_0.wms.WMS_CapabilitiesType( doc.Load( capReader )); if(root.HasCapability()) { capabilities_1_3_0.wms.LayerType rootLayer = root.Capability.GetLayer(); for(int i = 0; i < rootLayer.LayerCount; i++) { capabilities_1_3_0.wms.LayerType curLayer = (capabilities_1_3_0.wms.LayerType)rootLayer.GetLayerAt(i); TreeNode tn = this.getTreeNodeFromLayerType(curLayer); this.treeViewLayers.BeginInvoke(new UpdateTreeDelegate(UpdateTree), new object[] {tn}); } updateStatusBar("Download successful."); } else { updateStatusBar("Invalid table of contents. Please try again later."); } } catch(Exception caught) { // Ignore all problems updateStatusBar(caught.Message); } finally { // The dude at MS writing the XmlReader class was so high on XML he forgot IDisposable? :-P if(capReader != null) capReader.Close(); } }
private void load_version_1_3_0(string capabilitiesFilePath) { capabilities_1_3_0.capabilities_1_3_0Doc doc = new capabilities_1_3_0.capabilities_1_3_0Doc(); XmlReaderSettings oSettings = new System.Xml.XmlReaderSettings(); oSettings.IgnoreWhitespace = true; oSettings.ProhibitDtd = false; oSettings.XmlResolver = null; oSettings.ValidationType = ValidationType.None; using (XmlReader oResponseXmlStream = XmlReader.Create(capabilitiesFilePath, oSettings)) { capabilities_1_3_0.wms.WMS_CapabilitiesType root = new capabilities_1_3_0.wms.WMS_CapabilitiesType(doc.Load(oResponseXmlStream)); if (root.versionCount > 0) { this._version = root.version.Value; } else { this._version = "1.3.0"; } this._name = root.Service.Title.Value; if (!root.HasCapability()) return; if (!root.Capability.HasLayer()) return; string[] imageFormats = null; if (root.Capability.HasRequest() && root.Capability.Request.HasGetMap()) { if (root.Capability.Request.GetMap.HasDCPType()) { this._serverGetMapUrl = root.Capability.Request.GetMap.DCPType.HTTP.Get.OnlineResource.href.Value; } else this._serverGetMapUrl = this._serverGetCapabilitiesUrl; if (root.Capability.Request.GetMap.HasFormat()) { imageFormats = new string[root.Capability.Request.GetMap.FormatCount]; for (int i = 0; i < root.Capability.Request.GetMap.FormatCount; i++) { imageFormats[i] = root.Capability.Request.GetMap.GetFormatAt(i).Value; } } } this.Layers = new WMSLayer[root.Capability.LayerCount]; for (int i = 0; i < root.Capability.LayerCount; i++) { capabilities_1_3_0.wms.LayerType curLayer = (capabilities_1_3_0.wms.LayerType)root.Capability.GetLayerAt(i); this.Layers[i] = this.getWMSLayer(curLayer, null, imageFormats); } } }