Beispiel #1
0
        public object GetNatureAreaInstitutionSummary([FromBody] AreaFilterRequest areaFilterRequest)
        {
            var geometry = "";
            var epsgCode = 0;

            if (areaFilterRequest != null)
            {
                geometry = areaFilterRequest.Geometry;
                epsgCode = areaFilterRequest.EpsgCode == null ? default(int) : int.Parse(areaFilterRequest.EpsgCode);
            }

            var natureAreaInstitutionSummary = SqlServer.GetNatureAreaInstitutionSummary(geometry, epsgCode);

            var natureAreaInstitutionSummaryItems = new Collection <NatureAreaSummaryItem>();

            foreach (var natureAreaInstitution in natureAreaInstitutionSummary)
            {
                natureAreaInstitutionSummaryItems.Add(
                    new NatureAreaSummaryItem
                {
                    Name            = natureAreaInstitution.Item1,
                    NatureAreaCount = natureAreaInstitution.Item2
                }
                    );
            }

            return(natureAreaInstitutionSummaryItems);
        }
Beispiel #2
0
        public object GetAreaSummary([FromBody] AreaFilterRequest areaFilterRequest)
        {
            var geometry = "";
            var epsgCode = 0;

            if (areaFilterRequest != null)
            {
                geometry = areaFilterRequest.Geometry;
                epsgCode = areaFilterRequest.EpsgCode == null ? default(int) : int.Parse(areaFilterRequest.EpsgCode);
            }

            var areaSummary = SqlServer.GetAreaSummary(geometry, epsgCode);
            var r           = new AreaSummary
            {
                AreaCount             = SqlServer.GetAreaSummaryCount(AreaType.Fylke, geometry, epsgCode),
                ConservationAreaCount = SqlServer.GetAreaSummaryCount(AreaType.Verneområde, geometry, epsgCode)
            };

            foreach (var areaSummaryItem in areaSummary)
            {
                if (areaSummaryItem.Item4 == AreaType.Fylke)
                {
                    r.Areas.Add(areaSummaryItem.Item1,
                                new AreaSummaryItem(areaSummaryItem.Item2, areaSummaryItem.Item5));
                }
            }

            foreach (var areaSummaryItem in areaSummary)
            {
                if (areaSummaryItem.Item4 != AreaType.Kommune)
                {
                    continue;
                }
                var countyNumber = areaSummaryItem.Item1 / 100;
                if (r.Areas.ContainsKey(countyNumber))
                {
                    r.Areas[countyNumber]
                    .Areas.Add(areaSummaryItem.Item1,
                               new AreaSummaryItem(areaSummaryItem.Item2, areaSummaryItem.Item5));
                }
            }

            foreach (var areaSummaryItem in areaSummary)
            {
                if (areaSummaryItem.Item4 != AreaType.Verneområde)
                {
                    continue;
                }
                var categoryName = Områdetyper.KodeTilNavn(areaSummaryItem.Item3);
                var category     = areaSummaryItem.Item3;
                if (areaSummaryItem.Item3 == "Andre")
                {
                    category = "OTHERS";
                }

                if (r.ConservationAreas.ContainsKey(category))
                {
                    r.ConservationAreas[category].NatureAreaCount += areaSummaryItem.Item5;
                    r.ConservationAreas[category]
                    .Areas.Add(areaSummaryItem.Item1,
                               new AreaSummaryItem(areaSummaryItem.Item2, areaSummaryItem.Item5));
                }
                else
                {
                    var conservationAreaSummaryItem = new AreaSummaryItem(categoryName, areaSummaryItem.Item5);
                    conservationAreaSummaryItem.Areas.Add(areaSummaryItem.Item1,
                                                          new AreaSummaryItem(areaSummaryItem.Item2, areaSummaryItem.Item5));
                    r.ConservationAreas.Add(category, conservationAreaSummaryItem);
                }
            }

            var areaHierarchicallySummaryJson = JObject.FromObject(r);

            return(areaHierarchicallySummaryJson);
        }
