Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Views/RingtoetsMapDataFeaturesFactory.cs
===================================================================
diff -u -r38ee40c1f98ff4b1921d4de64fd032c8fbcadf92 -r2aeb951ddc6e2137897569a2de4c55c9fb7e2420
--- Ringtoets/Common/src/Ringtoets.Common.Forms/Views/RingtoetsMapDataFeaturesFactory.cs (.../RingtoetsMapDataFeaturesFactory.cs) (revision 38ee40c1f98ff4b1921d4de64fd032c8fbcadf92)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/Views/RingtoetsMapDataFeaturesFactory.cs (.../RingtoetsMapDataFeaturesFactory.cs) (revision 2aeb951ddc6e2137897569a2de4c55c9fb7e2420)
@@ -22,10 +22,13 @@
using System.Collections.Generic;
using System.Linq;
using Core.Common.Base.Geometry;
+using Core.Common.Geometry;
using Core.Components.Gis.Data;
using Core.Components.Gis.Features;
using Core.Components.Gis.Geometries;
using Ringtoets.Common.Data.AssessmentSection;
+using Ringtoets.Common.Data.DikeProfiles;
+using Ringtoets.Common.Data.FailureMechanism;
using Ringtoets.HydraRing.Data;
namespace Ringtoets.Common.Forms.Views
@@ -60,6 +63,88 @@
: new MapFeature[0];
}
+ ///
+ /// Create section features based on the provided .
+ ///
+ /// The collection of to create the section features for.
+ /// An array of features or an empty array when is null or empty.
+ public static MapFeature[] CreateFailureMechanismSectionFeatures(IEnumerable sections)
+ {
+ return sections != null && sections.Any()
+ ? new[]
+ {
+ new MapFeature(sections.Select(section => new MapGeometry(new[]
+ {
+ section.Points.Select(p => new Point2D(p.X, p.Y))
+ })))
+ }
+ : new MapFeature[0];
+ }
+
+ ///
+ /// Create section start point features based on the provided .
+ ///
+ /// The collection of to create the section start point features for.
+ /// An array of features or an empty array when is null or empty.
+ public static MapFeature[] CreateFailureMechanismSectionStartPointFeatures(IEnumerable sections)
+ {
+ return sections != null && sections.Any()
+ ? GetMapFeatures(sections.Select(sl => sl.GetStart()))
+ : new MapFeature[0];
+ }
+
+ ///
+ /// Create section end point features based on the provided .
+ ///
+ /// The collection of to create the section end point features for.
+ /// An array of features or an empty array when is null or empty.
+ public static MapFeature[] CreateFailureMechanismSectionEndPointFeatures(IEnumerable sections)
+ {
+ return sections != null && sections.Any()
+ ? GetMapFeatures(sections.Select(sl => sl.GetLast()))
+ : new MapFeature[0];
+ }
+
+ ///
+ /// Create features for the foreshore and dike geometry of the .
+ ///
+ /// The profiles to create features for.
+ /// An array of features or an empty array when is null or empty.
+ public static MapFeature[] CreateDikeProfilesFeatures(IEnumerable dikeProfiles)
+ {
+ return dikeProfiles != null && dikeProfiles.Any()
+ ? new[]
+ {
+ new MapFeature(dikeProfiles.Select(dp => new MapGeometry(GetWorldPoints(dp.ForeshoreProfile)))),
+ new MapFeature(dikeProfiles.Select(dp => new MapGeometry(GetWorldPoints(dp)))),
+ }
+ : new MapFeature[0];
+ }
+
+ private static IEnumerable> GetWorldPoints(DikeProfile dikeProfile)
+ {
+ return new[]
+ {
+ AdvancedMath2D.FromXToXY(
+ dikeProfile.DikeGeometry.Select(p => p.Point.X).ToArray(),
+ dikeProfile.WorldReferencePoint,
+ dikeProfile.X0,
+ dikeProfile.Orientation)
+ };
+ }
+
+ private static IEnumerable> GetWorldPoints(ForeshoreProfile foreshoreProfile)
+ {
+ return new[]
+ {
+ AdvancedMath2D.FromXToXY(
+ foreshoreProfile.Geometry.Select(p => p.X).ToArray(),
+ foreshoreProfile.WorldReferencePoint,
+ foreshoreProfile.X0,
+ foreshoreProfile.Orientation)
+ };
+ }
+
private static MapFeature[] GetMapFeatures(IEnumerable points)
{
return new[]