//加载缓存 private void AddCache_ToolStripMenuItem_Click(object sender, EventArgs e) { this.openFileDialog.Title = "打开三维缓存文件"; this.openFileDialog.Filter = "所有支持的三维缓存文件(*.sci, *.scv, *.scp,*.sci3d, *.sct, *.sit,*.gci,*.scm)|*.sci;*.scv;*.scp;*.sci3d;*.sct;*.sit;*.gci;*.scm"; this.openFileDialog.InitialDirectory = Directory.GetCurrentDirectory(); if (this.openFileDialog.ShowDialog() == DialogResult.OK) { String fileName = this.openFileDialog.FileName; String extention = System.IO.Path.GetExtension(fileName); Layer3D layer3D = null; Layer3Ds layer3ds = this.m_sceneControl.Scene.Layers; switch (extention) { case ".sci": case ".sci3d": case ".sit": case ".gci": { layer3D = layer3ds.Add(fileName, Layer3DType.ImageFile, true); layer3D.UpdateData(); this.m_sceneControl.Scene.Refresh(); this.m_sceneControl.Scene.EnsureVisible(layer3D.Bounds); break; } case ".scv": { layer3D = layer3ds.Add(fileName, Layer3DType.VectorFile, true); //layer3D.UpdateData(); this.m_sceneControl.Scene.Refresh(); this.m_sceneControl.Scene.EnsureVisible(layer3D.Bounds); break; } case ".scp": { layer3D = layer3ds.Add(fileName, Layer3DType.OSGB, true); this.m_sceneControl.Scene.Refresh(); //this.m_sceneControl.Scene.EnsureVisible(layer3D.Bounds); if (layer3D != null) { m_layerOSGB = layer3D as Layer3DOSGBFile; } break; } case ".sct": { TerrainLayer terrainlayer3D = this.m_sceneControl.Scene.TerrainLayers.Add(fileName, true); this.m_sceneControl.Scene.Refresh(); this.m_sceneControl.Scene.EnsureVisible(terrainlayer3D.Bounds); break; } } } }
//将查询结果显示到场景中 private Layer3D AddResultToScene(DatasetVector dataset, Color color) { Layer3Ds layer3Ds = m_sceneControl.Scene.Layers; //设置图层风格为依模型 Layer3DSettingVector settingVector = new Layer3DSettingVector(); GeoStyle3D style3D = new GeoStyle3D(); style3D.AltitudeMode = AltitudeMode.ClampToObject; style3D.FillForeColor = color; settingVector.Style = style3D; //将数据添加到场景中 Layer3DDataset layerDataset = layer3Ds.Add(dataset, settingVector, true); layerDataset.UpdateData(); m_sceneControl.Scene.EnsureVisible(layerDataset); return(layerDataset); }
//将原始面数据集加载到场景中 private Layer3DDataset AddSrcRegionToScene(DatasetVector dataset) { Layer3Ds layer3Ds = m_sceneControl.Scene.Layers; //设置图层风格为依模型 Layer3DSettingVector settingVector = new Layer3DSettingVector(); GeoStyle3D style3D = new GeoStyle3D(); style3D.AltitudeMode = AltitudeMode.RelativeToGround; style3D.BottomAltitude = 1; style3D.FillForeColor = Color.Blue; settingVector.Style = style3D; //将数据添加到场景中 Layer3DDataset layerDataset = layer3Ds.Add(dataset, settingVector, true, dataset.Name); layerDataset.UpdateData(); m_sceneControl.Scene.EnsureVisible(layerDataset); m_sceneControl.Scene.Refresh(); return(layerDataset); }
public void Layer3D_Click() { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Title = "打开三维缓存文件"; openFileDialog.Filter = "所有支持的三维缓存文件(*.sci, *.scv, *.scp,*.sci3d, *.sct, *.sit,*.gci,*.scm)|*.sci;*.scv;*.scp;*.sci3d;*.sct;*.sit;*.gci;*.scm"; if (openFileDialog.ShowDialog() == DialogResult.OK) { string fileName = openFileDialog.FileName; String extention = System.IO.Path.GetExtension(fileName); Layer3D layer3D = null; Layer3Ds layer3ds = this.m_SceneControl.Scene.Layers; switch (extention) { case ".sci": case ".sci3d": case ".sit": case ".gci": { layer3D = layer3ds.Add(fileName, Layer3DType.ImageFile, true); layer3D.UpdateData(); this.m_SceneControl.Scene.Refresh(); this.m_SceneControl.Scene.EnsureVisible(layer3D.Bounds); break; } case ".scv": { layer3D = layer3ds.Add(fileName, Layer3DType.VectorFile, true); //layer3D.UpdateData(); this.m_SceneControl.Scene.Refresh(); this.m_SceneControl.Scene.EnsureVisible(layer3D.Bounds); break; } case ".scp": { layer3D = layer3ds.Add(fileName, Layer3DType.OSGB, true); if (layer3D != null) { m_LayerOSGB = layer3D as Layer3DOSGBFile; this.m_SceneControl.Scene.EnsureVisible(m_LayerOSGB.Bounds); this.m_SceneControl.Scene.Refresh(); } break; } case ".sct": { TerrainLayer terrainlayer3D = this.m_SceneControl.Scene.TerrainLayers.Add(fileName, true); this.m_SceneControl.Scene.Refresh(); this.m_SceneControl.Scene.EnsureVisible(terrainlayer3D.Bounds); break; } } } }