Beispiel #1
0
        private void InitializeMarkers(IEnumerable <object> addedItems)
        {
            if (gMapControl == null)
            {
                return;
            }

            foreach (object addedItem in addedItems)
            {
                double lat   = Convert.ToDouble(MarkerLatitudePropertyInfo.GetValue(addedItem, null));
                double lng   = Convert.ToDouble(MarkerLongitudePropertyInfo.GetValue(addedItem, null));
                var    title = (string)MarkerToolTipPropertyInfo.GetValue(addedItem, null);

                var point      = new PointLatLng(lat, lng);
                var gmapMarker = new GMapMarker(point)
                {
                    Tag = addedItem
                };

                var markerControl = new DynamicGMapMarkerControl(gmapMarker);
                markerControl.SetValue(DynamicGMapMarkerControl.TitleProperty, title);
                gmapMarker.Shape = markerControl;


                gMapControl.Markers.Add(gmapMarker);
            }


            gMapControl.ZoomAndCenterMarkers(null);
        }
Beispiel #2
0
        public void ParseMaps(float latitude, float longitude, UInt16 zoom, UInt16 satellite, byte mode)
        {
            //...TEXT
            if ((mode == (byte)c_GRAPH_UPDATE_MODE.Text) || (mode == (byte)c_GRAPH_UPDATE_MODE.Both))
            {
                m_LblGeneral[(UInt16)LABEL_LIST.Latitude].Text  = latitude.ToString();
                m_LblGeneral[(UInt16)LABEL_LIST.Longitude].Text = longitude.ToString();
                m_LblGeneral[(UInt16)LABEL_LIST.Satellite].Text = satellite.ToString();
            }

            //...MAPS
            if ((mode == (byte)c_GRAPH_UPDATE_MODE.Graph) || (mode == (byte)c_GRAPH_UPDATE_MODE.Both))
            {
                string url = Utils.MyConfig.s_MapsProvider;
                url = url.Replace(@"LATITUDE", latitude.ToString());
                url = url.Replace(@"LONGITUDE", longitude.ToString());

                m_MapPos.Position = new PointLatLng(latitude, longitude);
                m_GMap.ZoomAndCenterMarkers(GMAP_OVERLAY_1);

                if (zoom > 0)
                {
                    m_GMapZoom = zoom;
                }

                m_GMap.Zoom = m_GMapZoom;
            }
        }
Beispiel #3
0
        private void BuildGMapControl(GMapControl gmapControl)
        {
            if (gmapControl == null)
            {
                return;
            }

            if (DataContext == null)
            {
                gmapControl.Markers.Clear();
                return;
            }

            gmapControl.MapProvider = OpenStreetMapProvider.Instance;
            gmapControl.DragButton  = MouseButton.Left;

            var addedItems = DataContext.As <IEnumerable <object> >();

            InitializeMarkers(addedItems);

            gmapControl.ZoomAndCenterMarkers(null);

            //build context menu
            var contextMenu = new ContextMenu();
            var menuItem    = new MenuItem {
                Header = "Maps"
            };

            foreach (GMapProvider gMapProvider in GMapProviders.List)
            {
                var childMenuItem = new MenuItem {
                    Header = gMapProvider.Name, Tag = gMapProvider
                };
                childMenuItem.Click += (o, e) =>
                {
                    var mi = o as MenuItem;
                    if (mi == null)
                    {
                        return;
                    }

                    //setting the MapProvider
                    var gmapProvider = (GMapProvider)mi.Tag;
                    gmapControl.MapProvider = gmapProvider;
                    gmapControl.MinZoom     = gmapProvider.MinZoom;
                    gmapControl.MaxZoom     = gmapProvider.MaxZoom.HasValue
                                                                         ? gmapProvider.MaxZoom.Value
                                                                         : 24;
                };
                menuItem.Items.Add(childMenuItem);
            }


            contextMenu.Items.Add(menuItem);

            SetValue(ContextMenuProperty, contextMenu);
        }
Beispiel #4
0
        static void addtomap(PointLatLngAlt pos, string tag)
        {
            if (map != null)
            {
                polygons.Markers.Add(new GMarkerGoogle(pos, GMarkerGoogleType.blue)
                {
                    ToolTipText = tag,
                    ToolTipMode = MarkerTooltipMode.Always
                });

                map.ZoomAndCenterMarkers("polygons");
            }
        }
Beispiel #5
0
 private void ZoomAndCenterMarkers()
 {
     fMapControl.ZoomAndCenterMarkers(null);
 }
