PureImage PureImageCache.GetImageFromCache(int type, GPoint pos, int zoom) { PureImage ret = null; try { string file = CacheLocation + Path.DirectorySeparatorChar + GMapProviders.TryGetProvider(type).Name + Path.DirectorySeparatorChar + zoom + Path.DirectorySeparatorChar + pos.Y + Path.DirectorySeparatorChar + pos.X + ".jpg"; if (File.Exists(file)) { using (BinaryReader sr = new BinaryReader(File.Open(file, FileMode.Open, FileAccess.Read, FileShare.Read))) { byte[] tile = sr.ReadBytes((int)sr.BaseStream.Length); MemoryStream stm = new MemoryStream(tile, 0, tile.Length, false, true); ret = GMapImageProxy.Instance.FromStream(stm); if (ret != null) { ret.Data = stm; } } } } catch (Exception ex) { #if MONO Console.WriteLine("GetImageFromCache: " + ex.ToString()); #endif Debug.WriteLine("GetImageFromCache: " + ex.ToString()); ret = null; } return(ret); }
void ProcessRequest(object p) { try { using (var c = p as TcpClient) { using (var s = c.GetStream()) { using (var r = new StreamReader(s, Encoding.UTF8)) { string request = r.ReadLine(); if (!string.IsNullOrEmpty(request) && request.StartsWith("GET")) { //Debug.WriteLine("TileHttpHost: " + request); // http://localhost:88/88888/5/15/11 // GET /8888888888/5/15/11 HTTP/1.1 var rq = request.Split(' '); if (rq.Length >= 2) { var ids = rq[1].Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries); if (ids.Length == 4) { int dbId = int.Parse(ids[0]); int zoom = int.Parse(ids[1]); int x = int.Parse(ids[2]); int y = int.Parse(ids[3]); var pr = GMapProviders.TryGetProvider(dbId); if (pr != null) { Exception ex; var img = GMaps.Instance.GetImageFrom(pr, new GPoint(x, y), zoom, out ex); if (img != null) { using (img) { s.Write(responseHeaderBytes, 0, responseHeaderBytes.Length); img.Data.WriteTo(s); } } } } } } } } c.Close(); } } catch (Exception ex) { Debug.WriteLine("TileHttpHost, ProcessRequest: " + ex); } //Debug.WriteLine("disconnected"); }
// Methods static TencentTerrainMapAnnoProvider() { //UrlFormat = "http://rt{0}.map.gtimg.com/realtimerender?z={1}&x={2}&y={3}&type=vector&style=1&v=1.1"; UrlFormat = "https://rt{0}.map.gtimg.com/tile?z={1}&x={2}&y={3}&type=vector&styleid=3&version=597"; //地形路网用 Instance = new TencentTerrainMapAnnoProvider(); GMapProviders.AddMapProvider(Instance); }
bool PureImageCache.PutImageToCache(byte[] tile, int type, GPoint pos, int zoom) { bool ret = true; if (Created) { try { string file = CacheLocation + Path.DirectorySeparatorChar + GMapProviders.TryGetProvider(type).Name + Path.DirectorySeparatorChar + zoom + Path.DirectorySeparatorChar + pos.Y + Path.DirectorySeparatorChar + pos.X + ".jpg"; string dir = Path.GetDirectoryName(file); Directory.CreateDirectory(dir); using (BinaryWriter sw = new BinaryWriter(File.OpenWrite(file))) { sw.Write(tile.ToArray()); } } catch (Exception ex) { #if MONO Console.WriteLine("PutImageToCache: " + ex.ToString()); #endif Debug.WriteLine("PutImageToCache: " + ex.ToString()); ret = false; } } return(ret); }
int PureImageCache.DeleteOlderThan(DateTime date, int?type) { int affectedRows = 0; if (!type.HasValue) { return(0); } string file = CacheLocation + Path.DirectorySeparatorChar + GMapProviders.TryGetProvider(type.Value).Name + Path.DirectorySeparatorChar; if (!Directory.Exists(file)) { return(0); } string[] files = Directory.GetFiles(file, "*.jpg", SearchOption.AllDirectories); foreach (var filen in files) { try { var fi = new FileInfo(filen); if (fi.CreationTime < date) { File.Delete(filen); affectedRows++; } } catch { } } files = Directory.GetFiles(file, "*.png", SearchOption.AllDirectories); foreach (var filen in files) { try { var fi = new FileInfo(filen); if (fi.CreationTime < date) { File.Delete(filen); affectedRows++; } } catch { } } return(affectedRows); }
public PureImage GetImageFromCache(int type, GPoint pos, int zoom) { if (!_地图字典.ContainsKey(type)) { _地图字典[type] = GMapProviders.TryGetProvider(type); } var __地图 = _地图字典[type]; var url = string.Format("{0}/{1}/{2}/{3}/{4}", _host, __地图.Name, zoom, pos.X, pos.Y); return(GetTileImageUsingHttp(url)); }
private void MainDlg_Load(object sender, EventArgs e) { // start minimized if enabled if (Properties.Settings.Default.Windows_Startup_Minimized) { WindowState = FormWindowState.Minimized; } else { WindowState = FormWindowState.Normal; } // reset FirstRun flag Properties.Settings.Default.Application_FirstRun = false; // set initial settings for CoverageMap // setting User Agent to fix Open Street Map issue 2016-09-20 GMap.NET.MapProviders.GMapProvider.UserAgent = "AirScout"; // clearing referrer URL issue 2019-12-14 gm_Planes_Coverage.MapProvider.RefererUrl = ""; gm_Planes_Coverage.MapProvider = GMapProviders.Find(Properties.Settings.Default.Planes_MapProvider); gm_Planes_Coverage.IgnoreMarkerOnMouseWheel = true; gm_Planes_Coverage.MinZoom = 0; gm_Planes_Coverage.MaxZoom = 20; gm_Planes_Coverage.Zoom = 6; gm_Planes_Coverage.DragButton = System.Windows.Forms.MouseButtons.Left; gm_Planes_Coverage.CanDragMap = true; gm_Planes_Coverage.ScalePen = new Pen(Color.Black, 3); gm_Planes_Coverage.HelperLinePen = null; gm_Planes_Coverage.SelectionPen = null; gm_Planes_Coverage.MapScaleInfoEnabled = true; gm_Planes_Coverage.Overlays.Add(gmo_Planes_Coverage); // keep startup time StartupTime = DateTime.UtcNow; // start database // enable/disable functions cb_WebFeed1_Active_CheckedChanged(this, null); cb_WebFeed2_Active_CheckedChanged(this, null); cb_WebFeed3_Active_CheckedChanged(this, null); cb_Log_Active_CheckedChanged(this, null); cb_Server_Active_CheckedChanged(this, null); // start timer ti_Main.Enabled = true; ti_Main.Start(); // start background workers bw_JSONWriter.RunWorkerAsync(); bw_DatabaseUpdater.RunWorkerAsync(); }
public TrafficDlg() { InitializeComponent(); // set initial settings for Map gm_Options_Traffic.MapProvider = GMapProviders.Find(Properties.Settings.Default.Map_Provider); gm_Options_Traffic.IgnoreMarkerOnMouseWheel = true; gm_Options_Traffic.MinZoom = 0; gm_Options_Traffic.MaxZoom = 20; gm_Options_Traffic.Zoom = 6; gm_Options_Traffic.DragButton = System.Windows.Forms.MouseButtons.Left; gm_Options_Traffic.CanDragMap = true; gm_Options_Traffic.ScalePen = new Pen(Color.Black, 3); gm_Options_Traffic.HelperLinePen = null; gm_Options_Traffic.SelectionPen = null; gm_Options_Traffic.MapScaleInfoEnabled = true; gm_Options_Traffic.Overlays.Add(Coveragepolygons); gm_Options_Traffic.Overlays.Add(routes); // add tile to map polygons List <PointLatLng> l = new List <PointLatLng>(); l.Add(new PointLatLng(Properties.Settings.Default.MinLat, Properties.Settings.Default.MinLon)); l.Add(new PointLatLng(Properties.Settings.Default.MinLat, Properties.Settings.Default.MaxLon)); l.Add(new PointLatLng(Properties.Settings.Default.MaxLat, Properties.Settings.Default.MaxLon)); l.Add(new PointLatLng(Properties.Settings.Default.MaxLat, Properties.Settings.Default.MinLon)); GMapPolygon p = new GMapPolygon(l, "Coverage"); p.Stroke = new Pen(Color.FromArgb(255, Color.Magenta), 3); p.Fill = new SolidBrush(Color.FromArgb(0, Color.Magenta)); Coveragepolygons.Polygons.Add(p); // zoom the map gm_Options_Traffic.SetZoomToFitRect(RectLatLng.FromLTRB(Properties.Settings.Default.MinLon - 1, Properties.Settings.Default.MaxLat + 1, Properties.Settings.Default.MaxLon + 1, Properties.Settings.Default.MinLat - 1)); try { dtp_Options_Traffic_Start.Value = AircraftPositionData.Database.AircraftPositionOldestEntry(); dtp_Options_Traffic_Stop.Value = AircraftPositionData.Database.AircraftPositionYoungestEntry(); } catch { dtp_Options_Traffic_Start.Value = DateTime.UtcNow; dtp_Options_Traffic_Stop.Value = DateTime.UtcNow; } }
private void readJsonMap() { using (StreamReader reader = new StreamReader("Maps.json")) { string json = reader.ReadToEnd(); JArray list = JArray.Parse(json); foreach (JObject data in list.Children()) { mapModes.Add(new MapMode { Name = (string)data["Name"], MapProvider = GMapProviders.TryGetProvider((string)data["Type"]), MainMapMinZoom = (int)data["MainMapMinZoom"], MainMapMaxZoom = (int)data["MainMapMaxZoom"], MiniMapMinZoom = (int)data["MiniMapMinZoom"], MiniMapMaxZoom = (int)data["MiniMapMaxZoom"] }); } } }
public void ChangeMapType(string id) { mainMap.MapProvider = GMapProviders.TryGetProvider(new Guid(id)); }
public MainWindow() { InitializeComponent(); // add your custom map db provider //MySQLPureImageCache ch = new MySQLPureImageCache(); //ch.ConnectionString = @"server=sql2008;User Id=trolis;Persist Security Info=True;database=gmapnetcache;password=trolis;"; //MainMap.Manager.SecondaryCache = ch; // set your proxy here if need //GMapProvider.IsSocksProxy = true; //GMapProvider.WebProxy = new WebProxy("127.0.0.1", 1080); //GMapProvider.WebProxy.Credentials = new NetworkCredential("*****@*****.**", "bilgeada"); // or //GMapProvider.WebProxy = WebRequest.DefaultWebProxy; // // set cache mode only if no internet avaible if (!Stuff.PingNetwork("pingtest.com")) { MainMap.Manager.Mode = AccessMode.CacheOnly; MessageBox.Show("No internet connection available, going to CacheOnly mode.", "GMap.NET - Demo.WindowsPresentation", MessageBoxButton.OK, MessageBoxImage.Warning); } // config map GMapProviders.AddProvider(new OpenStreetMapPrivateProvider("tileserver", "http://tileserver/osm_tiles/{0}/{1}/{2}.png")); MainMap.MapProvider = GMapProviders.OpenStreetMap; MainMap.Position = new PointLatLng(54.6961334816182, 25.2985095977783); //MainMap.ScaleMode = ScaleModes.Dynamic; // map events MainMap.OnPositionChanged += new PositionChanged(MainMap_OnCurrentPositionChanged); MainMap.OnTileLoadComplete += new TileLoadComplete(MainMap_OnTileLoadComplete); MainMap.OnTileLoadStart += new TileLoadStart(MainMap_OnTileLoadStart); MainMap.OnMapTypeChanged += new MapTypeChanged(MainMap_OnMapTypeChanged); MainMap.MouseMove += new System.Windows.Input.MouseEventHandler(MainMap_MouseMove); MainMap.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(MainMap_MouseLeftButtonDown); MainMap.MouseEnter += new MouseEventHandler(MainMap_MouseEnter); // get map types comboBoxMapType.ItemsSource = GMapProviders.List; comboBoxMapType.DisplayMemberPath = "Name"; comboBoxMapType.SelectedItem = MainMap.MapProvider; // acccess mode comboBoxMode.ItemsSource = Enum.GetValues(typeof(AccessMode)); comboBoxMode.SelectedItem = MainMap.Manager.Mode; // get cache modes checkBoxCacheRoute.IsChecked = MainMap.Manager.UseRouteCache; checkBoxGeoCache.IsChecked = MainMap.Manager.UseGeocoderCache; // setup zoom min/max sliderZoom.Maximum = MainMap.MaxZoom; sliderZoom.Minimum = MainMap.MinZoom; // get position textBoxLat.Text = MainMap.Position.Lat.ToString(CultureInfo.InvariantCulture); textBoxLng.Text = MainMap.Position.Lng.ToString(CultureInfo.InvariantCulture); // get marker state checkBoxCurrentMarker.IsChecked = true; // can drag map checkBoxDragMap.IsChecked = MainMap.CanDragMap; #if DEBUG checkBoxDebug.IsChecked = true; #endif //validator.Window = this; // set current marker currentMarker = new GMapMarker(MainMap.Position); { currentMarker.Shape = new CustomMarkerRed(this, currentMarker, "custom position marker"); currentMarker.Offset = new System.Windows.Point(-15, -15); currentMarker.ZIndex = int.MaxValue; MainMap.Markers.Add(currentMarker); } //if(false) { // add my city location for demo GeoCoderStatusCode status = GeoCoderStatusCode.Unknow; PointLatLng?city = GMapProviders.GoogleMap.GetPoint("Lithuania, Vilnius", out status); if (city != null && status == GeoCoderStatusCode.G_GEO_SUCCESS) { GMapMarker it = new GMapMarker(city.Value); { it.ZIndex = 55; it.Shape = new CustomMarkerDemo(this, it, "Welcome to Lithuania! ;}"); } MainMap.Markers.Add(it); #region -- add some markers and zone around them -- //if(false) { List <PointAndInfo> objects = new List <PointAndInfo>(); { string area = "Antakalnis"; PointLatLng?pos = GMapProviders.GoogleMap.GetPoint("Lithuania, Vilnius, " + area, out status); if (pos != null && status == GeoCoderStatusCode.G_GEO_SUCCESS) { objects.Add(new PointAndInfo(pos.Value, area)); } } { string area = "Senamiestis"; PointLatLng?pos = GMapProviders.GoogleMap.GetPoint("Lithuania, Vilnius, " + area, out status); if (pos != null && status == GeoCoderStatusCode.G_GEO_SUCCESS) { objects.Add(new PointAndInfo(pos.Value, area)); } } { string area = "Pilaite"; PointLatLng?pos = GMapProviders.GoogleMap.GetPoint("Lithuania, Vilnius, " + area, out status); if (pos != null && status == GeoCoderStatusCode.G_GEO_SUCCESS) { objects.Add(new PointAndInfo(pos.Value, area)); } } AddDemoZone(8.8, city.Value, objects); } #endregion } if (MainMap.Markers.Count > 1) { MainMap.ZoomAndCenterMarkers(null); } } // perfromance test timer.Interval = TimeSpan.FromMilliseconds(44); timer.Tick += new EventHandler(timer_Tick); // transport demo transport.DoWork += new DoWorkEventHandler(transport_DoWork); transport.ProgressChanged += new ProgressChangedEventHandler(transport_ProgressChanged); transport.WorkerSupportsCancellation = true; transport.WorkerReportsProgress = true; }
private void changeMapProvider(string mapName) { if (mapName.StartsWith("AMap") || mapName.StartsWith("Baidu") || mapName.StartsWith("Sohu") || mapName.StartsWith("SoSo") ) { if (mapName.Equals("AMap", StringComparison.CurrentCultureIgnoreCase)) { gMap.MapProvider = AMap; } else if (mapName.Equals("AMapSatelite", StringComparison.CurrentCultureIgnoreCase)) { gMap.MapProvider = AMapSatelite; } else if (mapName.Equals("BaiduMap", StringComparison.CurrentCultureIgnoreCase)) { gMap.MapProvider = BaiduMap; } else if (mapName.Equals("BaiduSateliteMap", StringComparison.CurrentCultureIgnoreCase)) { gMap.MapProvider = BaiduSateliteMap; } else if (mapName.Equals("SohuMap", StringComparison.CurrentCultureIgnoreCase)) { gMap.MapProvider = SogouMap; } else if (mapName.Equals("SohuSateliteMap", StringComparison.CurrentCultureIgnoreCase)) { gMap.MapProvider = SogouSateliteMap; } else if (mapName.Equals("SosoMap", StringComparison.CurrentCultureIgnoreCase)) { gMap.MapProvider = SosoMap; } else if (mapName.Equals("SoSoSateliteMap", StringComparison.CurrentCultureIgnoreCase)) { gMap.MapProvider = SosoSateliteMap; } gMap.MaxZoom = 18; gMap.MapProvider.MaxZoom = gMap.MaxZoom; trackZoom.Maximum = gMap.MaxZoom; } else { gMap.MapProvider = GMapProviders.TryGetProvider(mapSource[mapName]); gMap.MaxZoom = 20; gMap.MapProvider.MaxZoom = gMap.MaxZoom; } trackZoom.Maximum = gMap.MaxZoom; if (gMap.Zoom > gMap.MaxZoom) { gMap.Zoom = gMap.MaxZoom; } lastMapProvider = gMap.MapProvider.Name; Tag = lastMapProvider; if (mapName.StartsWith("Open", StringComparison.CurrentCultureIgnoreCase)) { chkMapShift.Checked = false; } else { chkMapShift.Checked = true; } tsmiShiftMap.Checked = chkMapShift.Checked; MapShift = chkMapShift.Checked; //gMap.BoundsOfMap = latlng; }
// Methods static BaiduHybridMapProvider() { HybridUrlFormat = "http://online{0}.map.bdimg.com/tile/?qt=tile&x={1}&y={2}&z={3}&styles=sl&v={4}&udt=20140314"; Instance = new BaiduHybridMapProvider(); GMapProviders.AddMapProvider(Instance); }
// Methods static BaiduMapProvider() { Instance = new BaiduMapProvider(); GMapProviders.AddMapProvider(Instance); }
static SosoMapHybridProvider() { Instance = new SosoMapHybridProvider(); GMapProviders.AddMapProvider(Instance); }
static TencentMapSateliteProvider() { Instance = new TencentMapSateliteProvider(); GMapProviders.AddMapProvider(Instance); }
protected override void OnDoWork(DoWorkEventArgs e) { BACKGROUNDUPDATERSTARTOPTIONS Options = (BACKGROUNDUPDATERSTARTOPTIONS)e.Argument; // name the thread for debugging if (String.IsNullOrEmpty(Thread.CurrentThread.Name)) { Thread.CurrentThread.Name = this.Name + "_" + this.GetType().Name; } this.ReportProgress(0, this.Name + " started."); Log.WriteMessage(this.Name + " started."); // get update interval int interval = (int)Properties.Settings.Default.Background_Update_Period * 60; // get mpst simple elevation model if (Properties.Settings.Default.Elevation_GLOBE_Enabled) { Model = ELEVATIONMODEL.GLOBE; } else if (Properties.Settings.Default.Elevation_SRTM3_Enabled) { Model = ELEVATIONMODEL.SRTM3; } else if (Properties.Settings.Default.Elevation_SRTM1_Enabled) { Model = ELEVATIONMODEL.SRTM1; } // return if no elevation model selected if (Model == ELEVATIONMODEL.NONE) { return; } // setting User Agent to fix Open Street Map issue 2016-09-20 GMap.NET.MapProviders.GMapProvider.UserAgent = "AirScout"; // clearing referrer URL issue 2019-12-14 gm_Map.MapProvider.RefererUrl = ""; // set initial settings for main map gm_Map.MapProvider = GMapProviders.Find(Properties.Settings.Default.Map_Provider); gm_Map.MinZoom = 0; gm_Map.MaxZoom = 20; // get database filename int i = 0; int count = 0; int total = 0; do { i = 0; count = 0; total = 0; // checks if elevation database is complete try { this.ReportProgress(0, this.Name + " getting tiles from database."); int zmin = 5; int zmax = 11; List <MapPreloaderTile> l = new List <MapPreloaderTile>(); for (int z = zmin; z <= zmax; z++) { int xmin = long2tilex(Properties.Settings.Default.MinLon, z); int xmax = long2tilex(Properties.Settings.Default.MaxLon, z); int ymin = lat2tiley(Properties.Settings.Default.MaxLat, z); int ymax = lat2tiley(Properties.Settings.Default.MinLat, z); for (int x = xmin; x <= xmax; x++) { for (int y = ymin; y <= ymax; y++) { // check if tile already in database --> add it to list to get it from the web if (!MapData.Database.TileExists(x, y, z, gm_Map.MapProvider.DbId)) { MapPreloaderTile t = new MapPreloaderTile(x, y, z, gm_Map.MapProvider.DbId); l.Add(t); } total++; if (this.CancellationPending) { break; } } if (this.CancellationPending) { break; } } if (this.CancellationPending) { break; } } if (this.CancellationPending) { break; } count = l.Count(); Random rng = new Random(); // shuffle the list int n = l.Count; while (n > 1) { n--; int k = rng.Next(n + 1); MapPreloaderTile value = l[k]; l[k] = l[n]; l[n] = value; } n = 0; foreach (MapPreloaderTile t in l) { Exception ex = null; this.ReportProgress(0, "Preloading " + "/" + t.Z.ToString() + "/" + t.X.ToString() + "/" + t.Y.ToString() + ".png"); try { // try to donwload from www.airscout.eu first if (gm_Map.MapProvider.GetType() == typeof(OpenStreetMapProvider)) { LoadOSM(t.X, t.Y, t.Z); } else { PureImage img = gm_Map.Manager.GetImageFrom(gm_Map.MapProvider, new GPoint(t.X, t.Y), t.Z, out ex); // wait until cache is written to database } if (ex == null) { Console.WriteLine("Preload tile [" + i.ToString() + " of " + count.ToString() + "] x=" + t.X + ", y=" + t.Y + ", z=" + t.Z + ": OK"); } else { Console.WriteLine("Preload tile [" + i.ToString() + " of " + count.ToString() + "] x=" + t.X + ", y=" + t.Y + ", z=" + t.Z + ": " + ex.ToString()); } } catch (Exception e1) { Console.WriteLine(this.Name + ": " + e1.ToString()); } Thread.Sleep(100); i++; n++; if (n > 100) { while (GMaps.Instance.tileCacheQueue.Count > 0) { Application.DoEvents(); if (this.CancellationPending) { break; } } n = 0; } if (this.CancellationPending) { break; } } if (this.CancellationPending) { break; } } catch (Exception ex) { this.ReportProgress(-1, ex.ToString()); } // sleep when running periodically if (Options == BACKGROUNDUPDATERSTARTOPTIONS.RUNPERIODICALLY) { int l = 0; while (!this.CancellationPending && (l < interval)) { Thread.Sleep(1000); l++; } } if (this.CancellationPending) { break; } }while (Options == BACKGROUNDUPDATERSTARTOPTIONS.RUNPERIODICALLY); if (this.CancellationPending) { this.ReportProgress(0, Name + " cancelled."); Log.WriteMessage(Name + " cancelled."); } else { this.ReportProgress(0, Name + " finished, total " + total.ToString() + " tile(s), " + (count - i).ToString() + " left."); Log.WriteMessage(Name + " finished, total " + total.ToString() + " tile(s), " + (count - i).ToString() + " left."); } }
// Methods static TencentTerrainMapAnnoProvider() { UrlFormat = "http://rt{0}.map.gtimg.com/realtimerender?z={1}&x={2}&y={3}&type=vector&style=1&v=1.1"; Instance = new TencentTerrainMapAnnoProvider(); GMapProviders.AddMapProvider(Instance); }
// Methods static TencentTerrainMapProvider() { UrlFormat = "http://p{0}.map.gtimg.com/{1}/{2}.{3}"; Instance = new TencentTerrainMapProvider(); GMapProviders.AddMapProvider(Instance); }
public HorizonDlg(string call, double lat, double lon, LocalObstructionDesignator localobstruction) { InitializeComponent(); Location = StationData.Database.LocationFindOrCreate(call, MaidenheadLocator.LocFromLatLon(lat, lon, false, 3)); QRV = StationData.Database.QRVFindOrCreateDefault(call, MaidenheadLocator.LocFromLatLon(lat, lon, false, 3), Properties.Settings.Default.Band); LocalObstruction = localobstruction; Elevation = ElevationData.Database[Location.Lat, Location.Lon, Properties.Settings.Default.ElevationModel]; AntennaHeight = (QRV.AntennaHeight != 0) ? QRV.AntennaHeight : StationData.Database.QRVGetDefaultAntennaHeight(Properties.Settings.Default.Band); NumberFormatInfo provider = new NumberFormatInfo(); provider.NumberDecimalSeparator = "."; provider.NumberGroupSeparator = ","; tb_Horizon_Lat.Text = Location.Lat.ToString("F8", provider); tb_Horizon_Lon.Text = Location.Lon.ToString("F8", provider); tb_Horizon_Elevation.Text = ElevationData.Database[Location.Lat, Location.Lon, Properties.Settings.Default.ElevationModel].ToString("F0", provider); tb_Horizon_Height.Text = AntennaHeight.ToString("F0", provider); tb_Horizon_K_Factor.Text = Properties.Settings.Default.Path_Band_Settings[Properties.Settings.Default.Band].K_Factor.ToString("F2", provider); tb_Horizon_QRG.Text = Bands.GetStringValue(Properties.Settings.Default.Band); tb_Horizon_F1_Clearance.Text = Properties.Settings.Default.Path_Band_Settings[Properties.Settings.Default.Band].F1_Clearance.ToString("F2", provider); tb_Horizon_ElevationModel.Text = Properties.Settings.Default.ElevationModel.ToString(); // setting User Agent to fix Open Street Map issue 2016-09-20 GMap.NET.MapProviders.GMapProvider.UserAgent = "AirScout"; // clearing referrer URL issue 2019-12-14 gm_Horizon.MapProvider.RefererUrl = ""; // set initial settings for main map gm_Horizon.MapProvider = GMapProviders.Find(Properties.Settings.Default.Map_Provider); gm_Horizon.IgnoreMarkerOnMouseWheel = true; gm_Horizon.MinZoom = 0; gm_Horizon.MaxZoom = 20; gm_Horizon.Zoom = 8; gm_Horizon.DragButton = System.Windows.Forms.MouseButtons.Left; gm_Horizon.CanDragMap = true; gm_Horizon.ScalePen = new Pen(Color.Black, 3); gm_Horizon.MapScaleInfoEnabled = true; gm_Horizon.Overlays.Add(horizons); GMarkerGoogle gm = new GMarkerGoogle(new PointLatLng(Location.Lat, Location.Lon), GMarkerGoogleType.red_dot); gm.ToolTipText = Location.Call; horizons.Markers.Add(gm); horizon.Stroke = new Pen(Color.Red, 3); horizons.Routes.Add(horizon); this.Text = "Radio Horizon of " + Location.Call; // initialize charts InitializeCharts(); // activate Polar if nothing checked if (!Properties.Settings.Default.Horizon_Plot_Polar && !Properties.Settings.Default.Horizon_Plot_Cartesian && !Properties.Settings.Default.Horizon_Plot_Map) { Properties.Settings.Default.Horizon_Plot_Polar = true; } // show according child windows UpdateCharts(); // create ToolTip on this window TT = new ToolTip(); OwnerWin = gm_Horizon; HorizonDlg_SizeChanged(this, null); // set map bounds Map_Left = Location.Lon; Map_Right = Location.Lon; Map_Top = Location.Lat; Map_Bottom = Location.Lat; }
static SosoMapSateliteProvider() { Instance = new SosoMapSateliteProvider(); GMapProviders.AddMapProvider(Instance); }
static TencentMapHybridProvider() { Instance = new TencentMapHybridProvider(); GMapProviders.AddMapProvider(Instance); }
static AMapProvider() { Instance = new AMapProvider(); GMapProviders.AddMapProvider(Instance); }
// Methods static BaiduSatelliteMapProvider() { UrlFormat = "http://shangetu{0}.map.bdimg.com/it/u=x={1};y={2};z={3};v={4};type={5}&fm={6}&udt=20140929"; Instance = new BaiduSatelliteMapProvider(); GMapProviders.AddMapProvider(Instance); }