/// <summary> /// 定时器处理事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OnTick(object sender, EventArgs e) { GMapCtrl.UpdateTrackMarker(GMapCtrl, TargetMarker1, new PointLatLng(lat, lng), bear); //lat += 0.0001; lng += 0.0001; if (bear < 90.0) { bear += 1.0f; } }
private void MapTest_MouseDoubleClick(object sender, MouseButtonEventArgs e) { Point p = e.GetPosition(GMapCtrl); PointLatLng newWayPoint = GMapCtrl.FromLocalToLatLng((int)p.X, (int)p.Y); //添加航点 if (e.LeftButton == MouseButtonState.Pressed && flag && GMapCtrl.IsWPMarkerCanAdd) { WayPointMarker WayPointMarker = new WayPointMarker(newWayPoint, GMapCtrl); GMapCtrl.UpdateRouteMarker(GMapCtrl); } //删除航点 if (e.LeftButton == MouseButtonState.Pressed && !flag) { GMapCtrl.RemoveSelectedMarker(GMapCtrl); GMapCtrl.UpdateRouteMarker(GMapCtrl); } }
private void GMapCtrl_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { if ((ToolTypes)myToolBar.Tag == ToolTypes.toolZoomIn && GMapCtrl.Zoom < GMapCtrl.MaxZoom) { GMapCtrl.Zoom++; } if ((ToolTypes)myToolBar.Tag == ToolTypes.toolZoomOut && GMapCtrl.Zoom > GMapCtrl.MinZoom) { GMapCtrl.Zoom--; } if ((ToolTypes)myToolBar.Tag == ToolTypes.toolRuler) { Point p = e.GetPosition(GMapCtrl); PointLatLng newPoint = GMapCtrl.FromLocalToLatLng((int)p.X, (int)p.Y); dispoints.Add(newPoint); if (dispoints.Count() == 1) { DistanceMarkerRemove(); } GMapMarker currentMarker = new GMapMarker(newPoint); { currentMarker.ZIndex = dispoints.Count() + 3100; currentMarker.Shape = new Pin_Marker(); currentMarker.Offset = new Point(-16, -32); GMapCtrl.Markers.Add(currentMarker); } if (dispoints.Count() == 2) { GMapRoute distanceRoute = new GMapRoute(dispoints); { distanceRoute.ZIndex = 3000; distanceRoute.Shape = new Path() { Stroke = new SolidColorBrush(Colors.Yellow), StrokeThickness = 3 }; GMapCtrl.Markers.Add(distanceRoute); LatLngText.Text = "距离:" + "\n" + GMapCtrl.MapProvider.Projection.GetDistance(dispoints[1], dispoints[0]).ToString("f4") + "KM"; dispoints.Clear(); } } } }
private void GMapCtrl_MouseDoubleClick(object sender, MouseButtonEventArgs e) { Point p = e.GetPosition(GMapCtrl); PointLatLng newWayPoint = GMapCtrl.FromLocalToLatLng((int)p.X, (int)p.Y); if (e.LeftButton == MouseButtonState.Pressed) { if ((ToolTypes)myToolBar.Tag == ToolTypes.toolAddPoint) { waypoints.Add(newWayPoint); GMapMarker WayPointMarker = new GMapMarker(newWayPoint); { WayPointMarker.ZIndex = waypoints.Count() + 1000; WayPointMarker.Shape = new Marker_Red(this, WayPointMarker, (WayPointMarker.ZIndex - 1000).ToString()); WayPointMarker.Offset = new Point(-16, -16); GMapCtrl.Markers.Add(WayPointMarker); } if (waypoints.Count() > 1) { GMapRoute WayPointsRoute = new GMapRoute(waypoints); { WayPointsRoute.ZIndex = waypoints.Count(); WayPointsRoute.Shape = new Path() { Stroke = new SolidColorBrush(Colors.Lime), StrokeThickness = 4 }; WayPointsRouteRemove(); GMapCtrl.Markers.Add(WayPointsRoute); } } } if ((ToolTypes)myToolBar.Tag == ToolTypes.toolAutoRoute) { polygonpoints.Add(newWayPoint); GMapMarker PolygonPointMarker = new GMapMarker(newWayPoint); { PolygonPointMarker.ZIndex = polygonpoints.Count() + 6000; PolygonPointMarker.Shape = new PolygonPointMarker(this, PolygonPointMarker); PolygonPointMarker.Offset = new Point(-16, -16); GMapCtrl.Markers.Add(PolygonPointMarker); } if (polygonpoints.Count() > 2) { GMapPolygon myPolygon = new GMapPolygon(polygonpoints); { myPolygon.ZIndex = 6000; myPolygon.Shape = new Path() { Stroke = new SolidColorBrush(Colors.Lime), StrokeThickness = 4 }; PolygonRouteRemove(); GMapCtrl.Markers.Add(myPolygon); } } } if ((ToolTypes)myToolBar.Tag == ToolTypes.toolDeletePoint) { WayPointsMaker_RouteRemove(); GMapRoute reloadWayPointsRoute = new GMapRoute(waypoints); { reloadWayPointsRoute.ZIndex = waypoints.Count(); reloadWayPointsRoute.Shape = new Path() { Stroke = new SolidColorBrush(Colors.Lime), StrokeThickness = 4 }; GMapCtrl.Markers.Add(reloadWayPointsRoute); } for (int i = 0; i < waypoints.Count(); i++) { GMapMarker reloadWayPointsMarker = new GMapMarker(waypoints.ElementAt(i)); { reloadWayPointsMarker.ZIndex = i + 1001; reloadWayPointsMarker.Shape = new Marker_Red(this, reloadWayPointsMarker, (reloadWayPointsMarker.ZIndex - 1000).ToString()); reloadWayPointsMarker.Offset = new Point(-16, -16); GMapCtrl.Markers.Add(reloadWayPointsMarker); } } } } }
private void GMapCtrl_MouseMove(object sender, MouseEventArgs e) { Point p = e.GetPosition(GMapCtrl); LatLng = GMapCtrl.FromLocalToLatLng((int)p.X, (int)p.Y).Lng.ToString("0.000000000000") + "\n" + GMapCtrl.FromLocalToLatLng((int)p.X, (int)p.Y).Lat.ToString("0.0000000000000"); myToolBar.Visibility = Visibility.Visible; //Mouse.OverrideCursor = Cursors.Arrow; Marker_Red.isMarkerMove = false; PolygonPointMarker.isMarkerMove = false; if ((ToolTypes)myToolBar.Tag == ToolTypes.toolRuler) { //GMapCtrl.Cursor = Cursors.Arrow; GMapCtrl.Cursor = cursorConvert.ConvertToCursor(new Pin_Marker(), new Point(16, 32)); } if ((ToolTypes)myToolBar.Tag == ToolTypes.toolZoomIn) { LatLngText.Text = LatLng; DistanceMarkerRemove(); GMapCtrl.Cursor = cursorConvert.ConvertToCursor(new Cursor_ZoomIn(), new Point(12, 12)); } if ((ToolTypes)myToolBar.Tag == ToolTypes.toolZoomOut) { LatLngText.Text = LatLng; DistanceMarkerRemove(); GMapCtrl.Cursor = cursorConvert.ConvertToCursor(new Cursor_ZoomOut(), new Point(12, 12)); } if ((ToolTypes)myToolBar.Tag == ToolTypes.toolCursor) { LatLngText.Text = LatLng; DistanceMarkerRemove(); GMapCtrl.Cursor = Cursors.Arrow; } if ((ToolTypes)myToolBar.Tag == ToolTypes.toolAddPoint) { LatLngText.Text = LatLng; DistanceMarkerRemove(); GMapCtrl.Cursor = cursorConvert.ConvertToCursor(new Cursor_Route(), new Point(16, 32)); } if ((ToolTypes)myToolBar.Tag == ToolTypes.toolEditPoint) { LatLngText.Text = LatLng; DistanceMarkerRemove(); GMapCtrl.Cursor = Cursors.Arrow; Marker_Red.isMarkerMove = true; if (e.LeftButton == MouseButtonState.Pressed) { waypoints.Clear(); WayPointsRouteRemove(); var reload_WayPointMakers = GMapCtrl.Markers.Where(q => q != null); for (int i = 0; i < reload_WayPointMakers.Count(); i++) { if (reload_WayPointMakers.ElementAt(i).ZIndex < 3000) { waypoints.Add(reload_WayPointMakers.ElementAt(i).Position); } //i--; } GMapRoute reload_WayPointsRoute = new GMapRoute(waypoints); { reload_WayPointsRoute.ZIndex = waypoints.Count(); reload_WayPointsRoute.Shape = new Path() { Stroke = new SolidColorBrush(Colors.Lime), StrokeThickness = 4 }; GMapCtrl.Markers.Add(reload_WayPointsRoute); } } } if ((ToolTypes)myToolBar.Tag == ToolTypes.toolAutoRoute) { LatLngText.Text = LatLng; DistanceMarkerRemove(); GMapCtrl.Cursor = Cursors.Arrow; PolygonPointMarker.isMarkerMove = true; if (e.LeftButton == MouseButtonState.Pressed) { polygonpoints.Clear(); PolygonRouteRemove(); var reload_PolygonPointMakers = GMapCtrl.Markers.Where(q => q != null); for (int i = 0; i < reload_PolygonPointMakers.Count(); i++) { if (reload_PolygonPointMakers.ElementAt(i).ZIndex > 6000 && reload_PolygonPointMakers.ElementAt(i).ZIndex < 6500) { polygonpoints.Add(reload_PolygonPointMakers.ElementAt(i).Position); } //i--; } GMapPolygon reload_PolygonPointsRoute = new GMapPolygon(polygonpoints); { reload_PolygonPointsRoute.ZIndex = 6000; reload_PolygonPointsRoute.Shape = new Path() { Stroke = new SolidColorBrush(Colors.Lime), StrokeThickness = 4 }; GMapCtrl.Markers.Add(reload_PolygonPointsRoute); } } } if ((ToolTypes)myToolBar.Tag == ToolTypes.toolDeletePoint) { LatLngText.Text = LatLng; DistanceMarkerRemove(); GMapCtrl.Cursor = Cursors.Arrow; } if ((ToolTypes)myToolBar.Tag == ToolTypes.toolAutoRoute) { LatLngText.Text = LatLng; DistanceMarkerRemove(); GMapCtrl.Cursor = Cursors.Arrow; } }