/// <summary> /// Renders a LineString to the map. /// </summary> /// <param name="g">Graphics reference</param> /// <param name="line">LineString to render</param> /// <param name="pen">Pen style used for rendering</param> /// <param name="map">Map reference</param> public static void DrawLineString(System.Drawing.Graphics g, Geometries.LineString line, System.Drawing.Pen pen, SharpMap.Map map) { if (line.Vertices.Count > 1) { System.Drawing.Drawing2D.GraphicsPath gp = new System.Drawing.Drawing2D.GraphicsPath(); gp.AddLines(line.TransformToImage(map)); g.DrawPath(pen, gp); } }
internal static NTSLineString ToNTSLineString(Geometries.LineString geom, IGeometryFactory factory) { NTSCoordinate[] coordinates = new NTSCoordinate[geom.NumPoints]; int index = 0; foreach (Geometries.Point point in geom.Vertices) { coordinates[index++] = ToNTSCoordinate(point, factory); } return(factory.CreateLineString(coordinates) as NTSLineString); }
/// <summary> /// CX ÐÂÔö /// </summary> /// <param name="g"></param> /// <param name="line"></param> /// <param name="pen"></param> /// <param name="map"></param> public static void DrawLineString(System.Drawing.Graphics g, Geometries.LineString line, System.Drawing.Pen[] pens, SharpMap.Map map) { if (line.Vertices.Count > 1) { GraphicsPath gp = new GraphicsPath(); gp.AddLines(LimitValues(line.TransformToImage(map), extremeValueLimit)); for (int i = 0; i < pens.Length; i++) { g.DrawPath(pens[i], gp); } } }
/// <summary> /// Renders a LineString to the map. /// </summary> /// <param name="g">Graphics reference</param> /// <param name="line">LineString to render</param> /// <param name="pen">Pen style used for rendering</param> /// <param name="map">Map reference</param> public static void DrawLineString(System.Drawing.Graphics g, Geometries.LineString line, System.Drawing.Pen pen, SharpMap.Map map) { if (line.Vertices.Count > 1) { System.Drawing.Drawing2D.GraphicsPath gp = new System.Drawing.Drawing2D.GraphicsPath(); gp.AddLines(line.TransformToImage(map)); if (line.UseColor) { pen.Color = line.Color; } if (line.UseCustomWidth) { g.DrawPath(new Pen(pen.Color, line.Width_), gp); } else { g.DrawPath(pen, gp); } } }
protected override void OnMouseDoubleClick(MouseEventArgs e) { base.OnMouseDoubleClick(e); if (_activeTool == Tools.DrawPolygon) { if (GeometryDefined != null) { Geometries.LinearRing extRing = new Geometries.LinearRing(); for (int i = 0; i < _pointArray.GetUpperBound(0); i++) extRing.Vertices.Add(Map.ImageToWorld(new PointF(_pointArray[i].X, _pointArray[i].Y))); extRing.Vertices.Add(Map.ImageToWorld(new PointF(_pointArray[0].X, _pointArray[0].Y))); GeometryDefined(new Geometries.Polygon(extRing)); } ActiveTool = Tools.None; } else if (_activeTool == Tools.DrawLine) { if (GeometryDefined != null) { Geometries.LineString line = new Geometries.LineString(); for (int i = 0; i <= _pointArray.GetUpperBound(0); i++) line.Vertices.Add(Map.ImageToWorld(new PointF(_pointArray[i].X, _pointArray[i].Y))); GeometryDefined(line); } ActiveTool = Tools.None; } }