using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace IronIntel.Contractor.Shape { public sealed class MapPoint { public double Longitude = 0; public double Latitude = 0; } public sealed class MapPoints { private List<MapPoint> _Points = new List<MapPoint>(); public List<MapPoint> Points { get { return _Points; } } } public sealed class Polyline { private List<MapPoints> _Parts = new List<MapPoints>(); public List<MapPoints> Parts { get { return _Parts; } } /// <summary> /// 表示extent的左上角 /// </summary> public MapPoint TopLeft = null; /// <summary> /// 表示extent的右下角 /// </summary> public MapPoint BottomRight = null; } public sealed class Polygon { private List<MapPoints> _Rings = new List<MapPoints>(); public List<MapPoints> Rings { get { return _Rings; } } /// <summary> /// 表示extent的左上角 /// </summary> public MapPoint TopLeft = null; /// <summary> /// 表示extent的右下角 /// </summary> public MapPoint BottomRight = null; } public sealed class Shape { private List<MapPoints> _Points = new List<MapPoints>(); private List<Polyline> _Polylines = new List<Polyline>(); private List<Polygon> _Polygones = new List<Polygon>(); public List<MapPoints> Points { get { return _Points; } } public List<Polyline> Polylines { get { return _Polylines; } } public List<Polygon> Polygons { get { return _Polygones; } } } public sealed class SimpleShape { private List<MapPoint> _Points = new List<MapPoint>(); private List<MapPoints> _Polylines = new List<MapPoints>(); private List<MapPoints> _Polygones = new List<MapPoints>(); public List<MapPoint> Points { get { return _Points; } } public List<MapPoints> Polylines { get { return _Polylines; } } public List<MapPoints> Polygons { get { return _Polygones; } } public void FromShapeObj(Shape s) { if (s != null) { foreach (var p in s.Points) { Points.AddRange(p.Points); } foreach (var p in s.Polylines) { Polylines.AddRange(p.Parts); } foreach (var p in s.Polygons) { Polygons.AddRange(p.Rings); } } } } }