画线段(距离量算)

回到首页  往前  往后

该范例程序会演示如何绘制线段或者路径,并显示距离量算结果。

注意1:太乐地图.NET控件 名称统一命名为:MapControl

注意2:该范例程序涉及到1个地图事件:DrawRoute

范例运行后界面如下图所示:

画线段(距离量算)

源码

      /// <summary>

      /// 手绘线段(支持距离量算功能,鼠标左键点击取消绘制)

      /// </summary>

      /// <param name="sender"></param>

      /// <param name="e"></param>

      private void button7_Click(object sender, EventArgs e)

       {

          // 先设置绘制时的样式

           MapControl.DefaultRouteStroke = new Pen(Color.FromArgb(200, Color.Yellow)) // 颜色

           {

               Width = 3, // 粗细

               DashStyle = DashStyle.DashDot // 样式(这里使用 线+点 的样式)

           };

 

           MapControl.ToolBar = MapToolBar.Point;

           MapControl.HelperLineOption = HelperLineOptions.ShowAlways; // 在地图上显示定位十字架

           MapControl.DrawRoute(DrawRouteCallBack);

       }

 

      private void DrawRouteCallBack(AZMapRoute route)

       {

          // 这里需要再画一个绘制完成后显示的样式(这里同绘制时一致)

          var finalRoute = new AZMapRoute(route.Points, route.Name)

           {

               IsHitTestVisible = true,

               Stroke = new Pen(Color.FromArgb(200, Color.Yellow)) // 颜色

               {

                   Width = 3, // 粗细

                   DashStyle = DashStyle.DashDot // 样式(这里使用 线+点 的样式)

               },

           };

          // 显示鼠标提示(距离量算结果)

          if (finalRoute.To != null)

           {

              var marker = new AZMapMarkerEllipse(finalRoute.To.Value)

               {

                   ToolTipText = String.Format("总长度:{0}千米", finalRoute.Distance.ToString("0.000")),

                   ToolTipMode = MarkerTooltipMode.Always

               };

               finalRoute.ToolTipMarker = marker;

           }

           finalRoute.ToolTipPosition = MapRouteToolTipPosition.LastPoint;

           _graphicLayer.Routes.Add(finalRoute);

 

           MapControl.HelperLineOption = HelperLineOptions.ShowOnModifierKey; // 取消在地图上显示定位的十字架

       }