Beispiel #3
0
        public object GetNatureAreaSummary([FromBody] AreaFilterRequest areaFilterRequest)
        {
            if (string.IsNullOrWhiteSpace(areaFilterRequest.Geometry) && cachedNatureAreaSummary != null)
            {
                return(cachedNatureAreaSummary);
            }

            var geometry = "";

            if (areaFilterRequest != null)
            {
                geometry = areaFilterRequest.Geometry;
            }

            var natureAreaTypes        = SqlServer.GetNatureAreaSummary(geometry);
            var natureAreaTypeHash     = new CodeIds();
            var decriptionVariableHash = new CodeIds();

            foreach (var natureAreaTypeItem in natureAreaTypes)
            {
                if (natureAreaTypeItem.Item3)
                {
                    if (natureAreaTypeHash.ContainsKey(natureAreaTypeItem.Item1))
                    {
                        natureAreaTypeHash[natureAreaTypeItem.Item1].Add(natureAreaTypeItem.Item2);
                    }
                    else
                    {
                        natureAreaTypeHash[natureAreaTypeItem.Item1] = new HashSet <int> {
                            natureAreaTypeItem.Item2
                        }
                    };
                }
                else
                {
                    if (decriptionVariableHash.ContainsKey(natureAreaTypeItem.Item1))
                    {
                        decriptionVariableHash[natureAreaTypeItem.Item1].Add(natureAreaTypeItem.Item2);
                    }
                    else
                    {
                        decriptionVariableHash[natureAreaTypeItem.Item1] = new HashSet <int> {
                            natureAreaTypeItem.Item2
                        }
                    };
                }
            }

            CodeSummaryItem natureAreaTypeSummary      = GetNatureAreaTypeSummary(natureAreaTypeHash);
            CodeSummaryItem descriptionVariableSummary = GetDescriptionVariableSummary(decriptionVariableHash);

            var r = new NatureAreaSummary
            {
                NatureAreaTypes      = natureAreaTypeSummary,
                DescriptionVariables = descriptionVariableSummary
            };

            var jo = JObject.FromObject(r);

            RemoveFields(jo, "HandledIds", true);
            if (jo.First != null)
            {
                RemoveFields(jo.First.First, "Name", false);
                RemoveFields(jo.First.First, "Url", false);
                RemoveFields(jo.First.First, "Count", false);
            }
            if (jo.Last != null)
            {
                RemoveFields(jo.Last.First, "Name", false);
                RemoveFields(jo.Last.First, "Url", false);
                RemoveFields(jo.Last.First, "Count", false);
            }

            if (string.IsNullOrWhiteSpace(areaFilterRequest.Geometry))
            {
                cachedNatureAreaSummary = jo;
            }

            return(jo);
        }
Beispiel #4
0
 private static int GetEpsg(AreaFilterRequest areaFilterRequest)
 {
     return(!string.IsNullOrWhiteSpace(areaFilterRequest?.EpsgCode)
             ? int.Parse(areaFilterRequest.EpsgCode)
             : Config.Settings.Map.SpatialReferenceSystemIdentifier);
 }
Beispiel #5
0
        public JsonResult GetNatureAreaCountsByTheme([FromBody] AreaFilterRequest areaFilterRequest)
        {
            var counts = GetRedlistStore().GetNatureAreaCountsByTheme(areaFilterRequest?.Geometry, GetEpsg(areaFilterRequest));

            return(new JsonResult(counts));
        }
        public object GetNatureAreaSummary(AreaFilterRequest areaFilterRequest)
        {
            var geometry = "";

            if (areaFilterRequest != null)
            {
                geometry = areaFilterRequest.Geometry;
            }

            var natureAreaTypes        = SqlServer.GetNatureAreaSummary(geometry);
            var natureAreaTypeHash     = new CodeIds();
            var decriptionVariableHash = new CodeIds();

            foreach (var natureAreaTypeItem in natureAreaTypes)
            {
                if (natureAreaTypeItem.Item3)
                {
                    if (natureAreaTypeHash.ContainsKey(natureAreaTypeItem.Item1))
                    {
                        natureAreaTypeHash[natureAreaTypeItem.Item1].Add(natureAreaTypeItem.Item2);
                    }
                    else
                    {
                        natureAreaTypeHash[natureAreaTypeItem.Item1] = new HashSet <int> {
                            natureAreaTypeItem.Item2
                        }
                    };
                }
                else
                {
                    if (decriptionVariableHash.ContainsKey(natureAreaTypeItem.Item1))
                    {
                        decriptionVariableHash[natureAreaTypeItem.Item1].Add(natureAreaTypeItem.Item2);
                    }
                    else
                    {
                        decriptionVariableHash[natureAreaTypeItem.Item1] = new HashSet <int> {
                            natureAreaTypeItem.Item2
                        }
                    };
                }
            }

            var natureAreaTypeSummary      = GetCodeSummaryHierarchy(natureAreaTypeHash, Naturkodetrær.Naturtyper);
            var descriptionVariableSummary =
                GetCodeSummaryHierarchy(decriptionVariableHash, Naturkodetrær.Naturvariasjon);

            var r = new NatureAreaSummary
            {
                NatureAreaTypes      = natureAreaTypeSummary,
                DescriptionVariables = descriptionVariableSummary
            };

            var jo = JObject.FromObject(r);

            RemoveFields(jo, "HandledIds", true);
            if (jo.First != null)
            {
                RemoveFields(jo.First.First, "Name", false);
                RemoveFields(jo.First.First, "Url", false);
                RemoveFields(jo.First.First, "Count", false);
            }
            if (jo.Last != null)
            {
                RemoveFields(jo.Last.First, "Name", false);
                RemoveFields(jo.Last.First, "Url", false);
                RemoveFields(jo.Last.First, "Count", false);
            }

            return(jo);
        }