vanced SVG-Cache component for UniBwMap

Advanced SVG-Cache component for UniBwMap


UniBwMap will be a modular web map server supporting Open GIS Consortium specifications. It is designed to dynamically integrate geospatial data from different sources and deliver this map to desktop and handheld computers.

UniBwMap will be built on specifications from the Open GIS Consortium in order to interoperate with other OGC compliant severs (for example a map could be generated from data collected from several WFS/WCS). The implementation will also support the Styled Layer Description from OGC that allows users to control the visual portrayal of the data with which they work.

The modular architecture will allow the system to either act as a general web map server taking data from WFS/WCS and delivering content to clients) or as a scalable client. The client could range from a thin software that only displays graphics to a heavy weight client that connects directly to WFS/WCS and internally renders data, allowing fast zooming operations and other operations that can only be performed on vector data (i.e. measuring distances).

The system will be entirely developed in Java. This would allow it to run on various devices and operating systems and take advantages from other Java 2 features such as dynamically loading classes. The implementation should result in a number of well-documented, reusable modules. Furthermore, the system would be based on as many as possible third party, open-source components (i.e. SVG parsers & generators, GML libraries, etc).

Diploma thesis contents

Description of concept
In the diploma thesis a software-caching component for vector graphics (SVG) should be developed. The component should temporary store SVG images received from the Portrayal Engine component together with information from the original client request.

The cache should keep the images as a set of square tiles (see figure below). When a request comes the cache should do the following:

  1. Request all necessary tiles from the Portrayal Engine
  2. Combine all these tiles to form an SVG image (on the picture, the part with red pattern)
  3. Cut the generated image to the appropriate size of the client request (on the picture, the part with black pattern)
  4. Return the image generated at the previous step to the client

As the cache gets full, some of the tiles should be kicked out of the cache on basis of different algorithms such as LRU, TTL, etc.

Data structures:

The thesis should first develop a concept regarding the appropriate data structures to store the tiles. For example a matrix can be used, each element of the matrix containing a link to a tile. As an alternative one can consider storing the tiles in a tree structure.

Since some maps that contain several tiles may be frequently requested, the student should think about possible optimizations (i.e. keeping blocks of several tiles so that fewer unifications of tiles are done for some maps).

Advantages of the method:

  1. If a request is made by a client, a consequent zoom in operation will be resolved by the cache (since the original request is in the cache and in vector graphics you can unlimitedly zoom without loosing quality)
  2. Pan operations are partially resolved by the cache since only a couple of tiles will have to be loaded from the Portayal Engine
  3. In a zoom out operation, the existing part of the image will no longer be requested from the Portayal Engine

Programming language

  • Java

Components and libraries to use

Aufgabensteller: Prof. Dr. Gunnar Teege
Betreuer: Cristian Opincaru

Download > abgeschlossene Studienarbeiten Stand Juli 07 abgeschlossene Studienarbeiten - Juli 07