public override void Load() { return; string strCachePath = GetCachePath(); if (m_oImageTileService == null && m_strDataSetName != string.Empty && m_strServerUrl != string.Empty) { m_oImageTileService = new ImageTileService(m_strDataSetName, m_strServerUrl); } m_oImageAccessor = new ImageAccessor(strCachePath, m_intTextureSizePixels, m_decLevelZeroTileSizeDegrees, m_intNumberLevels, m_strImageFileExtension, strCachePath, m_oImageTileService); m_oQuadTileSet = new QuadTileSet(m_strName, m_hBoundary, m_oWorld, distAboveSurface, (terrainMapped ? m_oWorld.TerrainAccessor : null), m_oImageAccessor, m_bOpacity, false); base.Load(); }
private QuadTileSet GetQuadLayer() { if (m_blnIsChanged) { NltImageStore[] imageStores = new NltImageStore[1]; imageStores[0] = new NltImageStore(m_strDatasetName, m_strServerUrl); imageStores[0].DataDirectory = null; imageStores[0].LevelZeroTileSizeDegrees = LevelZeroTileSize; imageStores[0].LevelCount = m_iLevels; imageStores[0].ImageExtension = m_strImageExt; imageStores[0].CacheDirectory = GetCachePath(); imageStores[0].TextureSizePixels = m_iTextureSizePixels; m_oQuadTileSet = new QuadTileSet(m_szTreeNodeText, m_oWorldWindow.CurrentWorld, distAboveSurface, 90, -90, -180, 180, terrainMapped, imageStores); m_oQuadTileSet.IsOn = m_IsOn; m_oQuadTileSet.Opacity = m_bOpacity; m_oQuadTileSet.AlwaysRenderBaseTiles = true; m_oQuadTileSet.IsOn = m_IsOn; m_oQuadTileSet.Opacity = m_bOpacity; m_blnIsChanged = false; } return(m_oQuadTileSet); }
protected override void CleanUpLayer(bool bFinal) { if (m_layer != null) { m_layer.Dispose(); } m_layer = null; }
protected override void CleanUpLayer(bool bFinal) { if (m_oQuadTileSet != null) { m_oQuadTileSet.Dispose(); } m_oQuadTileSet = null; m_blnIsChanged = true; }
/// <summary> /// Layer properties context menu item /// </summary> protected virtual void GetReloadShader() { QuadTileSet qts = this as QuadTileSet; if (qts != null) { qts.Effect = null; } }
/// <summary> /// Layer properties context menu item /// </summary> protected virtual void OnReloadShaderClick(object sender, EventArgs e) { QuadTileSet qts = this as QuadTileSet; if (qts != null) { qts.Effect = null; } }
protected override void CleanUpLayer(bool bFinal) { if (m_oVEQTS != null) { m_oVEQTS.Dispose(); } m_oVEQTS = null; m_blnIsChanged = true; }
internal override RenderableObject GetLayer() { if (m_blnIsChanged) { string strExt = ".png"; string strCachePath = GetCachePath(); System.IO.Directory.CreateDirectory(strCachePath); string imageFormat = "image/png"; if (m_wmsLayer.ImageFormats != null) { foreach (string curFormat in m_wmsLayer.ImageFormats) { if (string.Compare(curFormat, "image/png", true, System.Globalization.CultureInfo.InvariantCulture) == 0) { imageFormat = curFormat; break; } if (string.Compare(curFormat, "image/jpeg", true, System.Globalization.CultureInfo.InvariantCulture) == 0 || String.Compare(curFormat, "image/jpg", true, System.Globalization.CultureInfo.InvariantCulture) == 0) { imageFormat = curFormat; } } } if (string.Compare(imageFormat, "image/jpeg", true, System.Globalization.CultureInfo.InvariantCulture) == 0 || string.Compare(imageFormat, "image/jpg", true, System.Globalization.CultureInfo.InvariantCulture) == 0) { strExt = ".jpg"; } WmsImageStoreDapple[] imageStores = new WmsImageStoreDapple[1]; imageStores[0] = new WmsImageStoreDapple(imageFormat, m_wmsLayer.ParentWMSList.ServerGetMapUrl, m_wmsLayer.ParentWMSList.Version, m_wmsLayer.Name, string.Empty, m_wmsLayer.SRS, m_wmsLayer.CRS); imageStores[0].DataDirectory = null; imageStores[0].LevelZeroTileSizeDegrees = LevelZeroTileSize; imageStores[0].LevelCount = m_iLevels; imageStores[0].ImageExtension = strExt; imageStores[0].CacheDirectory = strCachePath; imageStores[0].TextureSizePixels = TextureSizePixels; m_oQuadTileSet = new QuadTileSet(m_szTreeNodeText, m_oWorldWindow.CurrentWorld, distAboveSurface, (double)m_wmsLayer.North, (double)m_wmsLayer.South, (double)m_wmsLayer.West, (double)m_wmsLayer.East, true, imageStores); m_oQuadTileSet.AlwaysRenderBaseTiles = true; m_oQuadTileSet.IsOn = m_IsOn; m_oQuadTileSet.Opacity = m_bOpacity; m_blnIsChanged = false; } return(m_oQuadTileSet); }
private void resetQuadTileSetCache(RenderableObject ro) { if (ro.IsOn && ro is QuadTileSet) { QuadTileSet qts = (QuadTileSet)ro; qts.ResetCacheForCurrentView(worldWindow.DrawArgs.WorldCamera); } else if (ro is RenderableObjectList) { RenderableObjectList rol = (RenderableObjectList)ro; foreach (RenderableObject curRo in rol.ChildObjects) { resetQuadTileSetCache(curRo); } } }
internal override RenderableObject GetLayer() { if (m_blnIsChanged) { #if USE_NEW_VE_QTS double distanceAboveSurface = 0.0; VEImageStore[] imageStores = null; imageStores = new VEImageStore[1]; imageStores[0] = new VEImageStore(m_mapType, m_oWorld.EquatorialRadius + distanceAboveSurface); imageStores[0].CacheDirectory = GetCachePath(); imageStores[0].TextureFormat = World.Settings.TextureFormat; m_oVEQTS = new QuadTileSet(m_strName, m_oWorld, distanceAboveSurface, 90, -90, -180, 180, true, imageStores); m_oVEQTS.AlwaysRenderBaseTiles = true; #else string fileExt, dataset; if (m_mapType == VirtualEarthMapType.road) { fileExt = "png"; dataset = "r"; } else { fileExt = "jpeg"; if (m_mapType == VirtualEarthMapType.aerial) { dataset = "a"; } else { dataset = "h"; } } m_oVEQTS = new VeReprojectTilesLayer(m_szTreeNodeText, m_oWorldWindow, dataset, fileExt, 0, GetCachePath()); #endif m_oVEQTS.IsOn = m_IsOn; m_oVEQTS.Opacity = m_bOpacity; m_oVEQTS.RenderPriority = RenderPriority.TerrainMappedImages; m_blnIsChanged = false; } return(m_oVEQTS); }
private QuadTileSet GetQuadTileSet() { if (m_layer == null) { SwitchToUseTiles(); string strCachePath = GetCachePath(); System.IO.Directory.CreateDirectory(strCachePath); // Determine the needed levels (function of tile size and resolution if available) // Shared code in DappleUtils of dapxmlclient try { if (m_iLevels == 0) { m_iLevels = DappleUtils.Levels(m_oServer.Command, m_hDataSet); } } catch { m_iLevels = 15; } ImageStore[] imageStores = new ImageStore[1]; imageStores[0] = new DAPImageStore(m_hDataSet, m_oServer) { DataDirectory = null, LevelZeroTileSizeDegrees = LevelZeroTileSize, LevelCount = m_iLevels, ImageExtension = ".png", CacheDirectory = strCachePath, TextureSizePixels = m_iTextureSizePixels }; m_layer = new QuadTileSet(m_hDataSet.Title, m_oWorldWindow.CurrentWorld, 0, m_hDataSet.Boundary.MaxY, m_hDataSet.Boundary.MinY, m_hDataSet.Boundary.MinX, m_hDataSet.Boundary.MaxX, true, imageStores) { AlwaysRenderBaseTiles = true, IsOn = m_IsOn, Opacity = m_bOpacity }; } return(m_layer); }
///<summary> /// Goes to the extent specified by the bounding box for the QTS layer /// or to the lat/lon for icons /// </summary> public void GetGoto() { lock (this.ParentList.ChildObjects.SyncRoot) { for (int i = 0; i < this.ParentList.ChildObjects.Count; i++) { RenderableObject ro = (RenderableObject)this.ParentList.ChildObjects[i]; if (ro.Name.Equals(name)) { if (ro is QuadTileSet) { QuadTileSet qts = (QuadTileSet)ro; DrawArgs.Camera.SetPosition((qts.North + qts.South) / 2, (qts.East + qts.West) / 2); double perpendicularViewRange = (qts.North - qts.South > qts.East - qts.West ? qts.North - qts.South : qts.East - qts.West); double altitude = qts.LayerRadius * Math.Sin(MathEngine.DegreesToRadians(perpendicularViewRange * 0.5)); DrawArgs.Camera.Altitude = altitude; break; } if (ro is Icon) { Icon ico = (Icon)ro; DrawArgs.Camera.SetPosition(ico.Latitude, ico.Longitude); DrawArgs.Camera.Altitude /= 2; break; } if (ro is ShapeFileLayer) { ShapeFileLayer slayer = (ShapeFileLayer)ro; DrawArgs.Camera.SetPosition((slayer.North + slayer.South) / 2, (slayer.East + slayer.West) / 2); double perpendicularViewRange = (slayer.North - slayer.South > slayer.East - slayer.West ? slayer.North - slayer.South : slayer.East - slayer.West); double altitude = slayer.MaxAltitude; DrawArgs.Camera.Altitude = altitude; break; } } } } }
private QuadTileSet GetQuadTileSet() { if (m_layer == null) { ImageStore[] imageStores = new ImageStore[1]; imageStores[0] = new DAPImageStore(null, m_oServer); imageStores[0].DataDirectory = null; imageStores[0].LevelZeroTileSizeDegrees = 22.5; imageStores[0].LevelCount = 10; imageStores[0].ImageExtension = ".png"; imageStores[0].CacheDirectory = GetCachePath(); imageStores[0].TextureSizePixels = 256; m_layer = new QuadTileSet(this.Title, m_oWorldWindow.CurrentWorld, 0, m_oServer.ServerExtents.MaxY, m_oServer.ServerExtents.MinY, m_oServer.ServerExtents.MinX, m_oServer.ServerExtents.MaxX, true, imageStores); m_layer.AlwaysRenderBaseTiles = true; m_layer.IsOn = m_IsOn; m_layer.Opacity = m_bOpacity; } return(m_layer); }
internal override RenderableObject GetLayer() { if (m_blnIsChanged) { ImageStore[] aImageStore = new ImageStore[1]; aImageStore[0] = new ArcIMSImageStore(m_szServiceName, m_szLayerID, m_oServerUri as ArcIMSServerUri, TileSize, m_oCultureInfo, m_dMinScale, m_dMaxScale); aImageStore[0].DataDirectory = null; aImageStore[0].LevelZeroTileSizeDegrees = LevelZeroTileSize; aImageStore[0].LevelCount = m_iLevels; aImageStore[0].ImageExtension = ".png"; aImageStore[0].CacheDirectory = GetCachePath(); m_oQuadTileSet = new QuadTileSet(m_szTreeNodeText, m_oWorldWindow.CurrentWorld, 0, Extents.North, Extents.South, Extents.West, Extents.East, true, aImageStore); m_oQuadTileSet.AlwaysRenderBaseTiles = true; m_oQuadTileSet.IsOn = m_IsOn; m_oQuadTileSet.Opacity = m_bOpacity; m_blnIsChanged = false; } return(m_oQuadTileSet); }
public override void Load() { string name = "Geocover 1990"; string description = "NASA derived global 30 meters per pixel satellite image mosaic"; //////////////////////////--------------- double north = 90.0; double south = -90.0; double west = -180.0; double east = 180.0; GeographicBoundingBox box = new GeographicBoundingBox(north, south, west, east); ///////////////////////////--------------------- string m_strDataSetName = "bmng.topo.bathy.200403"; string m_strServerUrl = "http://worldwind25.arc.nasa.gov/tile/tile.aspx"; ImageTileService m_oImageTileService = new ImageTileService(m_strDataSetName, m_strServerUrl); //////////////////////////------------------------------- decimal m_decLevelZeroTileSizeDegrees = 36.0m; int m_intNumberLevels = 20; int m_intTextureSizePixels = 256; string m_strImageFileExtension = "jpg"; string strCachePath = @"E:\项目\智岩切片工具\分块数据\DomTile";// Config.EarthSetting.CachePath + "\\bmng\\"; ImageAccessor m_oImageAccessor = new ImageAccessor(strCachePath, m_intTextureSizePixels, m_decLevelZeroTileSizeDegrees, m_intNumberLevels, m_strImageFileExtension, strCachePath, m_oImageTileService); QuadTileSet tile = new QuadTileSet(name, box, this.Viewer.CurrentWorld, 0, this.Viewer.CurrentWorld.TerrainAccessor, m_oImageAccessor, m_bOpacity, true); tile.IsVisible = true; this.Viewer.CurrentWorld.RenderLayerList.Add(tile); }
void WorldWindow_MouseUp(object sender, MouseEventArgs e) { if (e.Button != MouseButtons.Right) { return; } if (m_Form == null) { return; } if (!m_Form.Visible) { return; } if (m_Form.KeyLayer == null) { return; } QuadTileSet qts = m_Form.KeyLayer; WorldWind.Net.Wms.WmsImageStore wms = (WorldWind.Net.Wms.WmsImageStore)qts.ImageStores[0]; string requestUrl = wms.ServerGetMapUrl; string[] layerNameParts = wms.WMSLayerName.Split('&'); string layerName = layerNameParts[0]; string getMapParts = requestUrl += "?QUERY_LAYERS=" + layerName + "&SERVICE=WMS&VERSION=" + wms.Version + "&REQUEST=GetFeatureInfo&SRS=EPSG:4326&FEATURE_COUNT=10&INFO_FORMAT=text/plain&EXCEPTIONS=text/plain"; // From Servir-Viz... Angle LowerLeftX; Angle LowerLeftY; Angle UpperRightX; Angle UpperRightY; string minx, miny, maxx, maxy; char[] degreeChar = { '°' }; int mouseX = e.X; int mouseY = e.Y; int queryBoxWidth = 2 * queryBoxOffset + 1; int queryBoxHeight = 2 * queryBoxOffset + 1; int queryX = queryBoxOffset + 1; int queryY = queryBoxOffset + 1; drawArgs.WorldCamera.PickingRayIntersectionWithTerrain(mouseX - queryBoxOffset, mouseY + queryBoxOffset, out LowerLeftY, out LowerLeftX, drawArgs.CurrentWorld); drawArgs.WorldCamera.PickingRayIntersectionWithTerrain(mouseX + queryBoxOffset, mouseY - queryBoxOffset, out UpperRightY, out UpperRightX, drawArgs.CurrentWorld); //drawArgs.WorldCamera.PickingRayIntersectionWithTerrain(0, 0 + drawArgs.screenHeight, out LowerLeftY, out LowerLeftX, drawArgs.CurrentWorld); //drawArgs.WorldCamera.PickingRayIntersectionWithTerrain(drawArgs.screenWidth, 0, out UpperRightY, out UpperRightX, drawArgs.CurrentWorld); minx = LowerLeftX.ToString().Contains("NaN") ? "-180.0" : LowerLeftX.ToString().TrimEnd(degreeChar); miny = LowerLeftY.ToString().Contains("NaN") ? "-90.0" : LowerLeftY.ToString().TrimEnd(degreeChar); maxx = UpperRightX.ToString().Contains("NaN") ? "180.0" : UpperRightX.ToString().TrimEnd(degreeChar); maxy = UpperRightY.ToString().Contains("NaN") ? "90.0" : UpperRightY.ToString().TrimEnd(degreeChar); // request has to include a bbox and the requested pixel coords relative to that box... requestUrl += "&layers=" + wms.WMSLayerName; requestUrl += "&WIDTH=" + queryBoxWidth.ToString() + "&HEIGHT=" + queryBoxHeight.ToString(); requestUrl += "&BBOX=" + minx + "," + miny + "," + maxx + "," + maxy; requestUrl += "&X=" + queryX.ToString() + "&Y=" + queryY.ToString(); if (!World.Settings.WorkOffline) { WorldWind.Net.WebDownload dl = new WorldWind.Net.WebDownload(requestUrl); System.IO.FileInfo fi = new System.IO.FileInfo("GetFeatureInfo_response.txt"); dl.DownloadFile(fi.FullName); //dl.SavedFilePath = fi.FullName; //dl.BackgroundDownloadFile(GetFeatureDlComplete); if (World.Settings.UseInternalBrowser) { SplitContainer sc = (SplitContainer)drawArgs.parentControl.Parent.Parent; InternalWebBrowserPanel browser = (InternalWebBrowserPanel)sc.Panel1.Controls[0]; browser.NavigateTo(fi.FullName); } else { System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(); psi.FileName = fi.FullName; psi.Verb = "open"; psi.UseShellExecute = true; psi.CreateNoWindow = true; System.Diagnostics.Process.Start(psi); } } }