Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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"));
        }
Exemplo n.º 7
0
        /// <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);
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
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);
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
        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");
        }
Exemplo n.º 12
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);
        }
Exemplo n.º 13
0
        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);
        }
Exemplo n.º 14
0
        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);
        }
Exemplo n.º 15
0
        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);
            }
        }
Exemplo n.º 16
0
        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);
        }
Exemplo n.º 17
0
        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);
        }
Exemplo n.º 18
0
        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);
        }
Exemplo n.º 19
0
        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());
        }
Exemplo n.º 20
0
        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);
        }
Exemplo n.º 21
0
 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);
     }
 }
Exemplo n.º 22
0
        /// <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);
        }
Exemplo n.º 23
0
        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);
            }
        }
Exemplo n.º 24
0
        /// <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);
        }