GEOLIB
:a software component for making GIS tools interoperable
Donatas KVEDARAUSKAS,
Patrice BOURSIER
Laboratoire d'Informatique
et d'Imagerie Industrielle (L3I) Universite de La Rochelle
Avenue de Marillac
17042 La Rochelle
- FRANCE
Tel: +33 (0)5 46
45 87 28
Fax: +33 (0)5 46
45 82 42
dkvedar@lri.fr,
patrice@lri.fr
Xavier CULOS, Thierry
DELTHEIL, and Sylvie IRIS
SILOGIC
Toulouse, France
xculos@silogic.fr,
tdeltheil@silogic.fr, sylvie@silogic.fr
Introduction
The aim of the GEOLIB
project was to develop a library of geographic functionalities, portable
and interoperable with application development environments, database management
systems, multimedia/hypermedia "authoring systems" as well as external
GIS, and also usable in an Internet/Intranet environment.
This software component
gives the possibility to integrate more easily the spatial dimension within
existing interactive multimedia applications, as well as office or management
applications. They allow to manipulate maps, itineraries, but also to address
spatial queries to existing spatial databases, without having to know how
to use GIS tools.
GEOLIB has been
developed in the framework of a contract funded by the french agency for
technology transfer between research and industry1. It has been developed
in collaboration with the Computer Science Research Laboratory at the University
of Paris-Sud (LRI).
Functionalities
A first release
of the GEOLIB component has been launched in September 1997, which contains
the following set of functionalities :
Data acquisition
and handling
-
Import of a vector
or raster map layer and associated descriptive non-spatial data,
-
Creation of a vector
map layer from a drawing layer,
-
Creation of a map from
the superposition of raster and/or vector layers,
-
Map updating (insertion,
deletion, layers reorganization),
-
Conversion vector <->
raster,
-
Map projection and
coordinate systems.
Exploitation and querying
-
Vector layer indexing,
-
Non spatial queries,
-
Simple spatial queries,
based on distance, adjacency, intersection and inclusion.
Display and visualization
-
2D map display,
-
Physical zoom on raster
or vector layer,
-
Physical zoom on raster
or vector layer (access to more detailed maps),
-
Panning,
-
Management of links
between spatial and multimedia data (creation, modification, deletion).
Geographic data processing
-
Map overlay,
-
Length and area measurement
(lines, polygons),
-
Distance between objects,
-
Buffer zone management.
Architecture
GEOLIB is made of
several modules, in order to be easily portable and interfacable with other
software tools, and usable in a client-server (Internet/Intranet) environment
:
-
the Gateway module,
whose functions are the following :
-
import existing geographic
data files,
-
load data within object
structures in main memory, in order to be processed by the other modules
of GEOLIB.
-
the Dispatcher module
:
-
analyse and pre-process
queries,
-
determine the optimal
strategy for answering the query, depending on the processing and result
of previous queries :
-
access data stored
on the client,
-
access data stored
on the server,
-
extract data from files
stored on the server,
-
retrieve data,
-
process data and prepare
the answer.
-
the Visualization module
:
-
translate user interaction
into queries,
-
address the query to
the Dispatcher module,
-
display results on
the client.
-
the Core module :
-
reception of queries
addressed by the Dispatcher module,
-
execution of basic
geographic functionalities,
-
transmission of results
to the Dispatcher module.
-
the Extensions module
:
-
reception of queries
addressed by the Dispatcher module,
-
execution of specific
geographic functions,
-
transmission of results
to the Dispatcher module.
Query processing
Three different
scenarii have been identified and considered for query processing :
1. Query processed
on the client
The simplest
way of processing a query is the local mode :
-
following a user interaction,
the Visualization module on the client creates a query object that is sent
to the Dispatcher module,
-
the Dispatcher module
analyses the query and concludes that it can be processed locally. Consequently,
the query is sent to the Core module on the client,
-
the Core module takes
charge of the query processing,
-
once the query has
been processed locally by the Core module, the answer is sent to the Visualization
module for being displayed.
2. Query processed
on the server
The processing of
a query may require access to the GEOLIB server. The execution scenario
is then the following :
-
the Visualization module
translates a user interaction into a query object, and sends it to the
Dispatcher module,
-
the Dispatcher module
on the client analyses the query and concludes it must be sent to the server
for further proocessing, either because all required data are not present
on the client, or because functions required to process the query are not
available on the client. Consequently, it initiates a communication between
the client and the server, and the query is sent to the server for being
processed,
-
the GEOLIB server receives
the query and restructures it, before sending it to the Dispatcher module
on the server,
-
the Dispatcher module
analyses the query and decides which processing module must be called,
either the Core module is the query is simple enough, or the Extension
module if a more specific function is required.
-
once the answer is
elaborated, the GEOLIB server sends it back to the client,
-
the Dispatcher module
on the client receives the answer and reformats it before it is displayed,
-
the Visualization module
can display the result to the user.
3. Query addressed
to an external GIS
When the query concerns
external data (not already available, neither on the client, nor on the
server), query processing is a little more complex :
-
the Visualization module
translates a user interaction into a query object, and sends it to the
Dispatcher module on the client,
-
the Dispatcher module
on the client analyses the query and concludes it must be sent to the server
for further proocessing, either because all required data are not present
on the client, or because functions required to process the query are not
available on the client. Consequently, it initiates a communication between
the client and the server, and the query is sent to the server for being
processed,
-
the GEOLIB server receives
the query and restructures it, before sending it to the Dispatcher module
on the server,
-
the Dispatcher module
notices that the query corresponds to a script that concerns an external
GIS. The execution of this script is then activated,
-
a communication process
is established between the GEOLIB server and the external GIS. Data are
being formatted and exchanged,
-
once this operation
is terminated, the GEOLIB server sends the answer back to the client,
-
the Dispatcher module
on the client builds the result and can display it to the user.
The GEOLIB software
component has already been used for different kinds of application, either
in a standalone mode, or in a client-server environment. It already supports
ARC/INFO shapefiles and MAPINFO MIF/MID formats. It is currently being
extended in order to support other GIS formats. New functionalities are
also being added, in order to be able to deal with more complex applications.
1 ANVAR : Agence
Nationale de Valorisation de la Recherche.