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