| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace Ips.Library.Entity
- {
- public class GeoLine
- {
- public GeoLine()
- {
- Points = new List<GeoLLA>();
- }
- public List<GeoLLA> 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<GeoLine> FromListString(string val, string itemsep = ",", string pointsep = ";", string linesep = "\r\n")
- {
- var lineStrArr = val.Split(linesep.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
- List<GeoLine> lines = new List<GeoLine>();
- 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<GeoLine> lines, string pointsep = ";", string linesep = "\r\n")
- {
- return string.Join(linesep, lines.Select(line => line.ToString(pointsep)));
- }
- }
- }
|