Пример #1
0
 /// <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;
     }
 }
Пример #2
0
        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);
            }
        }
Пример #3
0
 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();
             }
         }
     }
 }
Пример #4
0
        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);
                        }
                    }
                }
            }
        }
Пример #5
0
        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;
            }
        }