private NltTerrainAccessor getTerrainAccessorFromXML(WorldXmlDescriptor.TerrainAccessor curTerrainAccessorType) { double east = curTerrainAccessorType.LatLonBoundingBox.East.Value.DoubleValue(); double west = curTerrainAccessorType.LatLonBoundingBox.West.Value.DoubleValue(); double north = curTerrainAccessorType.LatLonBoundingBox.North.Value.DoubleValue(); double south = curTerrainAccessorType.LatLonBoundingBox.South.Value.DoubleValue(); NltTerrainAccessor[] subsets = null; if (curTerrainAccessorType.HasHigherResolutionSubsets()) { subsets = new NltTerrainAccessor[curTerrainAccessorType.HigherResolutionSubsetsCount]; for (int i = 0; i < curTerrainAccessorType.HigherResolutionSubsetsCount; i++) { subsets[i] = this.getTerrainAccessorFromXML(curTerrainAccessorType.GetHigherResolutionSubsetsAt(i)); } } return(null); }
private void InitWorld() { Vector3 v = SMath.SphericalToCartesian(startlatitude, startlongitude, World.EarthRadius); v.Z = (float)startAltitude * 1.0f; Quaternion4d q = Quaternion4d.EulerToQuaternion(SMath.DegreesToRadians(startlongitude), SMath.DegreesToRadians(startlatitude), 0); Quaternion qz = Quaternion.RotationAxis(new Vector3(0, 0, 1), (float)SMath.DegreesToRadians(startlatitude)); //q.W = qz.W; //q.X = qz.X; //q.Y = qz.Y; //q.Z = qz.Z; //TerrainTileService terrainTileService = new TerrainTileService("http://worldwind25.arc.nasa.gov/tile/tile.aspx", "100", 20, 150, "bil", 8, Path.Combine(EarthSetting.CachePath, "Earth\\TerrainAccessor\\SRTM")); TerrainTileService terrainTileService = new TerrainTileService("http://worldwind25.arc.nasa.gov/tile/tile.aspx", "100", 1, 150, "bil", 6, @"D:\空间数据\重庆H48\bil29107"); TerrainAccessor terrainAccessor = new NltTerrainAccessor("Earth", -180, -90, 180, 90, terrainTileService, null); World _world = new World("Earth", new Vector3d(0, 0, 0), q, this.worldViewer1, terrainAccessor); this.worldViewer1.CurrentWorld = _world; this.worldViewer1.ResetSize(); }