Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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());
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
 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);
 }
Esempio n. 6
0
        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;
        }
Esempio n. 7
0
 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;
 }