/// <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; // 取消在地图上显示定位的十字架
}
|