public static List <IPosition> ToGeometry(this DirectPositionListType pos) { List <IPosition> positions = new List <IPosition>(); int dim; string[] coord = pos.Text.Trim().Replace(" ", " ").Split(' '); if (string.IsNullOrEmpty(pos.srsDimension)) { dim = 2; /* We assume that we are in 2D */ } else { dim = int.Parse(pos.srsDimension); if (dim < 2 || dim > 3) { throw new InvalidFormatException("invalid GML representation: gml:pos dimension equals " + dim); } } for (int i = 0; i < coord.Count(); i += dim) { if (dim == 2) { positions.Add(new GeographicPosition(coord[i + 0], coord[i + 1], null)); } if (dim == 3) { positions.Add(new GeographicPosition(coord[i + 0], coord[i + 1], coord[i + 2])); } } return(positions); }
public static List <IPosition> ToGeometry(this DirectPositionListType pos) { List <IPosition> positions = new List <IPosition>(); int dim; var whitespaceSplitter = new Regex(@"\s+"); string[] coord = whitespaceSplitter.Split(pos.Text.Trim()); if (string.IsNullOrEmpty(pos.srsDimension)) { dim = 2; /* We assume that we are in 2D */ } else { dim = int.Parse(pos.srsDimension); if (dim < 2 || dim > 3) { throw new FormatException("invalid GML representation: gml:pos dimension equals " + dim); } } for (int i = 0; i < coord.Count(); i += dim) { if (dim == 2) { positions.Add(new Position(coord[i + 0].ToString(), coord[i + 1])); } if (dim == 3) { positions.Add(new Position(coord[i + 0], coord[i + 1], coord[i + 2])); } } return(positions); }
private static Coordinate[] ExtractCoordinates(DirectPositionListType rings) { string[] listpoints = rings.Text.Split(' '); List <Coordinate> lstCoor = new List <Coordinate>(); for (int i = 0; i < listpoints.Length; i += 2) { lstCoor.Add(new Coordinate(Convert.ToDouble(listpoints[i], CultureInfo.InvariantCulture), Convert.ToDouble(listpoints[i + 1], CultureInfo.InvariantCulture))); } return(lstCoor.ToArray()); }
private static List <Coordinate> ExtractCoordinates(DirectPositionListType rings) { string[] listpoints = rings.Text.Split(' '); int num = listpoints.Count() / 2; List <Coordinate> lstCoor = new List <Coordinate>(); for (int i = 0; i < listpoints.Count(); i = i + 2) { lstCoor.Add(new Coordinate(Convert.ToDouble(listpoints[i]), Convert.ToDouble(listpoints[i + 1]))); } return(lstCoor); }
public static DirectPositionListType ToGmlPosList(this IPosition[] positions) { if (positions.Length > 0 && positions[0] is GeographicPosition) { DirectPositionListType gmlPosList = new DirectPositionListType(); gmlPosList.count = positions.Length.ToString(); gmlPosList.Text = string.Join(" ", positions.Cast <GeographicPosition>() .SelectMany <GeographicPosition, string>(p => p.Altitude == null ? new string[2] { p.Latitude.ToString(), p.Longitude.ToString() } : new string[3] { p.Latitude.ToString(), p.Longitude.ToString(), p.Altitude.ToString() }).ToArray()); gmlPosList.srsDimension = ((GeographicPosition)positions[0]).Altitude == null ? null : "3"; return(gmlPosList); } return(null); }
private static List<Coordinate> ExtractCoordinates(DirectPositionListType rings) { string[] listpoints = rings.Text.Split(' '); int num = listpoints.Count() / 2; List<Coordinate> lstCoor = new List<Coordinate>(); for (int i = 0; i < listpoints.Count(); i = i + 2) lstCoor.Add(new Coordinate(Convert.ToDouble(listpoints[i]), Convert.ToDouble(listpoints[i + 1]))); return lstCoor; }
public static DirectPositionListType ToGmlPosList(this IPosition[] positions) { if (positions.Length > 0 && positions[0] is GeographicPosition) { DirectPositionListType gmlPosList = new DirectPositionListType(); gmlPosList.count = positions.Length.ToString(); gmlPosList.Text = string.Join(" ", positions.Cast<GeographicPosition>() .SelectMany<GeographicPosition, string>(p => p.Altitude == null ? new string[2] { p.Latitude.ToString(), p.Longitude.ToString() } : new string[3] { p.Latitude.ToString(), p.Longitude.ToString(), p.Altitude.ToString() }).ToArray()); gmlPosList.srsDimension = ((GeographicPosition)positions[0]).Altitude == null ? null : "3"; return gmlPosList; } return null; }