MapServer 2015 SOC Ideas
MapServer Suite 2015 SOC Ideas
Enter ideas for development projects here. Note these are just suggestions - students are welcome to propose projects based on their own interests that relate to the MapServer Suite. Our current efforts are based on the following projects:
- Mapserver Suite This is the mapserver cartographic server, which now includes TinyOWS and MapCache.
You can find the source code, tutorials, the project mailing list and various other information at the link above.
To give you an idea about possible SoC projects, here are some suggestions:
Direct support for Scribe Syntax in MapServer
The Scribe syntax is a variant of the traditional MapServer mapfile format that was created to facilitate the development of mapfiles with large number of scale-dependent rules, which is becoming very common with today's tile-based mapping environments with discrete zoom levels. More information about the format is available at http://scribeui.org/scribe-syntax.html
There is currently no direct support for the Scribe syntax in the MapServer core, so users of the Scribe syntax currently have two options:
- use the scribe.py python utility (https://github.com/solutionsmapgears/Scribe) to convert their scribe mapfile to a regular MapServer mapfile
- use the ScribeUI online editor (http://scribeui.org/index.html) to manage their mapfiles
The goal of this project is to implement direct (or transparent) support for the Scribe syntax in the MapServer core, either through a dedicated parser, or simply by writing a converter that translates the Scribe syntax into regular mapfile syntax in memory at runtime for each request (possibly with some caching). The second option would be less performant, but simpler. Both options should be considered with their pros and cons. User documentation and test suite would also need to be updated accordingly.
Possible mentors: Daniel Morissette, Julien-Samuel Lacroix
SpatiaLite support in TinyOWS
TinyOWS is a geographical feature server, implementing WFS and WFS-T OGC protocols. TinyOWS focus on performance, KISS design, and strong compliance to the standards. It will be included in the MapServer Suite project as soon as the forthcoming 6.2 release.
TinyOWS currently relies heavily on PostGIS, to get a strong transactionnel backend, and be as close as possible from the data. This leads to good performances and avoid duplication of features (such as GML format I/O for instance).
This SoC project consists in the implementation of a Spatialite additional support for TinyOWS. The aim is to use this lightweight database as a backend, enabling TinyOWS deployment without the need of a PostGIS server.
SpatiaLite is indeed a SQLite spatial extension, adding a whole lot of geographical features to SQLite, creating a convenient and lightweight self- contained spatial database. While being less efficient than PostGIS in a multi- user context, SpatiaLite supports transactions and most of the spatial features needed to act as TinyOWS backend.
The project will include the following steps :
- Inclusion of SpatiaLite libraries into TinyOWS build system (as optional)
- Identify all TinyOWS codes related to PostGIS functions.
- Add missing features into SpatiaLite to be able to act as TinyOWS backend (GeomFromGML for instance)
- And provide a clean enough patch to get these features commited into the trunk
- Add multi-database abstraction layer into TinyOWS (to support either PostGIS or SpatiaLite)
- CreateTinyOWS and SpatiaLite units tests cases
- Check compliance to CITE tests for OGC standards with SpatiaLite backend
- Compare performances between PostGIS backend and SpatiaLite backend
- SQL Injection audit, on the new backend (with a tool like SQLMap)
- Olivier Courtin <olivier.courtin (at) oslandia.com>
- Brad Hards <bradh (at) frogmouth.net> (on SpatiaLite stuff)
Lots of other options
There are a lot of other possibilities that we would be happy to discuss with any students interested. Best you contact us on the MapServer mailing list: