A Globe Server class that serves Globe Tiles.
Product Availability
Description
The GlobeServer component provides programmatic access to the contents of a Globe document on disk, and serves globe data tiles of the layers in the 3dd document. GlobeServer is an efficient means of serving globe optimized data for web services and Lan access by globe clients.
Interfaces
Interfaces | Description |
---|---|
IGlobeServer | Provides access to members that support Globe server operations. |
IGlobeServer2 | Provides access to the objects used by the Globe server. |
IGlobeServer3 | Provides access to the objects used by the Globe server. |
IGlobeServerObjects | Provides access to the objects used by the Globe server. |
IGlobeServerSetup | Provides access to members for initializing a Globe server. |
ILogSupport (esriSystem) | Provides access to methods for initializing an object for logging. |
IObjectActivate (esriSystem) | Provides access to methods for activating and deactivating objects. |
IObjectConstruct (esriSystem) | Provides access to methods for constructing an object. |
IRequestHandler (esriSystem) | Provides access to members that control handing of request messages. |
IRequestHandler2 (esriSystem) | Provides access to members that control handing of request messages. |
IServerObject (esriServer) | Provides access to properties of a map or geocode server object. |
IServerObjectExtensionManager (esriServer) | Provides access to members that help locate installed server object extensions. |
Remarks
GlobeServer is a coarse-grained ArcObjects component allowing users to display and query ArcGIS Globe layers bound to a GlobeServer object. GlobeServer can be used in either desktop, intranet (LAN/WAN), or internet development environments. In a server environment, GlobeServer objects can be accessed via Distributed COM (DCOM) over a TCP/IP connection (Intranet) or via SOAP/XML over an HTTP connection (Internet). In order to make GlobeServer objects available over the Internet, you will need to publish the GlobeServer object to a web catalog using the Web Service Publisher application.
In a desktop environment, GlobeServer objects can be created in-process within your application.
GlobeServer objects are run within ArcGIS Server. When running in ArcGIS Server, GlobeServer objects can be accessed via the Server API over TCP/IP (intranet), or can be accessed over HTTP using SOAP/XML and a binnary messaging protocol. The default and prefered method of communication between ArcGIS GlobeServer and ArcGlobe desktop application is via the binnary messaging protocol.
ArcGIS Desktop and ArcGIS Engine developers can also consume GlobeServer objects via the Server API. The Globeserver object always works in a stateless manner. That means, unlike MapServer objects, GlobeServer Objects are always exposed as pooled objects and you can only use them to gain access to finer grained ArcObjects. However note that you will not be able to make permanet changes as a non-pooled mode of operation is not supported by the GlobeServer Objects.
You can use GISServerConnection to connect to the GIS server, or you can obtain a reference to the ServerObjectManager through GISClient (TCP/IP connection only).
The GlobeServer coclass contains several interfaces with basic functions for displaying (IGlobeServer) and querying (IGlobeServer, IGlobeServerObjects and IGlobeServerSetup) a Globe layer.
private void ConnectToServer(string pAgSHttpOrLanName) //pass the ArcGIS Server name as a string. It can be either a lan or web service
{
//Create the ArcGIS connection...
IAGSServerConnectionName pAGSServerConnectionName = new AGSServerConnectionNameClass();
IPropertySet2 pProps = new PropertySetClass();
//Check the Server types (LAN or http).
if (pAgSHttpOrLanName.Text.StartsWith("http://"))
//case for URL (webService)
{
pProps.SetProperty("URL",pAgSHttpOrLanName);
}
else
{
//case for Lan
pProps.SetProperty("CONNECTIONTYPE", esriAGSConnectionType.esriAGSConnectionTypeLAN);
pProps.SetProperty("MACHINE",pAgSHttpOrLanName);
}
//set the AGSServerConnection name...
pAGSServerConnectionName.ConnectionProperties = pProps;
//use Iname to get access to the server Objectnames..
IName pName;
pName= (IName) pAGSServerConnectionName;
//open the connection
IAGSServerConnection pAGSServerConnection;
pAGSServerConnection= (IAGSServerConnection) pName.Open();
m_ipNames = pAGSServerConnection.ServerObjectNames;
m_pAGSName=(IAGSServerObjectName) m_ipNames.Next();
//loop thru the IAGSServerObjectName
while (m_pAGSName!=null)
{
System.Diagnostics.Debug.WriteLine(m_pAGSName.Name);
m_pAGSName=(IAGSServerObjectName) m_ipNames.Next();
}