【问题标题】:Draw a polyline on the map using GMap.net使用 GMap.net 在地图上绘制折线
【发布时间】:2016-09-28 23:07:10
【问题描述】:

是的,我不是第一个提出问题的人,但我没有找到答案(也许是因为我的英语不好)。如何在地图上绘制折线?不是一条路线(方向),而只是一条折线,就像在 JS Google Maps API 中具有折线功能一样。看不懂。

还是谢谢。

【问题讨论】:

    标签: c# google-maps gmap.net


    【解决方案1】:

    虽然有点矫枉过正,但您可以使用 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_);
    

    【讨论】:

      【解决方案2】:

      好好阅读本教程:

      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);
      

      【讨论】:

      • @ValerikPunk 只需修改点以包含两个而不是四个?
      • 嗯,折线本身有什么特殊功能吗?
      • @ValerikPunk 不,您只能使用多边形。
      • 但是有没有问题——我要打100行会不会太慢?
      • @ValerikPunk 100 行就可以了。如果您正在查看 1000,您可能不得不考虑使用不同的方法或不同的库。
      猜你喜欢
      • 2013-05-23
      • 2020-03-05
      • 2021-08-11
      • 1970-01-01
      • 2015-10-26
      • 1970-01-01
      • 2016-03-28
      • 2015-10-17
      • 1970-01-01
      相关资源
      最近更新 更多