예제 #1
0
        private static void PopulateNatureAreas(IList <INatureAreaGeoJson> natureAreas, string sql, object parameters, SqlConnection conn)
        {
            var dtos = conn.Query <NatureAreaDto>(sql, parameters);

            foreach (var dto in dtos)
            {
                var natureArea = new NatureAreaGeoJson
                {
                    Id       = dto.Id,
                    UniqueId = new Identification {
                        LocalId = dto.LocalId
                    },
                    Area = dto.Geometry
                };

                natureAreas.Add(natureArea);
            }
        }
예제 #2
0
        private static void GroupByKommuner(IList <INatureAreaGeoJson> natureAreas, string sql, object parameters, SqlConnection conn)
        {
            var counts     = conn.Query <GroupByKommunerDto>(sql, parameters);
            var geometries = conn.Query <GroupByKommunerWithGeometryDto>("SELECT o.id as Id, o.geometri.STCentroid() AS Centerpoint FROM Område o WHERE o.id IN @Ids", new { Ids = counts.Select(c => c.Id).ToArray() });

            foreach (var geom in geometries)
            {
                var natureArea = new NatureAreaGeoJson
                {
                    Id       = geom.Id,
                    UniqueId = new Identification {
                        LocalId = Guid.Empty
                    },
                    Area  = geom.Centerpoint,
                    Count = counts.Single(c => c.Id == geom.Id).Count
                };

                natureAreas.Add(natureArea);
            }
        }