using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Shapes; using GeoJSON.Net.Geometry; namespace Globals { public class PolygonPunten { public double MaximumX, MinimumX, MaximumY, MinimumY; public List Punten; public string Naam; public PolygonPunten(List punten, string naam = "") { Punten = punten; Naam = naam; MaximumX = punten.Max(punt => punt.X); MaximumY = punten.Max(punt => punt.Y); MinimumX = punten.Min(punt => punt.X); MinimumY = punten.Min(punt => punt.Y); } public PolygonPunten(GeoJSON.Net.Geometry.Polygon p, string naam = "") { Naam = naam; Punten = new List(); foreach (LineString l in p.Coordinates) { foreach (Position pos in l.Coordinates) { Punt pu = new Punt(pos.Longitude, pos.Latitude, naam); if (!Punten.Contains(pu)) Punten.Add(pu); //dit vertraagd programma enorm, maar zorgt ervoor dat peuker beter werkt denk ik //de vertraging komt vooral door de .Contains methode, deze mag weggelaten worden voor snelheid maar peuker zal niet meer zo goed werken } } Punten.Reverse(); MaximumX = Punten.Max(punt => punt.X); MaximumY = Punten.Max(punt => punt.Y); MinimumX = Punten.Min(punt => punt.X); MinimumY = Punten.Min(punt => punt.Y); } public override string ToString() { if (string.Equals(Naam, "", StringComparison.Ordinal)) return "UNKNOWN"; else return Naam; } public MultiPolygonPunten ToMultiPolygonPunten() { return new MultiPolygonPunten(new List() { this }, this.Naam); } } }