画多边形(面积量算)

回到首页  往前  往后

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

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

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

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

画多边形(面积量算)

源码  

      /// <summary>

      /// 绘制多边形(支持面积量算功能,鼠标左键点击取消绘制)

      /// </summary>

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

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

      private void button9_Click(object sender, EventArgs e)

       {

          // 先设置绘制时的样式

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

           {

               Width = 3, // 粗细

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

           };

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

 

           MapControl.ToolBar = MapToolBar.Point;

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

           MapControl.DrawPolygon(DrawPolygonCallBack);

       }

 

      private void DrawPolygonCallBack(AZMapPolygon polygon)

       {

          // 绘制最终返回的对象

          var finalPoly = new AZMapPolygon(polygon.Points, polygon.Name)

           {

               IsHitTestVisible = true,

               Name = "custom-poly",

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

               {

                   Width = 3, // 粗细

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

               },

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

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

           };

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

          if (finalPoly.To != null)

           {

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

               {

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

                   ToolTipMode = MarkerTooltipMode.Always

               };

               finalPoly.ToolTipMarker = marker;

           }

           finalPoly.ToolTipPosition = MapRouteToolTipPosition.FirstPoint;

           _graphicLayer.Polygons.Add(finalPoly);

 

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

       }