/// <summary> /// Rotate the coordinate map by the given number of degrees /// </summary> /// <param name="degrees"></param> public void Rotate(Double degrees) { /** * create a new point some ways off from our reference point */ PointD newPoint = _pixelReferencePoint.Clone() as PointD; newPoint.X += 100; /** * save the lat and long of the new point */ GeoPoint geoPoint = GetGeoPoint(newPoint); /** * rotate the new point about our reference point */ newPoint.Rotate(_pixelReferencePoint, degrees); GeoPointList geoPoints = new GeoPointList() { _geoReferencePoint, geoPoint }; PointDList pixPoints = new PointDList() { _pixelReferencePoint, newPoint }; /** * Reinitialize ourself with the new rotation */ Initialize(pixPoints, geoPoints); }
public PointDList Clone() { PointDList list = new PointDList(); this.ForEach(p => list.Add(p.Clone() as PointD)); return(list); }
void CreateFromLines(LineList lines) { _points = new PointDList(); foreach (Line line in lines) { _points.Add(line.P1 as PointD); } }
public PointDList ToPointDList() { PointDList list = new PointDList(); foreach (GeoPoint point in GeoPoints) { list.Add(point.ToPointD()); } return(list); }
public GeoPointList GetGeoPointList(PointDList pixPointList) { GeoPointList retVal = new GeoPointList(); foreach (PointD pt in pixPointList) { retVal.Add(GetGeoPoint(pt)); } return(retVal); }
public static Unescaped ToUnescapedSQLString(PointDList pnts) { Unescaped retVal = Unescaped.String("NULL"); if (pnts != null & pnts.Count > 0) { retVal = Unescaped.String(pnts.ToSQLString()); } return(retVal); }
public PointDList ToPointDList() { PointDList list = new PointDList(); foreach (GeoPoint point in this) { list.Add(new PointD(point)); } return(list); }
public static RectangleD Inflate(RectangleD original, Double xAmount, Double yAmount) { PointDList points = new PointDList(); foreach (PointD point in original.PointList) { points.Add(new PointD(point.X * xAmount, point.Y * yAmount)); } RectangleD newRect = new RectangleD(points[0], points[1], points[2], points[3]); return(newRect); }
void Initialize(PointDList pixPointList, GeoPointList geoPointList) { // Get and store the difference in pixel orientation to north (Rotation from north) double geoBearing = EarthGeo.GetBearing(geoPointList[0], geoPointList[1]); double pixBearing = GetPixelBearing(pixPointList[0], pixPointList[1]); this.BearingDelta = geoBearing - pixBearing; // Get and store the pixel to meter ratio (Scale to meters) double geoDistance = EarthGeo.GetDistance(geoPointList[0], geoPointList[1]); double pixDistance = new Line(pixPointList[0], pixPointList[1]).Length; _pixelsPerMeter = pixDistance / geoDistance; // Store a pixel cross reference point, from which all other conversions can happen this.PixPoint = new PointD(pixPointList[0].X, pixPointList[0].Y); this.GeoPoint = new GeoPoint(geoPointList[0].Y, geoPointList[0].X); }
public virtual bool Contains(PointD point) { PointD p1, p2; bool inside = false; PointDList poly = _points; PointD oldPoint = poly[Points.Count - 1]; for (int i = 0; i < poly.Count; i++) { PointD newPoint = poly[i]; if (newPoint.X > oldPoint.X) { p1 = oldPoint; p2 = newPoint; } else { p1 = newPoint; p2 = oldPoint; } if ((newPoint.X < point.X) == (point.X <= oldPoint.X) && (point.Y - (long)p1.Y) * (p2.X - p1.X) < (p2.Y - (long)p1.Y) * (point.X - p1.X)) { inside = !inside; } oldPoint = newPoint; } return(inside); }
public LineList(PointDList points) : this(points.ToLineList()) { }
public RectangleD() { _points = new PointDList { PointD.Empty, PointD.Empty, PointD.Empty, PointD.Empty }; }
public GridD() { _points = new PointDList { PointD.Empty, PointD.Empty, PointD.Empty, PointD.Empty }; }
public GeoLineList(PointDList list) : this(new GeoPointList(list)) { }
public CoordinateMap(PointDList pixPointList, GeoPointList geoPointList) { Initialize(pixPointList, geoPointList); }
public GeoPolygon(PointDList points) : this(new GeoPointList(points)) { }
public GeoRectangle(PointDList points) : this(new GeoPointList(points)) { }
public GeoPath(PointDList list) : base(list) { }
public Polygon(PointDList points) { _points = points; }
public PointDList ToPointDList() { PointDList points = new PointDList(_points); return(points); }