The Skyline software platform provides a complete set of mature commercial solutions from data production, editing to network release. Regardless of the single-host environment or network environment, users can customize their functions as needed to establish their own three-dimensional geographic information system. This article describes the software architecture of skyline from the workflow of skyline software.
I. Data production ---- TerraBuilder
We know that to build a true three-dimensional geographic information system, we must first have DEM and remote sensing image data, which are the basis for creating a three-dimensional scenario. The role of TerraBuilder In the skyline software family is to use DEM and remote sensing image data to build their own 3D scenarios.
TerraBuilder supports DEM and image data in a large number of formats, and supports simultaneous operations on multiple CPU servers or multiple machines (TerraBuilder Fuser module ).
TerraBuilder has two ways to generate skyline's own 3D scene data: one is MPT data, which is a 3D scene file calculated by TerraBuilder (the suffix is. mpt); another method is to calculate the DEM and image data in real time without calculating the mpt file in advance (DirectConnect module, combined with TerraGate ), real-time release to the browser (TerraExplorer Pro or TerraExplorer Viewer), the data at this time is. tbp suffix. Later, this real-time publishing mode can avoid a long time-consuming MPT file calculation and implement fast data release and updates.
2. Data editing ---- TerraExplorer Pro
After creating an MPT or tbp file in TerraBuilder, you can open the 3D terrain data in the TerraExplorer Pro software, and then perform various edits, this includes adding GIS topic layers, plotting, and 3D models to create a more realistic and rich 3D virtual environment. After various processing and editing tasks of the TerraExplorer Pro, the Basic kit is stored to generate. A file with the FLY suffix. It stores the 3D terrain information of the Region (note that it is not the terrain data) and various object information (two-dimensional and three-dimensional) created in the terrain scenario ). The FLY file is similar to the mxd file of ArcGIS. It can be opened locally by the pro or viewer, or published through IIS for the client to open.
3. Data Network Publishing-TerraGate for 3D terrain data and Streaming Feature Server for Vector Data)
TerraGate is a powerful terrain transfer server that can simultaneously transmit 3D terrain data (MPT files or real-time 3D terrain data formed by DirectConnect) to thousands of customers ). The TerraGate operation is based on the seamless and variable bandwidth of the network, and is not affected by the latent and interrupted connectivity. When the network speed is slow and the terrain data transmission is poor, the initial image is received by the user in the form of low resolution, and the user can view and display the 3D, instead of waiting until all the data is transmitted.
SFS is skyline's own vector data publishing tool, namely, WFS built by skyline itself. It can read various data sources, including Oracle Spatial, ArcSDE, and Shape file data, and efficiently transmit vector data through the cache mechanism.
Iv. Secondary Development
The TerraExplorer API provides a powerful set of interfaces for integrating TerraExplorer, TerraExplorer Pro, and user-defined applications. It also provides a set of ActiveX controls, 3D windows, information trees, and navigation charts can be embedded in a custom visual interface as control objects. Skyline development only has one component class entry, that is, TerraExplorerClass. After TerraExplorerClass is instantiated, all Interfaces of other TerraExplorer CoClass Interfaces implement the TerraExplorerClass class, while various objects in skyline (in ITerraExplorerObject5 Interface, for example, ITerrainPolyline5, ITerrainLabel5, and ITerrainBuilding5 are all created by the IObjectManager interface in CoClass Interfaces.
// Interface definition in skyline
Private TerraExplorer objTerraExplorer;
Private ITerraExplorer51 objITerraExplorer;
Private IMenu objIMenu;
Private IInformationTree5 objIInformationTree5;
Private ISnapShot2 objISnapShot;
Private IPlane5 objIPlane5;
Private IRender5 objIRender5;
Private IObjectManager5 objIObjectManager5;
Private ICoordSys3 objICoordSys3;
Private ITerrain5 objITerrain5;
Private IContainer2 objIContainer2;
Private ILayer5 objILayer5;
/// <Summary>
/// Initialize objects and events
/// </Summary>
Private void InitializeTerraExplorer ()
{
ObjTerraExplorer = new TerraExplorerClass ();
ObjITerraExplorer = objTerraExplorer as ITerraExplorer51;
ObjIMenu = objTerraExplorer as IMenu;
ObjICoordSys3 = objTerraExplorer as ICoordSys3;
ObjIObjectManager5 = objTerraExplorer as IObjectManager5;
ObjIInformationTree5 = objTerraExplorer as IInformationTree5;
ObjIPlane5 = objTerraExplorer as IPlane5;
ObjIRender5 = objTerraExplorer as IRender5;
ObjISnapShot = objTerraExplorer as ISnapShot2;
ObjITerrain5 = objTerraExplorer as ITerrain5;
ObjIContainer2 = objTerraExplorer as IContainer2;
ObjILayer5 = objTerraExplorer as ILayer5;
ObjTerraExplorer. OnLButtonDown + = new _ iterraw.erevents5_onlbuttondowneventhandler (objterraw.er_onlbuttondown );
ObjTerraExplorer. OnObjectAction + = new _ ITerraExplorerEvents5_OnObjectActionEventHandler (objTerraExplorer_OnObjectAction );
}
// Load data
ObjITerraExplorer. Load (@ "D: \ Default. fly ");
The use of each interface is not described in this article.
This article from the CSDN blog, reproduced please indicate the source: http://blog.csdn.net/westdusk/archive/2010/05/22/5617196.aspx