Library

Volume 8, Number 3, November 2005

MAPCHAT: A System for Online Capture and Dissemination of Tactical Geographic Information

    Abstract

    MAPCHAT is a system for on-line capture and dissemination of tactical and terrain information among geographically separated users. It has a distributed, multi-server, multi-client architecture that enables the users to capture and communicate spatial and non-spatial data, in the form of overlays, to other users in the LAN, or WAN, or to mobile users in field locations, connected through a wireless interface. The MAPCHAT system consists of Windows PCs, loaded with MAPCHAT software, and a back-end repository of maps and overlays (Windows PC with Oracle Database Server), all connected via a LAN, WAN or wirelessly using GPS-fitted receivers for mobile subscribers. MAPCHAT works on the principle of normal Chat software with one significant difference: in addition to the textual chat messages, it handles geographic data encoded as textual data in XML format. MAPCHAT software consists of two components—the server and the client. The server component is a normal Chat server implemented using TCP/IP socket programming in Java2. The MAPCHAT client is a powerful GIS tool, capable of display and analysis of geographic data in various formats, with an added XML parser and a communication module.

    Introduction

    MAPCHAT is a system for real-time exchange of geographic information. It has a distributed, multi-server, multi-client architecture that supports interactive communication of spatial and non-spatial data across geographically separated users in field locations (Figure 1). MAPCHAT with a wireless interface enables mobile subscribers, from the field locations, to converse with headquarters (HQs) and other mobile subscribers, by exchanging textual messages and geographic information as overlays. With an integrated GPS receiver, MAPCHAT is a powerful tool for the capture and dissemination of terrain and tactical changes in real-time scenarios.

    Real-time exchange of geographic information using MAPCHAT
    Figure 1. Real-time exchange of geographic information using MAPCHAT

    MAPCHAT features

    The following points provide a brief overview of the features of MAPCHAT:

    • Display and analysis of raster maps, vector maps, and user-created layers.
    • Provision for creation of editable map layers using application specific symbol library.
    • Facility to send and receive tactical and terrain data in the form of overlays across geographically separated users, in real time.
    • Supports communication of geographic information among mobile subscribers using wireless interface.
    • Supports normal chatting —exchange of text messages.
    • Capturing terrain details automatically in surveyor mode using the GPS receiver and real-time exchange of this data with other users.
    • Dual mode of data transmission.
    • Spatial data mode—recommended for clients connected by wireless medium.
    • Spatial + non-spatial—normal mode of data exchange.

    Details of working of MAPCHAT

    MAPCHAT can be used as an effective tool for viewing and analysis of map data (vector or raster) and user-created layers over the maps, known as overlays.

    It supports all types of normal GIS functionalities such as zoom, pan, measure distance/perimeter/area, thematic layer-wise display, through highly user-friendly interfaces.

    Users can perform spatial/non-spatial analysis on the displayed data through spatial/attribute Query interfaces. For example, a user can search for all the hospitals located in a city, or for all class-A roads leading to a given location.

    Users can create layers over the existing map layers or modify the existing editable layers, using the rich set of symbols provided with MAPCHAT. Such editable layers created over the map are known as overlays (Figure 2). A plan can be prepared or observed activities and terrain changes can be marked using the user-friendly marking interfaces. The user can also annotate marked features to make it more readable.

    Snapshot of a sample deployment plan overlay created in the MAPCHAT application.
    Figure 2. Snapshot of a sample deployment plan overlay created in the MAPCHAT application.

    Connection to the MAPCHAT server through a Graphic Conversation interface allows data to be shared with other users. The data that can be shared takes the form of text messages or map overlays that have been prepared collaboratively. These can be transmitted easily with a single mouse-click.

    The user can change the plan received from another client and send back the modified plan in real time. This form of data flow forms a real-time information capture and dissemination system. That is, a user located at HQ will be receiving the tactical data with spatial and non-spatial details continuously from the clients, from other stations, or from mobile subscribers in the field. Finally, the data gathered from different sources will undergo collective filtering across different users at different levels of a domain-specific user hierarchy. This results in a knowledge base that is used for further planning.

    Encoding of geographic information in textual form

    MAPCHAT works on the principle of normal Chat software with only a difference in that, in addition to the textual chat messages, it handles geographic data, encoded as textual data in XML [1] format. Using MAPCHAT, a user can send and receive geographic data consisting of both spatial and non-spatial information.

    In this context, the spatial data of a geographic feature such as a road is the set of geometric properties that characterize that feature. Thus, spatial data of a feature includes:

    • Type of geometry, by which it is plotted, normally, point, line polygon or text. For example, a road is a line feature. Examples of point features are hut, temple, hospital, and so on. A forest or a lake or a cultivation area can be represented as an area/polygon feature.
    • A set of coordinates by which the feature is plotted. A feature can be described by a set of coordinates in the form of:
    • A series of latitude/longitude values. (Primary coordinate system).
    • A series of easting/northing (EN) values. (Secondary coordinate system).
    • A series of Grid Reference (GR) values. GR is an indexing technique based on EN, which normally consists of map number and a six-digit GR made up from three digits from the Easting and three from the Northing.
    • Symbology of the feature, which includes colour, width, pattern, and so on.

    Non-spatial data of a geographic feature is the attribute information—that is, any data other than the spatial details. Thus non-spatial data of a road includes its Name, Class, From Location (that is, start location), To Location (that is, end location), Is All-Weather, and so on.

    Thus the spatial data of a feature tells where it is located and how it can be represented symbolically, while non-spatial/attribute data tells what it is.

    XML encoding of geographic features

    Geographic features can be represented textually. The first option is to use Open GIS Consortium’s Geography Mark-up Language (GML) [2]. GML is a specification for encoding geographic information using XML terminology, which is emerging as a global standard for exchanging GIS data across various GIS packages. The second option is to use a proprietary encoding technique using XML.

    MAPCHAT is meant for the exchange of tactical and terrain information in the form of user-created map layers, known as overlays. Textual encoding of such overlays can be easily carried out using a simple XML encoding scheme. (MAPCHAT was originally developed as a geo-spatial data server to a tactical Operational Information System (OIS), which is a non-GIS system, and does not understand GML). Hence, MAPCHAT uses its own proprietary encoding technique for coding GIS data in XML format that will now be described. A sample Document Type Definition (DTD), upon which the encoding is carried out, is shown below.

    <?xml version="1.0" ?>
    <!DOCTYPE	GISData[
    <!ELEMENT	GISDATA ( overlay+ )>
    <!ATTLIST	GISDATA
    OPID  	CDATA	#REQUIRED >
    <!ELEMENT	OVERLAY ( DISPLAYSETTINGS, ENTITYINFO* ) >
    <!ATTLIST 	OVERLAY
    NAME	CDATA	#REQUIRED
    mode	(RO | Rw)	 “RW”
    USERNAME   	CDATA	#REQUIRED
    CREATIONTIME	CDATA	#REQUIRED >
    <!ELEMENT 	DISPLAYSETTINGS ( MAPNO+, BACKGNDOVL*, MAPLAYER* , VIEWPORT! )>
    <!ELEMENT 	MAPNO ( #PCDATA ) >
    <!ELEMENT 	BACKGNDOVL ( #PCDATA ) >
    <!ELEMENT 	MAPLAYER ( #PCDATA ) >
    <!ELEMENT 	VIEWPORT ( EMPTY ) >
    <!ATTLIST	VIEWPORT
    ZOOMLEVEL	CDATA	#REQUIRED
    CENTREPOINT	CDATA	#REQUIRED >
    <!ELEMENT 	ENTITYINFO ( GEOMETRY, ATTRIBUTE* )>
    <!ATTLIST	ENTITYINFO
    NAME		CDATA	#REQUIRED>
    <!ELEMENT 	GEOMETRY (  (POINT | LINE | CIRCLE  | POLYGON |  text) *  ) >
    <!ELEMENT 	POINT ( GR ) >
    <!attlist		point
    symbol	 	cdata	#required	 	size		cdata	#implied			color 		cdata 	#implied			orientation	cdata	#implied>
    <!ELEMENT 		LINE ( GR+)>
    <!attlist		LINE
    forecolor	cdata 	#implied
    backcolor	cdata 	#implied
    width		cdata	#implied
    STYLE		cdata 	#implied >
    <!ELEMENT 		CIRCLE ( GR )>
    <!attlist 		circle
    radius		cdata	#required
    width		cdata	#implied
    forecolor	cdata 	#implied
    backcolor	cdata 	#implied
    FILLSTYLE	cdata	#implied>
    <!ELEMENT 		POLYGON ( GR+ )>
    <!attlist		POLYGON
    width		cdata	#implied
    forecolor	cdata 	#implied
    backcolor	cdata 	#implied
    FILLSTYLE	cdata	#implied >
    <!element 		text ( GR ) >
    <!attlist		text
    data		cdata	#required
    font		cdata	#implied
    size		cdata	#implied
    color		cdata	#implied
    orientation	cdata	#implied >
    <!ELEMENT 		GR ( empty )>
    <!attlist		gr
    map		cdata	#required
    gr6dig		cdata	#required >
    <!ELEMENT 		ATTRIBUTE ( empty )>
    <!attlist		ATTRIBUTE
    name	cdata	#required
    value	cdata	#implied >
    ]>

    Explanation of DTD

    GISDATA: Document Type is GISDATA. GISDATA contains one or more OVERLAY tags. Attribute of GISDATA OPID represents the Operation ID, which specifies the purpose of the overlay.

    OVERLA: contains the overlay name, details of geographic features contained in it and the Display Settings details and other metadata such as the user who created the overlay, creation date and mode of display—read and write or read only.

    DISPLAYSETTINGS: This tag specifies the display settings and background information of the overlay like background maps and overlays, active map layer details and View port details.

    MAPNO: the map number.

    BACKGNDOVL: the name of the background overlay.

    VIEWPORT: tag describes the view port setting—zoom level and the map view centre.

    ENTITYINFO: tag is to describe the details of a geographic feature—its name, geometric details, and attribute (non-spatial) data.

    GEOMETRY: describes the geometric properties of the feature as point, line, circle, polygon or text geometry.

    POINT: describes the properties of a point feature like Location as Grid Reference, Name of the Symbol to be displayed, size, colour, orientation, and so on.

    LINE: describes the properties of a line feature using a set of Grid References, colour, width, style, and so on.

    CIRCLE: describes the properties of a circular area feature using a centre Grid Reference, radius, colour, width, fill style, and so on.

    POLYGON: describes the properties of an area feature using a set of Grid References, colour, width, fill style, and so on.

    TEXT: specifies the properties of a Text feature like text data to be displayed, size, colour, font, orientation, and so on.

    ATTRIBUTE: tag is to define an attribute with its name and value.

    Parsing and encoding is performed using a simple validating parser. Even though any geographic feature can be encoded using this technique, MAPCHAT does not handle exchanging of map data; rather, the data exchanged contains a reference to the maps, over which the overlay is created. It supports sharing of tactical and terrain data in the form of user-created layers, called Overlays. An overlay is any user-defined/editable layer created over the map. An overlay is created by placing the symbols, from the symbol library provided, and annotating text data over map. MAPCHAT exchanges geographic information as overlays. An overlay has a name and metadata (such as the user who created the overlay, creation time, and so on) and contains a set of geographic features.

    Some examples

    Some of the features encoded in the above format will be examined as an example. A road feature can be encoded as follows.
    <ENTITYINFO NAME = “ROAD”>
    <GEOMETRY>
    <LINE FORECOLOR = “RED” WIDTH = “2”	>
    <GR  MAP = “43N10” GR6DIG = “324675” > </GR>
    <GR  MAP = “43N10” GR6DIG = “434634” > </GR>
    <GR  MAP = “43N10” GR6DIG = “401765” > </GR>
    <GR  MAP = “43N10” GR6DIG = “451781” > </GR>
    <GR  MAP = “43N10” GR6DIG = “501600” > </GR>
    ……………………….
    <GR  MAP = “43N11” GR6DIG = “001220” > </GR>
    </LINE>
    </GEOMETRY>
    <ATTRIBUTE 	 NAME  = “ROAD_NAME”
    VALUE =  “NH47” />
    <ATTRIBUTE	 NAME  = “ROAD_FROM”
    VALUE =  “FRANSHAT” />
    <ATTRIBUTE 	NAME  = “ROAD_TO”
    VALUE =  “SAIGAR” />
    <ATTRIBUTE	 NAME  = “ROAD_CLASS”
    VALUE =  “A” />
    ………………………..
    <ATTRIBUTE	 NAME  = “ALL_WEATHER”
    VALUE =  “YES” />
    </ENTITYINFO>
    Similarly, any feature can be encoded using the same technique. Another example from a military specific symbol library is the encoding of a battalion deployment feature, an area entity.
    <ENTITYINFO  NAME  = “BATTALION”>
    <GEOMETRY>
    <POLYGON  FORECOLOR =“BLUE”         WIDTH =  “2” >
    <GR  MAP = “44J6” GR6DIG =“400543” > </GR>
    <GR  MAP = “44J6” GR6DIG =“434501” > </GR>
    <GR  MAP = “44J6” GR6DIG =“492552” > </GR>
    <GR  MAP = “44J6” GR6DIG =“561423” > </GR>
    <GR  MAP = “44J6” GR6DIG =“501600” > </GR>
    ……………………….
    <GR  MAP = “44J6” GR6DIG =“004357” > </GR>
    </POLYGON>
    </GEOMETRY>
    <ATTRIBUTE NAME  = “BN_NAME”
    VALUE =  “11 MAHAR” />
    <ATTRIBUTE NAME  = “BN_LOC_NAME”  		VALUE =  “GANGANAGAR” />
    <ATTRIBUTE NAME  = “BDE_NAME”
    VALUE =  “123 INFBDE” />
    <ATTRIBUTE NAME  = “COMMANDER”  		VALUE =  “A Singh” />
    ………………………..
    <ATTRIBUTE NAME  = “TASK”  			VALUE =  “CounterAttack” />
    ………………………..
    </ENTITYINFO>

    MAPCHAT architecture

    Sending information using MAPCHAT involves the following steps (Figure 3).

    Flow of data during overlay data exchange.
    Figure 3. Flow of data during overlay data exchange.
    • The information, tactical/terrain overlay, displayed in the MAPCHAT Client, is converted to Textual data, by the XML Parser module.
    • The textual overlay data is handed over to the communication module.
    • Communication module sends the data, using Send Data function, to the MAPCHAT server.
    • MAPCHAT server sends the data received, to other users specified by the Sender.

    On receiving information from the MAPCHAT Server,

    • The Receive Data function in the communication receives the information from the MAPCHAT Server. Received overlay data encoded in XML format, is handed over to the Parser module.
    • Parser module parses the textual data and invokes functions of GIS modules to generate and display the overlay.
    • GIS Modules retrieve the maps and background overlays from the back-end data base. Then generate and display the tactical information received.

    MAPCHAT design and implementation

    MAPCHAT client

    The MAPCHAT Client (Figure 4) consists of three major components.

    MAPCHAT Architecture.
    Figure 4. MAPCHAT Architecture.
    • GIS Functional Module. This forms the core of MAPCHAT and is a powerful GIS tool with the following functionalities:
    • Display of maps (raster and vector). MAPCHAT supports various map data formats like, DGN, DGN + Oracle Dump, DVD, DTED, TIFF, and so on. Display functions include Zoom, Pan, Rotate, and so on.
    • Creation and display of user created layers, called Overlays. MAPCHAT supports creation of user defined/editable layers over the maps. A rich set of application specific Symbol Library will be provided. User-friendly marking tools to place symbols, to perform textual annotation is available. Symbol editing facility enables the user to move, reshape or resize the Symbols plotted over the maps.
    • Analysis of maps and overlays. This includes viewing the attribute data (non-spatial data) of terrain/tactical features. Spatial and non-spatial query facility. Provision to measure length, perimeter and area of features is available in MAPCHAT.

    The MAPCHAT Client is developed using component-based technology. It is built upon a commercial GIS product that has been customised to suit the needs of MAPCHAT. It is implemented in Microsoft Visual Basic 6.0.

    • XML Parser Module. This is a simple validating XML parser. This acts as a data converter, which translates Overlays in the original form (Microsoft Access format) into xml data and vice-versa. Implemented in VB 6.0.
    • A Communication module. This module contains two major functions SendData (to send the information to the Server) and ReceiveData (to receive the information from the server) and is implemented using Win Sck programming in Visual Basic. TCP/IP sockets are used for data communication. MAPCHAT uses, although this can be changed by the user.

    MAPCHAT server

    The MAPCHAT Server (Figure 5) is multi-threaded server application capable of handling multiple clients. It is implemented using TCP/IP Socket programming [3] in Java 2.

    Dynamic Object Model showing the interaction between MAPCHAT Server Components.
    Figure 5. Dynamic Object Model showing the interaction between MAPCHAT Server Components.

    The following are the major server classes:

    • ChatServer.class—the main module, which waits for client requests and spawns a new Client Handler thread for each client. It also spawns Server Client thread to communicate with other servers.
    • ClientHandler.class—performs actual conversation with clients (using a simple protocol).
    • ClientDetails.class—keeps track of current user records.
    • UserPassword.class—authenticates clients.

    Wireless interface to MAPCHAT

    For Mobile users, to exchange information using MAPCHAT, they should be connected to the network using a wireless interface. The capability of the system obviously depends upon the characteristics of the wireless Interface like bandwidth, frequency of operation, range, and so on. Normally, it will operate in a very low bandwidth compared with a connected system. MAPCHAT has got a special mode of data transfer for mobile users. The aim is to reduce the size of data to be transmitted. This is achieved through the Spatial Data mode of MAPCHAT. In this mode, MAPCHAT sends the spatial/geometric data, with essential non-spatial/attribute data, of the geographic features. A significant reduction in data can be achieved through this method because the major portion of geographic data is non-spatial.

    The working principle of MAPCHAT in this mode is exactly the same as that in a wired medium—the only difference is the medium of communication is wireless. Usually a Message Transfer Unit together with a radio and antenna forms the wireless interface. For mobile users, all the equipment is mounted in the vehicles in which they are travelling. A user, travelling through field locations, can now converse with users in HQs and other mobile users using MAPCHAT in real time. Field observations can be marked on Overlays using the symbols and annotation facility provided by MAPCHAT and enable HQ to be updated with the current situation by exchanging this data with HQ users. Commands from HQ or from other users at a higher level in the hierarchy will be received as plans using overlays prepared in MAPCHAT. This type of data, with complete tactical details marked precisely over the map; will very much help the user to accomplish his task more easily than using voice- or text-based messages.

    Users in HQ will be updated simultaneously by mobile users from different locations in the field. This will provide a clear picture of what is happening at that instant and enable commanders to be updated with a knowledge base derived from filtered data. In a similar way, higher-level users can communicate back to the field users using MAPCHAT, with the same basic principle—exchange of tactical and terrain data in the form of editable layers over maps (Figure 6).

    Flow of Tactical/Terrain information in MAPCHAT.
    Figure 6. Flow of Tactical/Terrain information in MAPCHAT.

    MAPCHAT with integrated GPS receiver

    The functionality of MAPCHAT can be greatly enhanced by integrating it with GPS [4] receivers for mobile clients. GPS provides the complete geographic details of the current location of the user, such as latitude/longitude, elevation above sea level, and velocity (speed and direction) in which user is moving. This information generated by the GPS receiver can also be propagated to the HQ, in addition to the tactical data prepared by the user, at regular intervals as required. Thus a user stationed at HQ can watch the current location of each user in the field, having a GPS receiver, as user symbols plotted over the maps, periodically updated at regular intervals.

    Automatic capturing of terrain changes

    MAPCHAT integrated with a GPS receiver can be used for capturing terrain details automatically in surveyor mode. In this mode, MAPCHAT will track the movements of the user, by receiving the latitude/longitude information continuously, from the GPS receiver and generate the exact path as an editable/overlay layer over the map displayed. Once the spatial data is captured like this, the user can add non-spatial/attribute information to the captured terrain details. Now, the user can send the captured terrain data, in the form of a terrain overlay, to the HQ users to update them with the latest terrain details.

    Acknowledgement

    The author is grateful to Director, CAIR and Divisional Officer, BCCD, CAIR for the support and encouragement given.

    References

    [1] S. Holzner, XML Complete, McGraw-Hill, New York. 1998.

    [2] www.opengis.net.

    [3] P. Naughton and H. Schildt, Java2: The Complete Reference, Osborne Publishing, 1999.

    [4] L. Casey Larijani, GPS for Everyone: How the Global Positioning System Can Work for You, AIAA American Institute of Aeronautics &amp; Astronomy, 1998.

    Author

    Mr. M.A. Rajesh obtained his BTech (Computer Science and Engineering) from Mahatma Gandhi University in 2001. His main area of research is in Geographical Information Systems. He is currently working as a Scientist B at the Centre for Artificial Intelligence and Robotics (CAIR), Bangalore.