GIS - Application Specific Collaboration Protocol

1. Overview

The GIS application may run as well in single user mode as in collaborative mode. In collaborative mode there may be several GIS application instances in one GIS session. The GIS operates in master - client architecture.

In each GIS session there is one distinguished GIS application which behaves as a master for the rest. Only user operating the master GIS can control the application behavior. This user may choose the number of windows which display information, actual contents displayed in these windows, and may change the viewer camera parameters (position, orientation, etc) by moving and rotating the observation viewpoint.

The rest of participants behave as clients. They can only observe reproduced behavior of the master GIS. These applications display the same windows with the same contents and show the same views using the same camera parameters.

Data are loaded separately to all instances of GIS application (master and clients) by the use of an HTTP server. Only control messages are exchanged among GIS applications and they do not include the actual terrain data.

The GIS application has extended possibilities of displaying additional animated objects. These objects are also controlled by the use of the collaboration system. It is assumed that during demonstration control messages describing animated objects will come from the Simulation Engine.

2. Messages

2.1. Camera position (CAMP)

Meaning

The position of the camera in the master GIS has been changed. This may be a result of simply moving the viewpoint or loading the new world to the viewer.

Source

Master GIS

Destination

Clients GIS

Actions

Receiver GIS moves its camera to the new position and redisplays screen.

Structure

Length: 44 bytes

Types: 11 floats

Fields:

[FLOAT] position X (meters)

[FLOAT] position Y (meters)

[FLOAT] position Z (meters)

[FLOAT] rotation angle (Radians)

[FLOAT] rotation axis X

[FLOAT] rotation axis Y

[FLOAT] rotation axis Z

[FLOAT] aspect Ratio Value

[FLOAT] near Distance Value

[FLOAT] far Distance Value

[FLOAT] focal Distance Value

2.2. New world (NURL)

Meaning

The new virtual world (URL) has been loaded to the master viewer. This message should be followed by a CAMP message to position the camera in the new world.

Source

Master GIS

Destination

Clients GIS

Actions

Receiver loads new virtual world from specified URL and redisplays the screen.

Structure

Length: 512 bytes

Types: string

Fields:

[STRING512] URL

2.3. Window contents (WCON)

Meaning

The number of GIS windows, their contents or display options have been changed in the master GIS. The new setup for all the windows is contained in the message. The maximum number of 4 windows is assumed. Display options currently include possibility of setting camera for horizontal (fly) or vertical (bird's eye) view of the terrain and visualization of images (satellite images, maps, weather) on 3D or 2D surface.

Source

Master GIS

Destination

Client GIS

Actions

The number, contents, and display options of the client windows is changed to follow the changes in the master application.

Structure

Length: 12 bytes

Types: 12 bytes

Fields: 4 sequences corresponding to 4 possible GIS windows. Each sequence consists of 3 bytes.

[BYTE] Contents - 0 - window not shown, 1 - satellite images, 2 - topograhic maps, 3 - weather info

[BYTE] Options - 1st bit - position horizontal or vertical, 2nd bit - 2D or 3D visualization

[BYTE] Spare - currently not used

2.4. Add object (ADOB)

Meaning

A new object should be read into the scene. The URL for this object is specified. It can be either animated or non-animated object. Message contains a short textual description of the object to be displayed.

Source

Master GIS, Simulation Engine

Destination

Client GIS, Master GIS

Actions

All receivers read-in the new object from the given URL. Master GIS notifies the user with the message. The user decides whether or not to display this object and in which window and sends appropriate SHOB message to the clients.

Structure

Length: 684 bytes

Types: string, string, 10 floats, integer

Fields:

[STRING512] - message

[STRING128] - URL

[FLOAT][FLOAT][FLOAT] - position X Y Z

[FLOAT][FLOAT][FLOAT][FLOAT] - orientation X Y X Angle

[FLOAT][FLOAT][FLOAT] - scale factor X Y Z

[INT] - object id

2.5. Synchronize animation (SYNA)

Meaning

Message used to synchronize animated objects. One message concerns one animated object. It defines its new position, orientation, rotation, velocity, and direction.

Source

Simulation Engine

Destination

Master GIS, Client GIS

Actions

Appropriate animated object data is updated and animation is continued.

Structure

Length: 72 bytes

Types: integer, 17 floats

Fields:

[INT] Object id

[FLOAT][FLOAT][FLOAT] New object position

[FLOAT][FLOAT][FLOAT][FLOAT] New object orientation

[FLOAT][FLOAT][FLOAT][FLOAT] New object rotation (change of orientation in time rad/s)

[FLOAT][FLOAT][FLOAT] New object velocity

[FLOAT][FLOAT][FLOAT] New direction of object movement

2.6. Show objects (SHOB)

Meaning

Informs which animated objects are displayed in which windows.

Source

Master GIS

Destination

Client GIS

Actions

Receiver starts displaying given animated object in given window.

Structure

Length: 8 bytes

Types: 2 integers

Fields:

[INT] Object id

[INT} Window number