public override void OnMapMouseMove(object sender, MouseEventArgs e)
{
if (!_start) return;
PointLatLng currentPoint = this._gMapControl.FromLocalToLatLng(e.X, e.Y);
if (flag)
{
_points.RemoveAt(_points.Count - 1);
}
if (!flag) flag = true;
_points.Add(currentPoint);
_polygon = new GMapPolygonExtension("", _points, 2.0F,
System.Drawing.Color.FromArgb(100, 0, 0, 255), System.Drawing.Color.FromArgb(25, 0, 0, 255));
if (_point2Ds.Count > 1)
{
List<Point2D> tempPoints = new List<Point2D>();
tempPoints.AddRange(_point2Ds);
double mercatorX, mercatorY;
Helper.LonLat2Mercator(currentPoint.Lng, currentPoint.Lat, out mercatorX, out mercatorY);
Point2D point2D = new Point2D(mercatorX, mercatorY);
tempPoints.Add(point2D);
Map map = new Map(_mapUrl);
MeasureAreaResult areaResult = map.MeasureArea(_mapName, tempPoints, Unit.KILOMETER);
if (_resultMarker == null || _gMapOverlay.Markers.Count < 1)
{
_resultMarker = new GMapMarkerExtension(currentPoint);
_resultMarker.ToolTipMode = MarkerTooltipMode.Always;
_gMapOverlay.Markers.Add(_resultMarker);
}
_resultMarker.Position = currentPoint;
_resultMarker.ToolTipText = string.Format("{0:f1}平方千米", areaResult.Area);
}
if (_gMapOverlay.Polygons.Count > 0)
{
_gMapOverlay.Polygons[0] = _polygon;
}
else
{
_gMapOverlay.Polygons.Add(_polygon);
}
}