public void ParseCapabilities_LocalSmhiFile_SuccessfulParse() { string text = System.IO.File.ReadAllText(@"Sample files\smhi getcapabilities.xml"); var caps = WFSManager.ParseCapabilities(text, WFSVersion.Ver100); Assert.AreEqual(132, caps.FeatureTypes.Count); }
public ActionResult AddWfsLayer(string url, WFSVersion wfsVersion) { string wfsUrl = null; try { wfsUrl = WFSManager.CreateGetCapabiltiesRequestUrl(url, wfsVersion); } catch (UriFormatException) { ModelState.AddModelError("", "The URL has wrong format"); } if (ModelState.IsValid) { if (wfsVersion == WFSVersion.Unknown) { wfsVersion = WFSManager.GetWFSVersionFromRequestUrl(url); if (wfsVersion == WFSVersion.Unknown) { wfsVersion = WFSVersion.Ver110; } } return(RedirectToAction("AddWfsLayer", new { @url = wfsUrl })); } var viewManager = new WfsLayersViewManager(GetCurrentUser(), SessionHandler.MySettings); var model = viewManager.CreateAddWfsLayerViewModel(ModelState, url, Url.Action("UploadMapDataFile"), Url.Action("WfsLayers")); return(View(model)); }
public void Get_WFSVersion_From_GetCapabilitiesRequest() { WFSVersion version; version = WFSManager.GetWFSVersionFromRequestUrl("http://slwgeo.artdata.slu.se:8080/geoserver/SLW/wfs?service=WFS&version=1.1.0&request=GetCapabilities"); Assert.AreEqual(WFSVersion.Ver110, version); version = WFSManager.GetWFSVersionFromRequestUrl("http://slwgeo.artdata.slu.se:8080/geoserver/SLW/wfs?service=WFS&version=1.0.0&request=GetCapabilities"); Assert.AreEqual(WFSVersion.Ver100, version); version = WFSManager.GetWFSVersionFromRequestUrl("http://slwgeo.artdata.slu.se:8080/geoserver/SLW/wfs?service=WFS&request=GetCapabilities&version=1.0.0"); Assert.AreEqual(WFSVersion.Ver100, version); version = WFSManager.GetWFSVersionFromRequestUrl("http://slwgeo.artdata.slu.se:8080/geoserver/SLW/wfs?service=WFS&request=GetCapabilities&version=1.5.0"); Assert.AreEqual(WFSVersion.Unknown, version); version = WFSManager.GetWFSVersionFromRequestUrl("http://slwgeo.artdata.slu.se:8080/geoserver/SLW/wfs?service=WFS&request=GetCapabilities&version=1.1."); Assert.AreEqual(WFSVersion.Unknown, version); version = WFSManager.GetWFSVersionFromRequestUrl("http://slwgeo.artdata.slu.se:8080/geoserver/SLW/wfs?service=WFS&request=GetCapabilities"); Assert.AreEqual(WFSVersion.Unknown, version); version = WFSManager.GetWFSVersionFromRequestUrl("abc"); Assert.AreEqual(WFSVersion.Unknown, version); }
public void GetCoordinateSystemSrsFromUrl_SrsIsMissingInUrl_NullIsReturned() { string featuresUrl = "http://slwgeo.artdata.slu.se:8080/geoserver/wfs?&service=wfs&request=GetFeature&version=1.1.0&typeName=SLW:Sverigekarta_med_lan"; string srsName = WFSManager.GetCoordinateSystemSrsFromUrl(featuresUrl); Assert.IsNull(srsName); }
public void AddOrReplaceSrsInUrl_UrlContainingSrs_SrsIsReplaced() { string newSrsName = "EPSG:1001"; string featuresUrl = "http://slwgeo.artdata.slu.se:8080/geoserver/wfs?&service=wfs&request=GetFeature&version=1.1.0&typeName=SLW:Sverigekarta_med_lan&srsName=EPSG:3857"; string newUrl = WFSManager.AddOrReplaceSrsInUrl(featuresUrl, newSrsName); Assert.IsTrue(WFSManager.GetCoordinateSystemSrsFromUrl(newUrl) == newSrsName); // Google mercator featuresUrl = "http://slwgeo.artdata.slu.se:8080/geoserver/wfs?&service=wfs&request=GetFeature&version=1.1.0&typeName=SLW:Sverigekarta_med_lan&srsName=EPSG:900913"; newUrl = WFSManager.AddOrReplaceSrsInUrl(featuresUrl, newSrsName); Assert.IsTrue(WFSManager.GetCoordinateSystemSrsFromUrl(newUrl) == newSrsName); // extra space in the end featuresUrl = "http://slwgeo.artdata.slu.se:8080/geoserver/wfs?&service=wfs&request=GetFeature&version=1.1.0&typeName=SLW:Sverigekarta_med_lan&srsName=EPSG:900913 "; newUrl = WFSManager.AddOrReplaceSrsInUrl(featuresUrl, newSrsName); Assert.IsTrue(WFSManager.GetCoordinateSystemSrsFromUrl(newUrl) == newSrsName); // inside the url featuresUrl = "http://slwgeo.artdata.slu.se:8080/geoserver/wfs?&service=wfs&request=GetFeature&srsName=EPSG:900913&version=1.1.0&typeName=SLW:Sverigekarta_med_lan"; newUrl = WFSManager.AddOrReplaceSrsInUrl(featuresUrl, newSrsName); Assert.IsTrue(WFSManager.GetCoordinateSystemSrsFromUrl(newUrl) == newSrsName); // inside the url same srs name featuresUrl = "http://slwgeo.artdata.slu.se:8080/geoserver/wfs?&service=wfs&request=GetFeature&srsName=EPSG:1001&version=1.1.0&typeName=SLW:Sverigekarta_med_lan"; newUrl = WFSManager.AddOrReplaceSrsInUrl(featuresUrl, newSrsName); Assert.IsTrue(WFSManager.GetCoordinateSystemSrsFromUrl(newUrl) == newSrsName); }
public void GetCoordinateSystemSrsFromUrl_ValidSrsInUrl_SridIsReturned() { string featuresUrl = "http://slwgeo.artdata.slu.se:8080/geoserver/wfs?&service=wfs&request=GetFeature&version=1.1.0&typeName=SLW:Sverigekarta_med_lan&srsName=EPSG:3857"; string srsName = WFSManager.GetCoordinateSystemSrsFromUrl(featuresUrl); Assert.IsTrue(srsName.Equals("EPSG:3857")); // Google mercator featuresUrl = "http://slwgeo.artdata.slu.se:8080/geoserver/wfs?&service=wfs&request=GetFeature&version=1.1.0&typeName=SLW:Sverigekarta_med_lan&srsName=EPSG:900913"; srsName = WFSManager.GetCoordinateSystemSrsFromUrl(featuresUrl); Assert.IsTrue(srsName.Equals("EPSG:900913")); // extra space in the end featuresUrl = "http://slwgeo.artdata.slu.se:8080/geoserver/wfs?&service=wfs&request=GetFeature&version=1.1.0&typeName=SLW:Sverigekarta_med_lan&srsName=EPSG:900913 "; srsName = WFSManager.GetCoordinateSystemSrsFromUrl(featuresUrl); Assert.IsTrue(srsName.Equals("EPSG:900913")); // inside the url featuresUrl = "http://slwgeo.artdata.slu.se:8080/geoserver/wfs?&service=wfs&request=GetFeature&srsName=EPSG:900913&version=1.1.0&typeName=SLW:Sverigekarta_med_lan"; srsName = WFSManager.GetCoordinateSystemSrsFromUrl(featuresUrl); Assert.IsTrue(srsName.Equals("EPSG:900913")); // inside the url featuresUrl = "http://slwgeo.artdata.slu.se:8080/geoserver/wfs?&service=wfs&request=GetFeature&srsName=EPSG:3857&version=1.1.0&typeName=SLW:Sverigekarta_med_lan"; srsName = WFSManager.GetCoordinateSystemSrsFromUrl(featuresUrl); Assert.IsTrue(srsName.Equals("EPSG:3857")); }
/// <summary> /// Creates a view model to use in WfsLayerEditor when we edit an existing layer. /// </summary> /// <param name="id">The layer id.</param> /// <returns></returns> public WfsLayerEditorViewModel CreateWfsLayerEditorViewModelInEditMode(int id) { var wfsLayerSetting = MapLayersSetting.GetWfsLayer(id); var model = new WfsLayerEditorViewModel { Id = id, Mode = WfsLayerEditorMode.Edit, WfsLayerSetting = wfsLayerSetting }; if (wfsLayerSetting.IsFile) { model.FeatureType = new WfsFeatureType { Title = wfsLayerSetting.Name }; model.ServerUrl = wfsLayerSetting.ServerUrl; } else { var wfsCapabilities = WFSManager.GetWFSCapabilitiesAndMergeDescribeFeatureType(wfsLayerSetting.ServerUrl, wfsLayerSetting.TypeName); model.WfsCapabilities = wfsCapabilities; var featureType = wfsCapabilities.FeatureTypes.FirstOrDefault(feature => feature.Name.FullName == wfsLayerSetting.TypeName); model.FeatureType = featureType; model.ServerUrl = wfsCapabilities.Capability.Requests.GetFeaturesRequest.GetUrlBase; } return(model); }
public void Get_WFSDescribeFeature_From_Server() { WFSDescribeFeatureType wfsDescribeFeatureType; wfsDescribeFeatureType = WFSManager.GetWFSDescribeFeatureType( "http://map.smhi.se/geoserver/ows", "smhi:alla_oar"); Assert.IsTrue(wfsDescribeFeatureType.Fields.Count > 0); }
public void AddOrReplaceSrsInUrl_UrlWithoutSrs_SrsIsAdded() { string newSrsName = "EPSG:1001"; string featuresUrl = "http://slwgeo.artdata.slu.se:8080/geoserver/wfs?&service=wfs&request=GetFeature&version=1.1.0&typeName=SLW:Sverigekarta_med_lan"; string newUrl = WFSManager.AddOrReplaceSrsInUrl(featuresUrl, newSrsName); Assert.IsTrue(WFSManager.GetCoordinateSystemSrsFromUrl(newUrl) == newSrsName); }
public void GetWfsFeaturesUsingHttpPost_UrlWithAndWithoutBoundingBox_ResultWithBoundingBoxIsLessThanResultWithoutBoundingBox() { FeatureCollection result1 = WFSManager.GetWfsFeaturesUsingHttpPost("http://slwgeo.artdata.slu.se:8080/geoserver/SLW/wfs?service=wfs&version=1.1.0&request=GetFeature&typeName=SLW:Sverigekarta_med_lan&srsName=EPSG:900913&bbox=1356438.6966421,8158952.8379623,2616120.9226065,8931884.0678745"); FeatureCollection result2 = WFSManager.GetWfsFeaturesUsingHttpPost("http://slwgeo.artdata.slu.se:8080/geoserver/SLW/wfs?service=wfs&version=1.1.0&request=GetFeature&typeName=SLW:Sverigekarta_med_lan&srsName=EPSG:900913", new WfsBoundingBox(1356438.6966421, 8158952.8379623, 2616120.9226065, 8931884.0678745, "EPSG:900913")); FeatureCollection resultWithoutBbox = WFSManager.GetWfsFeaturesUsingHttpPost("http://slwgeo.artdata.slu.se:8080/geoserver/SLW/wfs?service=wfs&version=1.1.0&request=GetFeature&typeName=SLW:Sverigekarta_med_lan&srsName=EPSG:900913"); Assert.IsTrue(result1.Features.Count == result2.Features.Count); Assert.IsTrue(result1.Features.Count < resultWithoutBbox.Features.Count); }
public void Get_WFSCapabilities_From_Server() { var smhi100 = WFSManager.GetWFSCapabilities("http://map.smhi.se/geoserver/ows?", WFSVersion.Ver100); Assert.IsTrue(smhi100.Version == "1.0.0"); var smhi110 = WFSManager.GetWFSCapabilities("http://map.smhi.se/geoserver/ows?", WFSVersion.Ver110); Assert.IsTrue(smhi110.Version == "1.1.0"); }
public AddWfsLayerViewModel CreateAddWfsLayerViewModel(ModelStateDictionary modelState, string wfsUrl, string uploadUrl, string successUrl) { AddWfsLayerViewModel model; if (!string.IsNullOrEmpty(wfsUrl)) { try { var wfsCapabilities = WFSManager.GetWFSCapabilitiesAndMergeDescribeFeatureTypes(wfsUrl); var uri = new Uri(wfsUrl); var baseUrl = uri.GetLeftPart(UriPartial.Path); model = AddWfsLayerViewModel.Create(baseUrl, wfsCapabilities); } catch (Exception) { var baseUrl = new UriBuilder(wfsUrl).Uri.GetLeftPart(UriPartial.Path); modelState.AddModelError("", string.Format("The server: {0}, didn't respond correct", baseUrl)); model = AddWfsLayerViewModel.Create(baseUrl); } } else { model = new AddWfsLayerViewModel(); } model.UploadGeoJsonViewModel = new UploadGeoJsonViewModel(uploadUrl, successUrl) { FileFormatDescription = Resource.DataAddWfsLayeraFileUploadForm, FileNameRegEx = "geojson|zip", }; model.ShowFile = base.UserContext.User.PersonId != null; if (model.ShowFile) { var fileNames = MySettingsManager.GetSavedMapDataFiles(base.UserContext); if (fileNames != null) { model.Files = (from fn in fileNames select new AddWfsLayerViewModel.FileViewModel { FileName = fn, Name = fn.IndexOf(".", StringComparison.CurrentCulture) == -1 ? fn : fn.Substring(0, fn.LastIndexOf(".", StringComparison.CurrentCultureIgnoreCase - 1)) }).ToArray(); } } return(model); }
public void GetFeatureRequestUrl() { string url = "http://slwgeo.artdata.slu.se:8080/geoserver/wfs"; string bbox = "6400000,1400000, 6500000,1500000"; string parameter = string.Empty; string parametervalue = string.Empty; string resultUrl = string.Empty; WfsTypeName typeName = new WfsTypeName(); typeName.Namespace = "SLW:Sverigekarta_med_lan"; string srsName = string.Empty; resultUrl = WFSManager.CreateGetFeatureRequestUrl(url, WFSVersion.Ver110, bbox, typeName, srsName, parameter, parametervalue); Assert.AreEqual("http://slwgeo.artdata.slu.se:8080/geoserver/wfs?&service=wfs&request=GetFeature&version=1.1.0&bbox=6400000,1400000, 6500000,1500000&typeName=SLW:Sverigekarta_med_lan&outputFormat=json", resultUrl); }
public WfsLayerSetting CreateNewWfsLayer(string name, string filter, string serverUrl, string typeName, string color, bool useBbox) { var wfsLayer = new WfsLayerSetting(); wfsLayer.Filter = filter; wfsLayer.Name = name; wfsLayer.ServerUrl = serverUrl; wfsLayer.TypeName = typeName; WFSDescribeFeatureType wfsDescribeFeatureType = WFSManager.GetWFSDescribeFeatureType(serverUrl, typeName); wfsLayer.GeometryName = wfsDescribeFeatureType.GeometryField.Name; wfsLayer.GeometryType = wfsDescribeFeatureType.GeometryType; wfsLayer.Color = color; wfsLayer.UseSpatialFilterExtentAsBoundingBox = useBbox; return(wfsLayer); }
public void GetWFSCapabilities_LocalCapabilitiesFile_SuccessfulParse() { using (ShimsContext.Create()) { ShimWebClient.AllInstances.DownloadStringString = (client, url2) => File.ReadAllText(@"Sample files\smhi getcapabilities.xml"); WFSCapabilities capabilities; String url; url = "http://map.smhi.se/geoserver/ows"; capabilities = WFSManager.GetWFSCapabilities(url, WFSVersion.Ver100); Assert.AreEqual(132, capabilities.FeatureTypes.Count); Assert.AreEqual("1.0.0", capabilities.Version); Assert.AreEqual("http://map.smhi.se/geoserver/wfs?request=DescribeFeatureType", capabilities.Capability.Requests.DescribeFeatureTypeRequest.GetUrl); } }
public void GetWfsFeaturesWithBoundingBox() { WfsTypeName typeName = new WfsTypeName(); WFSVersion version = WFSVersion.Ver110; string serverUrl = "http://slwgeo.artdata.slu.se:8080/geoserver/wfs"; string parameter = string.Empty; string parameterValue = string.Empty; string bbox = "6400000,1400000, 6500000,1500000"; typeName.Namespace = "SLW:Sverigekarta_med_lan"; string srsName = string.Empty; FeatureCollection featureCollection; featureCollection = WFSManager.GetWfsFeatures(serverUrl, version, bbox, typeName, srsName, parameter, parameterValue); Assert.IsNotNull(featureCollection); Assert.IsTrue(featureCollection.Features.Count == 5); }
public void GetWfsFeatures() { WfsTypeName typeName = new WfsTypeName(); WFSVersion version = WFSVersion.Ver110; string serverUrl = "http://slwgeo.artdata.slu.se:8080/geoserver/SLW/wfs"; string parameter = string.Empty; string parameterValue = string.Empty; string bbox = string.Empty;//&BBOX=133499, 628499, 154501, 635501;//&BBOX=628499,133499,635501,154501"; typeName.Namespace = "SLW:Sverigekarta_med_lan"; string srsName = string.Empty; FeatureCollection featureCollection; featureCollection = WFSManager.GetWfsFeatures(serverUrl, version, bbox, typeName, srsName, parameter, parameterValue); Assert.IsNotNull(featureCollection); Assert.IsTrue(featureCollection.Features.Count == 22); }
public void Get_WFSDescribeFeatures_From_Server() { Dictionary <string, WFSDescribeFeatureType> dicDescribeFeatures; WFSCapabilities capabilities; String url; url = "http://map.smhi.se/geoserver/ows"; capabilities = WFSManager.GetWFSCapabilities(url); dicDescribeFeatures = WFSManager.GetWFSDescribeFeatureTypes(url, capabilities.FeatureTypes); Assert.IsTrue(dicDescribeFeatures.Count > 0); Assert.IsTrue(dicDescribeFeatures.Count == capabilities.FeatureTypes.Count); url = "http://map.smhi.se/geoserver/ows"; capabilities = WFSManager.GetWFSCapabilities(url, WFSVersion.Ver110); dicDescribeFeatures = WFSManager.GetWFSDescribeFeatureTypes(url, capabilities.FeatureTypes, WFSVersion.Ver110); Assert.IsTrue(dicDescribeFeatures.Count > 0); Assert.IsTrue(dicDescribeFeatures.Count == capabilities.FeatureTypes.Count); }
public void Create_WFS_GetCapabilitiesRequestString() { string url; url = WFSManager.CreateGetCapabiltiesRequestUrl("http://slwgeo.artdata.slu.se:8080/geoserver/SLW/wfs?service=WFS&version=1.1.0&request=GetCapabilities", WFSVersion.Ver110); Assert.AreEqual("http://slwgeo.artdata.slu.se:8080/geoserver/slw/wfs?service=wfs&request=getcapabilities&version=1.1.0", url.ToLower()); url = WFSManager.CreateGetCapabiltiesRequestUrl("http://slwgeo.artdata.slu.se:8080/geoserver/SLW/wfs?service=WFS&version=1.1.0&request=GetCapabilities", WFSVersion.Ver100); Assert.AreEqual("http://slwgeo.artdata.slu.se:8080/geoserver/slw/wfs?service=wfs&request=getcapabilities&version=1.0.0", url.ToLower()); url = WFSManager.CreateGetCapabiltiesRequestUrl("https://slwgeo.artdata.slu.se:8080/geoserver/SLW/wfs?service=WFS&version=1.1.0&request=GetCapabilities", WFSVersion.Ver110); Assert.AreEqual("https://slwgeo.artdata.slu.se:8080/geoserver/slw/wfs?service=wfs&request=getcapabilities&version=1.1.0", url.ToLower()); url = WFSManager.CreateGetCapabiltiesRequestUrl("http://slwgeo.artdata.slu.se:8080/geoserver/SLW/wfs", WFSVersion.Ver110); Assert.AreEqual("http://slwgeo.artdata.slu.se:8080/geoserver/slw/wfs?service=wfs&request=getcapabilities&version=1.1.0", url.ToLower()); url = WFSManager.CreateGetCapabiltiesRequestUrl("http://slwgeo.artdata.slu.se:8080/geoserver/SLW/wfs", WFSVersion.Ver100); Assert.AreEqual("http://slwgeo.artdata.slu.se:8080/geoserver/slw/wfs?service=wfs&request=getcapabilities&version=1.0.0", url.ToLower()); }
public void GetWfsFeaturesWithFilter() { WfsTypeName typeName = new WfsTypeName(); WFSVersion version = WFSVersion.Ver110; string serverUrl = "http://slwgeo.artdata.slu.se:8080/geoserver/wfs"; string bbox = string.Empty; string parameter = "SLW:LänSKOD"; string parameterValue = "17"; //Todo: vilken är det:? typeName.Namespace = "SLW:Sverigekarta_med_lan"; //typeName.Name = "SLW:Sverigekarta_med_lan"; string srsName = string.Empty; FeatureCollection featureCollection; featureCollection = WFSManager.GetWfsFeatures(serverUrl, version, bbox, typeName, srsName, parameter, parameterValue); Assert.IsNotNull(featureCollection); Assert.IsTrue(featureCollection.Features.Count == 1); }
public void GetWfsFeaturesWithBoundingBoxUsingMsFakes() { using (ShimsContext.Create()) { ShimWebClient.AllInstances.DownloadStringString = (client, url) => File.ReadAllText(@"Sample files\SLW_Sverigekarta_med_lan - BBox Filter.json"); WfsTypeName typeName = new WfsTypeName(); WFSVersion version = WFSVersion.Ver110; string serverUrl = "http://slwgeo.artdata.slu.se:8080/geoserver/wfs"; string parameter = string.Empty; string parameterValue = string.Empty; string bbox = "6400000,1400000, 6500000,1500000"; typeName.Namespace = "SLW:Sverigekarta_med_lan"; string srsName = string.Empty; FeatureCollection featureCollection; featureCollection = WFSManager.GetWfsFeatures(serverUrl, version, bbox, typeName, srsName, parameter, parameterValue); Assert.IsNotNull(featureCollection); Assert.AreEqual(5, featureCollection.Features.Count); } }
/// <summary> /// Creates a view model to use in WfsLayerEditor when we create a new layer. /// </summary> /// <param name="url">The server URL.</param> /// <param name="typeName">The typename.</param> /// <param name="filter">The filter.</param> /// <returns></returns> public WfsLayerEditorViewModel CreateWfsLayerEditorViewModelInCreateNewMode(string url, string typeName, string filter) { WFSCapabilities wfsCapabilities = WFSManager.GetWFSCapabilitiesAndMergeDescribeFeatureType(url, typeName); ArtDatabanken.GIS.WFS.Capabilities.WfsFeatureType featureType = wfsCapabilities.FeatureTypes.FirstOrDefault(feature => feature.Name.FullName == typeName); var model = new WfsLayerEditorViewModel(); model.Mode = WfsLayerEditorMode.New; model.WfsCapabilities = wfsCapabilities; model.FeatureType = featureType; model.ServerUrl = wfsCapabilities.Capability.Requests.GetFeaturesRequest.GetUrlBase; var wfsLayerSetting = new WfsLayerSetting(); wfsLayerSetting.Filter = ""; wfsLayerSetting.Name = ""; wfsLayerSetting.Color = MapLayersSetting.CreateMapLayerHexColor(); model.WfsLayerSetting = wfsLayerSetting; return(model); }
public void GetWfsFeaturesUsingMsFakes() { using (ShimsContext.Create()) { ShimWebClient.AllInstances.DownloadStringString = (client, url) => File.ReadAllText(@"Sample files\SLW_Sverigekarta_med_lan - All Features.json"); WfsTypeName typeName = new WfsTypeName(); WFSVersion version = WFSVersion.Ver110; string serverUrl = "http://slwgeo.artdata.slu.se:8080/geoserver/SLW/wfs"; string parameter = string.Empty; string parameterValue = string.Empty; string bbox = string.Empty; // &BBOX=133499, 628499, 154501, 635501;//&BBOX=628499,133499,635501,154501"; typeName.Namespace = "SLW:Sverigekarta_med_lan"; string srsName = string.Empty; FeatureCollection featureCollection; featureCollection = WFSManager.GetWfsFeatures(serverUrl, version, bbox, typeName, srsName, parameter, parameterValue); Assert.IsNotNull(featureCollection); Assert.IsTrue(featureCollection.Features.Count == 22); } }
/// <summary> /// Gets feature collection based on selected WFS layer in SummaryStatistics. /// </summary> /// <returns>A feature collection or null.</returns> private FeatureCollection GetFeatureCollection() { if (!MySettings.Calculation.SummaryStatistics.WfsSummaryStatisticsLayerId.HasValue) { return(null); } int wfsLayerId = MySettings.Calculation.SummaryStatistics.WfsSummaryStatisticsLayerId.Value; WfsLayerSetting wfsLayer = MySettings.DataProvider.MapLayers.WfsLayers.FirstOrDefault(l => l.Id == wfsLayerId); string featuresUrl; string srsName = MySettings.Presentation.Map.PresentationCoordinateSystemId.EpsgCode(); FeatureCollection featureCollection = null; if (wfsLayer.IsFile) { featureCollection = MySettingsManager.GetMapDataFeatureCollection( UserContext, wfsLayer.GeometryName, MySettings.Presentation.Map.PresentationCoordinateSystemId); } else { if (string.IsNullOrEmpty(wfsLayer.Filter)) { featuresUrl = string.Format("{0}?service=wfs&version=1.1.0&request=GetFeature&typeName={1}&srsName={2}", wfsLayer.ServerUrl, wfsLayer.TypeName, srsName); } else { featuresUrl = string.Format( "{0}?service=wfs&version=1.1.0&request=GetFeature&typeName={1}&filter={2}&srsName={3}", wfsLayer.ServerUrl, wfsLayer.TypeName, wfsLayer.Filter, srsName); } featureCollection = WFSManager.GetWfsFeaturesUsingHttpPost(featuresUrl); } return(featureCollection); }