/// <summary>
        /// Converts a GeoJSON FeatureCollection to a list with data polygons.
        /// </summary>
        /// <param name="featureCollection">The GeoJSON FeatureCollection.</param>
        /// <returns>Converted polygons.</returns>
        public static List <DataPolygon> ConvertToDataPolygons(FeatureCollection featureCollection)
        {
            var dataPolygons = new List <DataPolygon>();

            if (featureCollection.IsNull())
            {
                return(dataPolygons);
            }

            foreach (Feature feature in featureCollection.Features)
            {
                ////if (feature.Type == GeoJSONObjectType.Polygon)
                if (feature.Geometry != null && feature.Geometry.GetType() == typeof(ArtDatabanken.GIS.GeoJSON.Net.Geometry.Polygon))
                {
                    ArtDatabanken.GIS.GeoJSON.Net.Geometry.Polygon polygon = (ArtDatabanken.GIS.GeoJSON.Net.Geometry.Polygon)feature.Geometry;
                    DataPolygon dataPolygon = ConvertToDataPolygon(polygon);
                    dataPolygons.Add(dataPolygon);
                }
                else if (feature.Geometry != null && feature.Geometry.GetType() == typeof(ArtDatabanken.GIS.GeoJSON.Net.Geometry.MultiPolygon))
                {
                    ArtDatabanken.GIS.GeoJSON.Net.Geometry.MultiPolygon multiPolygon = (ArtDatabanken.GIS.GeoJSON.Net.Geometry.MultiPolygon)feature.Geometry;
                    foreach (ArtDatabanken.GIS.GeoJSON.Net.Geometry.Polygon polygon in multiPolygon.Coordinates)
                    {
                        DataPolygon dataPolygon = ConvertToDataPolygon(polygon);
                        dataPolygons.Add(dataPolygon);
                    }
                }
            }

            return(dataPolygons);
        }
        /// <summary>
        /// Converts a GeoJSON Polygon to a DataPolygon.
        /// </summary>
        /// <param name="polygon">The GeoJSON polygon.</param>
        /// <returns>Converted DataPolygon.</returns>
        public static DataPolygon ConvertToDataPolygon(ArtDatabanken.GIS.GeoJSON.Net.Geometry.Polygon polygon)
        {
            var dataPolygon = new DataPolygon();

            dataPolygon.LinearRings = new List <DataLinearRing>();
            foreach (ArtDatabanken.GIS.GeoJSON.Net.Geometry.LineString lineString in polygon.Coordinates)
            {
                var dataLinearRing = new DataLinearRing();
                dataLinearRing.Points = new List <DataPoint>();
                foreach (GeographicPosition pos in lineString.Coordinates)
                {
                    var dataPoint = new DataPoint(pos.Longitude, pos.Latitude, pos.Altitude);
                    dataLinearRing.Points.Add(dataPoint);
                }

                dataPolygon.LinearRings.Add(dataLinearRing);
            }

            return(dataPolygon);
        }