GMAP.NET 画直线

1.初始化地图

       
        private GMapMarkerCircle drawingClicle = null;
        private GMapPolygon drawingPolygon = null;
        private List<PointLatLng> drawingPolygonPoints = new List<PointLatLng>();
        private GMapPolygon drawingPolyLine = null;
        private List<PointLatLng> drawingPolygonLinePoints = new List<PointLatLng>();

   if (!GMapControl.IsDesignerHosted)
            {
                //设置 Prividers   
                // config map    
                mainMap.MapProvider = GMapProviders.GoogleChinaMap;
                //设置地图中心点
               // mainMap.Position = new PointLatLng(22.836945, 113.9501953);
                mainMap.Position = new PointLatLng(22.836945, 113.9501953);
                //设置地图最小Zoom 
                mainMap.MinZoom = 5;
                //设置地图最大Zoom 
                mainMap.MaxZoom = 18;
                //设置地图当前Zoom 
                mainMap.Zoom = 10;
                //左键拖拽地图
                //mainMap.DragButton = MouseButtons.Left;

                this.mainMap.MouseDown += new MouseEventHandler(this.mainMap_MouseDown);
                this.mainMap.MouseMove += new MouseEventHandler(this.mainMap_MouseMove);
                this.mainMap.MouseUp += new MouseEventHandler(this.mainMap_MouseUp);  

                mainMap.Overlays.Add(top);
                mainMap.Overlays.Add(polylinesOverlay);
            }
           void mainMap_MouseDown(object sender, MouseEventArgs e){
                 startPoint = mainMap.FromLocalToLatLng(e.X, e.Y); 
            if (drawType == (int)DrawToolType.PolyLine)
            {
                drawingPolygonLinePoints.Add(startPoint);
                if (drawingPolyLine == null)
                {
                    drawingPolyLine = new GMapPolygon(drawingPolygonLinePoints, "");
                    top.Polygons.Add(drawingPolyLine);
                } 
            }
           }
             //画线 覆盖物
        private GMapOverlay polylinesOverlay = new GMapOverlay();
        void mainMap_MouseMove(object sender, MouseEventArgs e)
        {
            this.lblInfo.Text = "lat:" + mainMap.FromLocalToLatLng(e.X, e.Y).Lat + "lng:" + mainMap.FromLocalToLatLng(e.X, e.Y).Lng;
            var latLng = mainMap.FromLocalToLatLng(e.X, e.Y); 
            if (drawType == (int)DrawToolType.PolyLine)
            {
                drawingPolygonLinePoints.Clear();    
                if (drawingPolyLine != null)
                {
                    //drawingPolyLine.Points.Clear();

                    drawingPolygonLinePoints.Add(startPoint);
                    drawingPolygonLinePoints.Add(latLng);

                    lblLatLng.Text = drawingPolygonLinePoints.Count.ToString(); 
                    drawingPolyLine = new GMapPolygon(drawingPolygonLinePoints,"");
                    polylinesOverlay.Polygons.Clear();
                    polylinesOverlay.Polygons.Add(drawingPolyLine); 
                } 
            } 
            mainMap.Refresh();
        }
              PointLatLng startPoint = new PointLatLng();
        void mainMap_MouseUp(object sender, MouseEventArgs e) {  
            if (drawType == (int)DrawToolType.PolyLine)
            {
                if (drawingPolyLine != null)
                {
                    drawingPolygonLinePoints.Clear();
                    drawingPolyLine.Points.Clear();

                    drawingPolygonLinePoints.Add(startPoint);
                    drawingPolygonLinePoints.Add(mainMap.FromLocalToLatLng(e.X,e.Y));

                    drawingPolyLine = new GMapPolygon(drawingPolygonLinePoints,"");
                    top.Polygons.Add(drawingPolyLine); 

                    drawType = (int)DrawToolType.None;
                    drawingPolyLine = null;
                    drawingPolygonLinePoints.Clear();
                    polylinesOverlay.Clear();
                }
            }
        }



  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值