Beispiel #6
0
        private void InitControl()
        {
            fMapControl = new GMapControl {
                Bearing               = 0F,
                CanDragMap            = true,
                Dock                  = DockStyle.Fill,
                EmptyTileColor        = Color.Navy,
                GrayScaleMode         = false,
                HelperLineOption      = HelperLineOptions.DontShow,
                LevelsKeepInMemmory   = 5,
                Location              = new Point(0, 0),
                Margin                = new Padding(4),
                MarkersEnabled        = true,
                MaxZoom               = 17,
                MinZoom               = 2,
                MouseWheelZoomType    = MouseWheelZoomType.MousePositionAndCenter,
                NegativeMode          = false,
                PolygonsEnabled       = true,
                RetryLoadTile         = 0,
                RoutesEnabled         = true,
                ScaleMode             = ScaleModes.Integer,
                SelectedAreaFillColor = Color.FromArgb(33, 65, 105, 225),
                ShowTileGridLines     = false,
                Zoom                  = 0D
            };
            Controls.Add(fMapControl);

            if (!GMapControl.IsDesignerHosted)
            {
                // set your proxy here if need
                //GMapProvider.IsSocksProxy = true;
                //GMapProvider.WebProxy = new WebProxy("127.0.0.1", 1080);
                //GMapProvider.WebProxy.Credentials = new NetworkCredential("user", "password");
                // or
                //GMapProvider.WebProxy = WebRequest.DefaultWebProxy;

                // set cache mode only if no internet avaible
                if (!PingNetwork("pingtest.com"))
                {
                    fMapControl.Manager.Mode = AccessMode.CacheOnly;
                    //MessageBox.Show("No internet connection available, going to CacheOnly mode.", "GMap.NET - Demo.WindowsForms", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else
                {
                    fMapControl.Manager.Mode = AccessMode.ServerAndCache;
                }

                // config map
                fMapControl.CanDragMap        = true;
                fMapControl.MapProvider       = GMapProviders.OpenStreetMap;
                fMapControl.MinZoom           = 0;
                fMapControl.MaxZoom           = 24;
                fMapControl.ShowTileGridLines = false;
                fMapControl.Zoom = 9;

                fMapControl.Manager.UseRouteCache      = true;
                fMapControl.Manager.UseGeocoderCache   = true;
                fMapControl.Manager.UsePlacemarkCache  = true;
                fMapControl.Manager.UseDirectionsCache = true;

                // add custom layers
                fMapControl.Overlays.Add(fRoutes);
                fMapControl.Overlays.Add(fPolygons);
                fMapControl.Overlays.Add(fObjects);
                fMapControl.Overlays.Add(fTopOverlay);

                // map events
                fMapControl.OnPositionChanged += MainMap_OnPositionChanged;
                fMapControl.OnMapZoomChanged  += MainMap_OnMapZoomChanged;
                fMapControl.OnMapTypeChanged  += MainMap_OnMapTypeChanged;
                fMapControl.OnMarkerClick     += MainMap_OnMarkerClick;
                fMapControl.OnMarkerEnter     += MainMap_OnMarkerEnter;
                fMapControl.OnMarkerLeave     += MainMap_OnMarkerLeave;
                fMapControl.OnPolygonEnter    += MainMap_OnPolygonEnter;
                fMapControl.OnPolygonLeave    += MainMap_OnPolygonLeave;
                fMapControl.OnRouteEnter      += MainMap_OnRouteEnter;
                fMapControl.OnRouteLeave      += MainMap_OnRouteLeave;
                fMapControl.MouseMove         += MainMap_MouseMove;
                fMapControl.MouseDown         += MainMap_MouseDown;
                fMapControl.MouseUp           += MainMap_MouseUp;
                fMapControl.MouseDoubleClick  += MainMap_MouseDoubleClick;
                fMapControl.KeyPress          += MainForm_KeyPress;
                fMapControl.KeyUp             += MainForm_KeyUp;

                // set current marker
                fTargetMarker = new GMarkerGoogle(fMapControl.Position, GMarkerGoogleType.arrow);
                fTargetMarker.IsHitTestVisible = false;
                fTargetMarker.IsVisible        = true;
                fTopOverlay.Markers.Add(fTargetMarker);

                // add start location
                GeoCoderStatusCode status;
                PointLatLng?       pos = GMapProviders.GoogleMap.GetPoint("Russia, Moscow", out status);
                if (pos != null && status == GeoCoderStatusCode.G_GEO_SUCCESS)
                {
                    fTargetMarker.Position = pos.Value;
                    fMapControl.ZoomAndCenterMarkers(null);
                }
            }

            /*
             #if !MONO   // mono doesn't handle it, so we 'lost' provider list ;]
             * cmbMapType.ValueMember = "Name";
             * cmbMapType.DataSource = GMapProviders.List;
             * cmbMapType.SelectedItem = fMapControl.MapProvider;
             #endif
             *
             * trkZoom.Minimum = fMapControl.MinZoom * 100;
             * trkZoom.Maximum = fMapControl.MaxZoom * 100;
             * trkZoom.TickFrequency = 100;
             * trkZoom.Value = (int)fMapControl.Zoom * 100;
             */
        }
Beispiel #7
0
 public void zoomToCoverMarkers()
 {
     map.ZoomAndCenterMarkers(Constants.markerOverlayName);
 }
Beispiel #8
0
 private void MainMap_OnMapTypeChanged(GMapProvider type)
 {
     fMapControl.ZoomAndCenterMarkers("objects");
 }
Beispiel #9
0
        private void InitControl()
        {
            fMapControl          = new GMapControl();
            fMapControl.Dock     = DockStyle.Fill;
            fMapControl.Location = new Point(0, 0);
            fMapControl.Margin   = new Padding(4);
            fMapControl.MaxZoom  = 17;
            fMapControl.MinZoom  = 2;
            fMapControl.Zoom     = 0;
            Controls.Add(fMapControl);

            if (!GMapControl.IsDesignerHosted)
            {
                var proxy = GlobalOptions.Instance.Proxy;
                if (proxy.UseProxy)
                {
                    GMapProvider.IsSocksProxy         = true;
                    GMapProvider.WebProxy             = new WebProxy(proxy.Server, int.Parse(proxy.Port));
                    GMapProvider.WebProxy.Credentials = new NetworkCredential(proxy.Login, proxy.Password);
                }
                else
                {
                    GMapProvider.WebProxy = WebRequest.DefaultWebProxy;
                }

                // config map
                fMapControl.MapProvider = GMapProviders.GoogleMap;
                fMapControl.Position    = new PointLatLng(30.0447272077905, 31.2361907958984);
                fMapControl.MinZoom     = 0;
                fMapControl.MaxZoom     = 24;
                fMapControl.Zoom        = 9;

                // add custom layers
                fMapControl.Overlays.Add(fObjects);
                fMapControl.Overlays.Add(fTopOverlay);

                // map events
                fMapControl.OnMapTypeChanged += MainMap_OnMapTypeChanged;
                fMapControl.OnMarkerClick    += MainMap_OnMarkerClick;
                fMapControl.OnMarkerEnter    += MainMap_OnMarkerEnter;
                fMapControl.OnMarkerLeave    += MainMap_OnMarkerLeave;
                fMapControl.OnPolygonEnter   += MainMap_OnPolygonEnter;
                fMapControl.OnPolygonLeave   += MainMap_OnPolygonLeave;
                fMapControl.OnRouteEnter     += MainMap_OnRouteEnter;
                fMapControl.OnRouteLeave     += MainMap_OnRouteLeave;
                fMapControl.MouseMove        += MainMap_MouseMove;
                fMapControl.MouseDown        += MainMap_MouseDown;
                fMapControl.MouseUp          += MainMap_MouseUp;
                fMapControl.KeyUp            += MainForm_KeyUp;

                // set current marker
                fTargetMarker = new GMarkerIcon(fMapControl.Position, GMarkerIconType.arrow);
                fTargetMarker.IsHitTestVisible = false;
                fTargetMarker.IsVisible        = true;
                fTopOverlay.Markers.Add(fTargetMarker);

                // add start location
                GeocoderStatusCode status;
                PointLatLng?       pos = GMapProviders.GoogleMap.GetPoint("Russia, Moscow", out status);
                if (pos != null && status == GeocoderStatusCode.Success)
                {
                    fTargetMarker.Position = pos.Value;
                    fMapControl.ZoomAndCenterMarkers(null);
                }
            }
        }
 internal override void DrawMap()
 {
     m_GMapControl.Invoke(new Action(() => m_GMapControl.Overlays.Add(m_MarkersOverlay)));
     m_GMapControl.Invoke(new Action(() => m_GMapControl.ZoomAndCenterMarkers(null)));
 }
Beispiel #11
0
        private void InitControl()
        {
            fMapControl = new GMapControl {
                Bearing               = 0F,
                CanDragMap            = true,
                Dock                  = DockStyle.Fill,
                EmptyTileColor        = Color.Navy,
                GrayScaleMode         = false,
                HelperLineOption      = HelperLineOptions.DontShow,
                LevelsKeepInMemmory   = 5,
                Location              = new Point(0, 0),
                Margin                = new Padding(4),
                MarkersEnabled        = true,
                MaxZoom               = 17,
                MinZoom               = 2,
                MouseWheelZoomType    = MouseWheelZoomType.MousePositionAndCenter,
                NegativeMode          = false,
                PolygonsEnabled       = true,
                RetryLoadTile         = 0,
                RoutesEnabled         = true,
                ScaleMode             = ScaleModes.Integer,
                SelectedAreaFillColor = Color.FromArgb(33, 65, 105, 225),
                ShowTileGridLines     = false,
                Zoom                  = 0D
            };
            Controls.Add(fMapControl);

            if (!GMapControl.IsDesignerHosted)
            {
                var proxy = GlobalOptions.Instance.Proxy;
                if (proxy.UseProxy)
                {
                    GMapProvider.IsSocksProxy         = true;
                    GMapProvider.WebProxy             = new WebProxy(proxy.Server, int.Parse(proxy.Port));
                    GMapProvider.WebProxy.Credentials = new NetworkCredential(proxy.Login, proxy.Password);
                }
                else
                {
                    GMapProvider.WebProxy = WebRequest.DefaultWebProxy;
                }

                // set cache mode only if no internet avaible
                fMapControl.Manager.Mode = (!PingNetwork("pingtest.com")) ? AccessMode.CacheOnly : AccessMode.ServerAndCache;

                // config map
                fMapControl.CanDragMap        = true;
                fMapControl.MapProvider       = GMapProviders.GoogleMap;
                fMapControl.MinZoom           = 0;
                fMapControl.MaxZoom           = 24;
                fMapControl.ShowTileGridLines = false;
                fMapControl.Zoom = 9;

                fMapControl.Manager.UseRouteCache      = true;
                fMapControl.Manager.UseGeocoderCache   = true;
                fMapControl.Manager.UsePlacemarkCache  = true;
                fMapControl.Manager.UseDirectionsCache = true;

                // add custom layers
                fMapControl.Overlays.Add(fRoutes);
                fMapControl.Overlays.Add(fPolygons);
                fMapControl.Overlays.Add(fObjects);
                fMapControl.Overlays.Add(fTopOverlay);

                // map events
                fMapControl.OnPositionChanged += MainMap_OnPositionChanged;
                fMapControl.OnMapZoomChanged  += MainMap_OnMapZoomChanged;
                fMapControl.OnMapTypeChanged  += MainMap_OnMapTypeChanged;
                fMapControl.OnMarkerClick     += MainMap_OnMarkerClick;
                fMapControl.OnMarkerEnter     += MainMap_OnMarkerEnter;
                fMapControl.OnMarkerLeave     += MainMap_OnMarkerLeave;
                fMapControl.OnPolygonEnter    += MainMap_OnPolygonEnter;
                fMapControl.OnPolygonLeave    += MainMap_OnPolygonLeave;
                fMapControl.OnRouteEnter      += MainMap_OnRouteEnter;
                fMapControl.OnRouteLeave      += MainMap_OnRouteLeave;
                fMapControl.MouseMove         += MainMap_MouseMove;
                fMapControl.MouseDown         += MainMap_MouseDown;
                fMapControl.MouseUp           += MainMap_MouseUp;
                fMapControl.MouseDoubleClick  += MainMap_MouseDoubleClick;
                fMapControl.KeyPress          += MainForm_KeyPress;
                fMapControl.KeyUp             += MainForm_KeyUp;

                // set current marker
                fTargetMarker = new GMarkerGoogle(fMapControl.Position, GMarkerGoogleType.arrow);
                fTargetMarker.IsHitTestVisible = false;
                fTargetMarker.IsVisible        = true;
                fTopOverlay.Markers.Add(fTargetMarker);

                // add start location
                GeoCoderStatusCode status;
                PointLatLng?       pos = GMapProviders.GoogleMap.GetPoint("Russia, Moscow", out status);
                if (pos != null && status == GeoCoderStatusCode.G_GEO_SUCCESS)
                {
                    fTargetMarker.Position = pos.Value;
                    fMapControl.ZoomAndCenterMarkers(null);
                }
            }
        }