// 点的鼠标移动事件,如果是选中状态下,则拖动图元 private void gmapControl_MouseMovePoint(object sender, MouseEventArgs e) { //线移动 var lnglat = gmapControl.FromLocalToLatLng(e.X, e.Y); int index = route.Points.FindIndex(o => o == CurrentPoint.Position); if (index != -1) { route.Points[index] = lnglat; } //点移动 CurrentPoint.Position = lnglat; gmapControl.UpdateRouteLocalPosition(route); }
public void DrawRoute(ref GMapControl gMapControl, ref List <PointLatLng> route) { GMapRoute gmapRoute = new GMapRoute(route, " "); gmapRoute.Stroke.Color = Color.Blue; m_overlayRoute.Routes.Add(gmapRoute); gMapControl.Overlays.Add(m_overlayRoute); gMapControl.UpdateRouteLocalPosition(gmapRoute); }
/// <summary> /// 鼠标移动,实时绘制 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void gmapControl_MouseMove(object sender, MouseEventArgs e) { if (isMouseDown == false) { return; } if (isFinish) { return; } var lngLat = gmapControl.FromLocalToLatLng(e.X, e.Y); gmapRoute.Points[1] = lngLat; gmapControl.UpdateRouteLocalPosition(gmapRoute); gmapControl.Refresh(); }
private void drawPolyLine(List <Location> points, GMapControl gmap) { gmap.Overlays.Clear(); PointLatLng start = new PointLatLng(points[0].Latitude, points[0].Longitude); PointLatLng end = new PointLatLng(points[points.Count - 1].Latitude, points[points.Count - 1].Longitude); gmap.Position = start; //MARKERS GMapMarker start_marker = new GMarkerGoogle(start, GMarkerGoogleType.red_dot); GMapMarker end_marker = new GMarkerGoogle(end, GMarkerGoogleType.blue_dot); start_marker.ToolTipText = "Start point\n" + "Latitude: " + start.Lat + "\nLongitude: " + start.Lng; end_marker.ToolTipText = "End point\n" + "Latitude: " + end.Lat + "\nLongitude: " + end.Lng; GMapOverlay markers = new GMapOverlay("markers"); markers.Markers.Add(start_marker); markers.Markers.Add(end_marker); gmap.Overlays.Add(markers); //ROUTES List <PointLatLng> waypoints = new List <PointLatLng>(); foreach (Location point in points) { waypoints.Add(new PointLatLng(point.Latitude, point.Longitude)); } GMapRoute r = new GMapRoute("My Route") { Stroke = new Pen(Color.Red, 5) }; GMapOverlay routes = new GMapOverlay("routes"); routes.Routes.Add(r); gmap.Overlays.Add(routes); foreach (PointLatLng point in waypoints) { r.Points.Add(point); } gmap.UpdateRouteLocalPosition(r); }