using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Ips.Library.Entity { public class GeoLine { public GeoLine() { Points = new List(); } public List Points { get; set; } public string ToString(string pointsep) { return string.Join(pointsep, Points); } public static GeoLine FromString(string val, string itemsep = ",", string pointsep = ";") { var strPoints = val.Split(pointsep.ToCharArray(), StringSplitOptions.RemoveEmptyEntries); GeoLine line = new GeoLine(); for (int i = 0; i < strPoints.Length; i++) { var geoPoint = GeoLLA.FromString(strPoints[i], itemsep); line.Points.Add(geoPoint); } return line; } public static List FromListString(string val, string itemsep = ",", string pointsep = ";", string linesep = "\r\n") { var lineStrArr = val.Split(linesep.ToCharArray(), StringSplitOptions.RemoveEmptyEntries); List lines = new List(); foreach (var linestr in lineStrArr) { var line = FromString(linestr, itemsep, pointsep); lines.Add(line); } return lines; } } public static class GeoLineExtensions { public static string ToLinesString(this IEnumerable lines, string pointsep = ";", string linesep = "\r\n") { return string.Join(linesep, lines.Select(line => line.ToString(pointsep))); } } }