画矩形(面积量算)

回到首页  往前  往后

该范例程序会演示如何绘制矩形,并显示面积量算结果。

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

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

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

画矩形(面积量算)

源码  

      /// <summary>

      /// 绘制矩形(支持面积量算功能)

      /// </summary>

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

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

      private void button8_Click(object sender, EventArgs e)

       {

          // 先设置绘制时的样式

           MapControl.DefaultRectangleStroke = new Pen(Color.FromArgb(200, Color.Yellow)) // 边线颜色

           {

               Width = 3, // 粗细

               DashStyle = DashStyle.Solid // 样式(这里使用 实心线 的样式)

           };

           MapControl.DefaultRectangleFill = new SolidBrush(Color.FromArgb(20, Color.Yellow)); // 填充色

 

           MapControl.ToolBar = MapToolBar.Point;

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

           MapControl.DrawRectangle(DrawRectangleCallBack);

       }

 

      private void DrawRectangleCallBack(RectLatLng rect)

       {

          // 绘制最终返回的对象

          var finalRect = new AZMapRectangle(new PointLatLng(rect.Top, rect.Left),

              new PointLatLng(rect.Bottom, rect.Right))

           {

               IsHitTestVisible = true,

               Name = "custom-rect",

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

               {

                   Width = 3, // 粗细

                   DashStyle = DashStyle.Solid // 样式(这里使用 实心线 的样式)

               },

               Fill = new SolidBrush(Color.FromArgb(20, Color.Yellow)), // 填充色

               Title = "我是矩形" // 矩形正中显示的文字

           };

          // 绘制鼠标提示(面积量算结果)

          if (finalRect.To != null)

           {

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

               {

                   ToolTipText = String.Format("总面积:{0}平方千米", finalRect.Area.ToString("0.000000")),

                   ToolTipMode = MarkerTooltipMode.Always

               };

               finalRect.ToolTipMarker = marker;

           }

           finalRect.ToolTipPosition = MapRouteToolTipPosition.FirstPoint;

           _graphicLayer.Polygons.Add(finalRect);

 

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

       }