【发布时间】:2016-09-28 23:07:10
【问题描述】:
是的,我不是第一个提出问题的人,但我没有找到答案(也许是因为我的英语不好)。如何在地图上绘制折线?不是一条路线(方向),而只是一条折线,就像在 JS Google Maps API 中具有折线功能一样。看不懂。
还是谢谢。
【问题讨论】:
标签: c# google-maps gmap.net
是的,我不是第一个提出问题的人,但我没有找到答案(也许是因为我的英语不好)。如何在地图上绘制折线?不是一条路线(方向),而只是一条折线,就像在 JS Google Maps API 中具有折线功能一样。看不懂。
还是谢谢。
【问题讨论】:
标签: c# google-maps gmap.net
虽然有点矫枉过正,但您可以使用 GMap 路线功能来绘制简单的线条。这也有一个主要优点,它可以让您在必要时确定该线的长度(以公里为单位)。下面是你如何画一条线:
GMapRoute line_layer;
GMapOverlay line_overlay
line_layer = new GMapRoute("single_line");
line_layer.Stroke = new Pen(Brushes.Black, 2); //width and color of line
line_overlay.Routes.Add(line_layer);
gMapControl1.Overlays.Add(line_overlay)
//Once the layer is created, simply add the two points you want
line_layer.Points.Add(new PointLatLng(lat, lon));
line_layer.Points.Add(new PointLatLng(lat2, lon2));
//Note that if you are using the MouseEventArgs you need to use local coordinates and convert them:
line_layer.Points.Add(gMapControl1.FromLocalToLatLng(e.X, e.Y));
//To force the draw, you need to update the route
gMapControl1.UpdateRouteLocalPosition(line_layer);
//you can even add markers at the end of the lines by adding markers to the same layer:
GMapMarker marker_ = new GMarkerCross(p);
line_overlay.Markers.Add(marker_);
【讨论】:
好好阅读本教程:
http://www.independent-software.com/gmap-net-tutorial-maps-markers-and-polygons/
这应该让你开始:
GMapOverlay polyOverlay = new GMapOverlay("polygons");
IList<PointLatLng> points = new List<PointLatLng>();
points.Add(new PointLatLng(-25.969562,32.585789));
points.Add(new PointLatLng(-25.966205,32.588171));
GMapPolygon polygon = new GMapPolygon(points, "mypolygon");
polygon.Fill = new SolidBrush(Color.FromArgb(50, Color.Red));
polygon.Stroke = new Pen(Color.Red, 1);
polyOverlay.Polygons.Add(polygon);
gmap.Overlays.Add(polyOverlay);
【讨论】: