internal BlueMarbleBuilder() : base("Blue Marble", MainForm.WorldWindowSingleton, null) { ImageLayer oBaseLayer = new WorldWind.Renderable.ImageLayer( "Blue Marble ImageLayer", MainForm.WorldWindowSingleton.CurrentWorld, 0, String.Format(CultureInfo.InvariantCulture, "{0}\\Data\\Earth\\BmngBathy\\world.topo.bathy.2004{1:D2}.jpg", Path.GetDirectoryName(Application.ExecutablePath), 7), -90, 90, -180, 180, 1.0f, null); WorldWind.NltImageStore imageStore = new WorldWind.NltImageStore(String.Format(CultureInfo.InvariantCulture, "bmng.topo.bathy.2004{0:D2}", 7), "http://worldwind25.arc.nasa.gov/tile/tile.aspx"); imageStore.DataDirectory = null; imageStore.LevelZeroTileSizeDegrees = 36.0; imageStore.LevelCount = 5; imageStore.ImageExtension = "jpg"; imageStore.CacheDirectory = MainForm.WorldWindowSingleton.Cache.CacheDirectory + "\\Earth\\BMNG\\"; WorldWind.ImageStore[] ias = new WorldWind.ImageStore[1]; ias[0] = imageStore; QuadTileSet oTiledBaseLayer = new WorldWind.Renderable.QuadTileSet( "Blue Marble QuadTileSet", MainForm.WorldWindowSingleton.CurrentWorld, 0, 90, -90, -180, 180, true, ias); RenderableObjectList oRenderableList = new RenderableObjectList("This name doesn't matter, it gets rewritten"); oRenderableList.Add(oBaseLayer); oRenderableList.Add(oTiledBaseLayer); oRenderableList.RenderPriority = RenderPriority.TerrainMappedImages; m_hObject = oRenderableList; }
public BMNG(WorldWind.WorldWindow worldWindow, MenuItem menuItem) { // // Required for Windows Form Designer support // InitializeComponent(); this.m_MenuItem = menuItem; // Plugin menu item ref int lastSelectedDatasetIndex = 1; try { using (StreamReader reader = new StreamReader(Path.GetDirectoryName(Application.ExecutablePath) + "\\Plugins\\BlueMarble\\settings.txt")) { lastSelectedDatasetIndex = int.Parse(reader.ReadLine().Trim()); } } catch { } comboBoxBmngVersion.SelectedIndex = lastSelectedDatasetIndex; m_WorldWindow = worldWindow; m_RenderableList.ShowOnlyOneLayer = true; bool foundImagesObject = false; lock (m_WorldWindow.CurrentWorld.RenderableObjects.ChildObjects.SyncRoot) { foreach (WorldWind.Renderable.RenderableObject ro in m_WorldWindow.CurrentWorld.RenderableObjects.ChildObjects) { if (ro is WorldWind.Renderable.RenderableObjectList && (ro.Name == "Images")) // SF FIX: don't add to layers called 'xxxx images'! { WorldWind.Renderable.RenderableObjectList imagesList = ro as WorldWind.Renderable.RenderableObjectList; imagesList.ChildObjects.Insert(0, m_RenderableList); foundImagesObject = true; break; } } } if (!foundImagesObject) { m_WorldWindow.CurrentWorld.RenderableObjects.ChildObjects.Add(m_RenderableList); } m_BlueMarbleBase = new WorldWind.Renderable.ImageLayer( "Blue Marble Base Image", m_WorldWindow.CurrentWorld, 0, null, -90, 90, -180, 180, 1.0f, null); m_BlueMarbleBase.ImageUrl = "http://worldwind.arc.nasa.gov/downloads/land_shallow_topo_2048.dds"; WorldWind.NltImageStore ia = new WorldWind.NltImageStore("106", "http://nww.terraserver-usa.com/nwwtile.ashx"); ia.DataDirectory = null; ia.LevelZeroTileSizeDegrees = 36.0; ia.LevelCount = 4; ia.ImageExtension = "jpg"; ia.CacheDirectory = String.Format("{0}\\Blue Marble", m_WorldWindow.Cache.CacheDirectory); WorldWind.ImageStore[] ias = new WorldWind.ImageStore[1]; ias[0] = ia; m_BlueMarbleTiled = new WorldWind.Renderable.QuadTileSet( "Blue Marble Tiled", m_WorldWindow.CurrentWorld, 0, 90, -90, -180, 180, true, ias); m_BlueMarbleTiled.ServerLogoFilePath = Path.GetDirectoryName(Application.ExecutablePath) + "\\Data\\Icons\\Interface\\meatball.png"; m_BlueMarbleList = new WorldWind.Renderable.RenderableObjectList("Blue Marble"); m_BlueMarbleList.IsOn = false; m_BlueMarbleList.Add(m_BlueMarbleBase); m_BlueMarbleList.Add(m_BlueMarbleTiled); m_ShadedList = new WorldWind.Renderable.RenderableObjectList("BMNG"); m_ShadedList.ShowOnlyOneLayer = true; m_ShadedList.IsOn = false; for (int i = 0; i < 12; i++) { m_ImageLayers[0, i] = new WorldWind.Renderable.ImageLayer( String.Format("Base Image - {0}.2004", i + 1), m_WorldWindow.CurrentWorld, 0, null, -90, 90, -180, 180, 1.0f, null); m_ImageLayers[0, i].ImageUrl = String.Format("{0}world.topo.2004{1:D2}.jpg", m_BmngBaseImageUrl, i + 1); WorldWind.NltImageStore imageStore = new WorldWind.NltImageStore(String.Format("bmng.topo.2004{0:D2}", i + 1), "http://worldwind25.arc.nasa.gov/tile/tile.aspx"); imageStore.DataDirectory = null; imageStore.LevelZeroTileSizeDegrees = 36.0; imageStore.LevelCount = 5; imageStore.ImageExtension = "jpg"; imageStore.CacheDirectory = String.Format("{0}\\BMNG\\{1}", m_WorldWindow.Cache.CacheDirectory, String.Format("BMNG (Shaded) Tiled - {0}.2004", i + 1)); ias = new WorldWind.ImageStore[1]; ias[0] = imageStore; m_QuadTileLayers[0, i] = new WorldWind.Renderable.QuadTileSet( String.Format("Tiled - {0}.2004", i + 1), m_WorldWindow.CurrentWorld, 0, 90, -90, -180, 180, true, ias); m_QuadTileLayers[0, i].ServerLogoFilePath = Path.GetDirectoryName(Application.ExecutablePath) + "\\Data\\Icons\\Interface\\meatball.png"; m_RenderableLayers[0, i] = new WorldWind.Renderable.RenderableObjectList(String.Format("{0}.2004", i + 1)); m_RenderableLayers[0, i].IsOn = false; m_RenderableLayers[0, i].Add(m_ImageLayers[0, i]); m_RenderableLayers[0, i].Add(m_QuadTileLayers[0, i]); m_ShadedList.Add(m_RenderableLayers[0, i]); } m_ShadedBathyList = new WorldWind.Renderable.RenderableObjectList("BMNG (Bathymetry)"); m_ShadedBathyList.ShowOnlyOneLayer = true; m_ShadedBathyList.IsOn = false; for (int i = 0; i < 12; i++) { m_ImageLayers[1, i] = new WorldWind.Renderable.ImageLayer( String.Format("Base Image - {0}.2004", i + 1), m_WorldWindow.CurrentWorld, 0, String.Format("{0}\\Data\\Earth\\BmngBathy\\world.topo.bathy.2004{1:D2}.jpg", Path.GetDirectoryName(Application.ExecutablePath), i + 1), -90, 90, -180, 180, 1.0f, null); // m_ImageLayers[1, i].ImageUrl = String.Format("{0}world.topo.bathy.2004{1:D2}.jpg", m_BmngBaseImageUrl, i+1); WorldWind.NltImageStore imageStore = new WorldWind.NltImageStore(String.Format("bmng.topo.bathy.2004{0:D2}", i + 1), "http://worldwind25.arc.nasa.gov/tile/tile.aspx"); imageStore.DataDirectory = null; imageStore.LevelZeroTileSizeDegrees = 36.0; imageStore.LevelCount = 5; imageStore.ImageExtension = "jpg"; imageStore.CacheDirectory = String.Format("{0}\\BMNG\\{1}", m_WorldWindow.Cache.CacheDirectory, String.Format("BMNG (Shaded + Bathymetry) Tiled - {0}.2004", i + 1)); ias = new WorldWind.ImageStore[1]; ias[0] = imageStore; m_QuadTileLayers[1, i] = new WorldWind.Renderable.QuadTileSet( String.Format("Tiled - {0}.2004", i + 1), m_WorldWindow.CurrentWorld, 0, 90, -90, -180, 180, true, ias); m_QuadTileLayers[0, i].ServerLogoFilePath = Path.GetDirectoryName(Application.ExecutablePath) + "\\Data\\Icons\\Interface\\meatball.png"; m_RenderableLayers[1, i] = new WorldWind.Renderable.RenderableObjectList(String.Format("{0}.2004", i + 1)); m_RenderableLayers[1, i].IsOn = false; m_RenderableLayers[1, i].Add(m_ImageLayers[1, i]); m_RenderableLayers[1, i].Add(m_QuadTileLayers[1, i]); m_ShadedBathyList.Add(m_RenderableLayers[1, i]); } /* m_UnShadedList = new WorldWind.Renderable.RenderableObjectList("BMNG (UnShaded)"); * m_UnShadedList.ShowOnlyOneLayer = true; * m_UnShadedList.IsOn = false; * * for(int i = 0; i < 12; i++) * { * m_ImageLayers[2, i] = new WorldWind.Renderable.ImageLayer( * String.Format("Base Image - {0}.2004 un", i+1), * m_WorldWindow.CurrentWorld, * 0, * null, * -90, 90, -180, 180, 1.0f, m_WorldWindow.CurrentWorld.TerrainAccessor); * * m_ImageLayers[2, i].ImageUrl = String.Format("{0}world.2004{1:D2}.jpg", m_BmngBaseImageUrl, i+1); * m_ImageLayers[2, i].IsOn = false; * * m_QuadTileLayers[2, i] = new WorldWind.Renderable.QuadTileSet( * String.Format("Tiled - {0}.2004", i+1), * m_WorldWindow.CurrentWorld, * 0, * 90, -90, -180, 180, m_WorldWindow.CurrentWorld.TerrainAccessor, * new WorldWind.ImageAccessor( * null, 512, 36.0, 5, "jpg", * String.Format("{0}\\BMNG\\{1}", m_WorldWindow.Cache.CacheDirectory, String.Format("BMNG (UnShaded) Tiled - {0}.2004", i+1)), * new WorldWind.ImageTileService( * String.Format("bmng.2004{0:D2}", i+1), "http://worldwind28.arc.nasa.gov/TestWebApp/WebForm1.aspx", * Path.GetDirectoryName(Application.ExecutablePath) + "\\Data\\Icons\\Interface\\meatball.png") * )); * * m_RenderableLayers[2, i] = new WorldWind.Renderable.RenderableObjectList(String.Format("{0}.2004", i+1)); * m_RenderableLayers[2, i].IsOn = false; * * m_RenderableLayers[2, i].Add(m_ImageLayers[1, i]); * m_RenderableLayers[2, i].Add(m_QuadTileLayers[1, i]); * m_UnShadedList.Add(m_RenderableLayers[2, i]); * }*/ m_RenderableList.Add(m_BlueMarbleList); m_RenderableList.Add(m_ShadedList); m_RenderableList.Add(m_ShadedBathyList); // m_RenderableList.Add(m_UnShadedList); this.trackBarMonth.Value = System.DateTime.Now.Month - 1; timer = new Timer(); timer.Interval = 1000; timer.Tick += new EventHandler(timer_Tick); timer.Start(); }
public BMNG(WorldWind.WorldWindow worldWindow, MenuItem menuItem) { // // Required for Windows Form Designer support // InitializeComponent(); this.m_MenuItem = menuItem; // Plugin menu item ref int lastSelectedDatasetIndex = 1; try { using (StreamReader reader = new StreamReader(Path.GetDirectoryName(Application.ExecutablePath) + "\\Plugins\\BlueMarble\\settings.txt")) { lastSelectedDatasetIndex = int.Parse(reader.ReadLine().Trim()); } } catch { } comboBoxBmngVersion.SelectedIndex = lastSelectedDatasetIndex; m_WorldWindow = worldWindow; m_RenderableList.ShowOnlyOneLayer = true; bool foundImagesObject = false; lock (m_WorldWindow.CurrentWorld.RenderableObjects.ChildObjects.SyncRoot) { foreach (WorldWind.Renderable.RenderableObject ro in m_WorldWindow.CurrentWorld.RenderableObjects.ChildObjects) { if (ro is WorldWind.Renderable.RenderableObjectList && (ro.Name == "Images")) // SF FIX: don't add to layers called 'xxxx images'! { WorldWind.Renderable.RenderableObjectList imagesList = ro as WorldWind.Renderable.RenderableObjectList; imagesList.ChildObjects.Insert(0, m_RenderableList); foundImagesObject = true; break; } } } if (!foundImagesObject) { m_WorldWindow.CurrentWorld.RenderableObjects.ChildObjects.Add(m_RenderableList); } m_BlueMarbleBase = new WorldWind.Renderable.ImageLayer( "Blue Marble Base Image", m_WorldWindow.CurrentWorld, 0, null, -90, 90, -180, 180, 1.0f, null); m_BlueMarbleBase.ImageUrl = "http://worldwind.arc.nasa.gov/downloads/land_shallow_topo_2048.dds"; WorldWind.NltImageStore ia = new WorldWind.NltImageStore("106", "http://nww.terraserver-usa.com/nwwtile.ashx"); ia.DataDirectory = null; ia.LevelZeroTileSizeDegrees = 36.0; ia.LevelCount = 4; ia.ImageExtension = "jpg"; ia.CacheDirectory = String.Format("{0}\\Blue Marble", m_WorldWindow.Cache.CacheDirectory); WorldWind.ImageStore[] ias = new WorldWind.ImageStore[1]; ias[0] = ia; m_BlueMarbleTiled = new WorldWind.Renderable.QuadTileSet( "Blue Marble Tiled", m_WorldWindow.CurrentWorld, 0, 90, -90, -180, 180, true, ias); m_BlueMarbleTiled.ServerLogoFilePath = Path.GetDirectoryName(Application.ExecutablePath) + "\\Data\\Icons\\Interface\\meatball.png"; m_BlueMarbleList = new WorldWind.Renderable.RenderableObjectList("Blue Marble"); m_BlueMarbleList.IsOn = false; m_BlueMarbleList.Add(m_BlueMarbleBase); m_BlueMarbleList.Add(m_BlueMarbleTiled); m_ShadedList = new WorldWind.Renderable.RenderableObjectList("BMNG"); m_ShadedList.ShowOnlyOneLayer = true; m_ShadedList.IsOn = false; for (int i = 0; i < 12; i++) { m_ImageLayers[0, i] = new WorldWind.Renderable.ImageLayer( String.Format("Base Image - {0}.2004", i + 1), m_WorldWindow.CurrentWorld, 0, null, -90, 90, -180, 180, 1.0f, null); m_ImageLayers[0, i].ImageUrl = String.Format("{0}world.topo.2004{1:D2}.jpg", m_BmngBaseImageUrl, i + 1); WorldWind.NltImageStore imageStore = new WorldWind.NltImageStore(String.Format("bmng.topo.2004{0:D2}", i + 1), "http://worldwind25.arc.nasa.gov/tile/tile.aspx"); imageStore.DataDirectory = null; imageStore.LevelZeroTileSizeDegrees = 36.0; imageStore.LevelCount = 5; imageStore.ImageExtension = "jpg"; imageStore.CacheDirectory = String.Format("{0}\\BMNG\\{1}", m_WorldWindow.Cache.CacheDirectory, String.Format("BMNG (Shaded) Tiled - {0}.2004", i + 1)); ias = new WorldWind.ImageStore[1]; ias[0] = imageStore; m_QuadTileLayers[0, i] = new WorldWind.Renderable.QuadTileSet( String.Format("Tiled - {0}.2004", i + 1), m_WorldWindow.CurrentWorld, 0, 90, -90, -180, 180, true, ias); m_QuadTileLayers[0, i].ServerLogoFilePath = Path.GetDirectoryName(Application.ExecutablePath) + "\\Data\\Icons\\Interface\\meatball.png"; m_RenderableLayers[0, i] = new WorldWind.Renderable.RenderableObjectList(String.Format("{0}.2004", i + 1)); m_RenderableLayers[0, i].IsOn = false; m_RenderableLayers[0, i].Add(m_ImageLayers[0, i]); m_RenderableLayers[0, i].Add(m_QuadTileLayers[0, i]); m_ShadedList.Add(m_RenderableLayers[0, i]); } m_ShadedBathyList = new WorldWind.Renderable.RenderableObjectList("BMNG (Bathymetry)"); m_ShadedBathyList.ShowOnlyOneLayer = true; m_ShadedBathyList.IsOn = false; for (int i = 0; i < 12; i++) { m_ImageLayers[1, i] = new WorldWind.Renderable.ImageLayer( String.Format("Base Image - {0}.2004", i + 1), m_WorldWindow.CurrentWorld, 0, String.Format("{0}\\Data\\Earth\\BmngBathy\\world.topo.bathy.2004{1:D2}.jpg", Path.GetDirectoryName(Application.ExecutablePath), i + 1), -90, 90, -180, 180, 1.0f, null); // m_ImageLayers[1, i].ImageUrl = String.Format("{0}world.topo.bathy.2004{1:D2}.jpg", m_BmngBaseImageUrl, i+1); WorldWind.NltImageStore imageStore = new WorldWind.NltImageStore(String.Format("bmng.topo.bathy.2004{0:D2}", i + 1), "http://worldwind25.arc.nasa.gov/tile/tile.aspx"); imageStore.DataDirectory = null; imageStore.LevelZeroTileSizeDegrees = 36.0; imageStore.LevelCount = 5; imageStore.ImageExtension = "jpg"; imageStore.CacheDirectory = String.Format("{0}\\BMNG\\{1}", m_WorldWindow.Cache.CacheDirectory, String.Format("BMNG (Shaded + Bathymetry) Tiled - {0}.2004", i + 1)); ias = new WorldWind.ImageStore[1]; ias[0] = imageStore; m_QuadTileLayers[1, i] = new WorldWind.Renderable.QuadTileSet( String.Format("Tiled - {0}.2004", i + 1), m_WorldWindow.CurrentWorld, 0, 90, -90, -180, 180, true, ias); m_QuadTileLayers[0, i].ServerLogoFilePath = Path.GetDirectoryName(Application.ExecutablePath) + "\\Data\\Icons\\Interface\\meatball.png"; m_RenderableLayers[1, i] = new WorldWind.Renderable.RenderableObjectList(String.Format("{0}.2004", i + 1)); m_RenderableLayers[1, i].IsOn = false; m_RenderableLayers[1, i].Add(m_ImageLayers[1, i]); m_RenderableLayers[1, i].Add(m_QuadTileLayers[1, i]); m_ShadedBathyList.Add(m_RenderableLayers[1, i]); } /* m_UnShadedList = new WorldWind.Renderable.RenderableObjectList("BMNG (UnShaded)"); m_UnShadedList.ShowOnlyOneLayer = true; m_UnShadedList.IsOn = false; for(int i = 0; i < 12; i++) { m_ImageLayers[2, i] = new WorldWind.Renderable.ImageLayer( String.Format("Base Image - {0}.2004 un", i+1), m_WorldWindow.CurrentWorld, 0, null, -90, 90, -180, 180, 1.0f, m_WorldWindow.CurrentWorld.TerrainAccessor); m_ImageLayers[2, i].ImageUrl = String.Format("{0}world.2004{1:D2}.jpg", m_BmngBaseImageUrl, i+1); m_ImageLayers[2, i].IsOn = false; m_QuadTileLayers[2, i] = new WorldWind.Renderable.QuadTileSet( String.Format("Tiled - {0}.2004", i+1), m_WorldWindow.CurrentWorld, 0, 90, -90, -180, 180, m_WorldWindow.CurrentWorld.TerrainAccessor, new WorldWind.ImageAccessor( null, 512, 36.0, 5, "jpg", String.Format("{0}\\BMNG\\{1}", m_WorldWindow.Cache.CacheDirectory, String.Format("BMNG (UnShaded) Tiled - {0}.2004", i+1)), new WorldWind.ImageTileService( String.Format("bmng.2004{0:D2}", i+1), "http://worldwind28.arc.nasa.gov/TestWebApp/WebForm1.aspx", Path.GetDirectoryName(Application.ExecutablePath) + "\\Data\\Icons\\Interface\\meatball.png") )); m_RenderableLayers[2, i] = new WorldWind.Renderable.RenderableObjectList(String.Format("{0}.2004", i+1)); m_RenderableLayers[2, i].IsOn = false; m_RenderableLayers[2, i].Add(m_ImageLayers[1, i]); m_RenderableLayers[2, i].Add(m_QuadTileLayers[1, i]); m_UnShadedList.Add(m_RenderableLayers[2, i]); }*/ m_RenderableList.Add(m_BlueMarbleList); m_RenderableList.Add(m_ShadedList); m_RenderableList.Add(m_ShadedBathyList); // m_RenderableList.Add(m_UnShadedList); this.trackBarMonth.Value = System.DateTime.Now.Month - 1; timer = new Timer(); timer.Interval = 1000; timer.Tick += new EventHandler(timer_Tick); timer.Start(); }