MapServer 2008 SOC Ideas

= MapServer 2008 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 MapServer.

Apache Module/MSAPI Module Support
While MapServer currently does support FastCGI, it would be beneficial to support tighter integration with the two most popular webserver platforms- Apache and Microsoft IIS.

Support for reading SVG symbols
Add support for SVG as an alternate method to define vector symbols in a MapServer symbolset.

Performance improvements for labelcache and MINDISTANCE processing
This is a proposal to redesign the labelcache processing from an O(N*N) process to an O(N) process. It would use a raster buffer for label collision detection and has the possibility for some other spin-off features like label placement with avoidance. Below is a draft RFC Proposal for this feature that provides more information.

[RFC Proposal]

Tilted Prespective Map View similar to that used in many GPS devices
A discussion of this was had in February on the Mapserver-Dev list, see the link below. There clearly is interest in supporting this but it needs some additional discussion, research and an appropriate sizing to a SoC task. On the trivial side it might be as simple as figuring out how to make mapserver work with proj4 parameters, which is clearly not a SoC project. On the other side it might mean implementing another render within mapserver what has a lot of cool features and my be larger in scope than a SoC project.

[http://www.nabble.com/How-to-generate-3d-image-like-GPS-device--td15713573.html#a15713573]

Output Support for KML
Implement an output driver in MapServer to generate KML output for use with Google Earth, using an approach similar to the current Flash (SWF) and SVG output drivers.

Binary persistence support
This addition requires to develop a binary writer/reader implementation to serialize/deserialize the mapscript objects individually and to support reading/writing the entire mapfile in binary format. This option would result in a performance increment when loading the mapfiles and avoid the parser lock for the multi-threaded applications. The implementor should also create a console application to support converting between the current and the binary mapfile formats.

MapScript C# multithreaded test environment
The student should create a multithreaded C# test application that would provide automated execution of various pluggable mapscript tests by simulating an ASP.NET style multithreading environment. The application would allow to specify various test parameters like the thread pool size, test execution sequence and timings. The student should implement a fair amount of mapscript test cases to cover the most fundamental parts of the API.

Other Ideas:
The following MapServer-dev thread outlines a few possible ideas, without providing much details: [http://www.nabble.com/Fwd%3A--OSGeo-Discuss--Google-Summer-of-Code-2008-tt15614123.html#a15614123]

= Mentor Candidates =

The following individuals are potentially willing to serve as MapServer mentors or co-mentors.


 * Frank Warmerdam
 * Stephen Woodbridge
 * Stephen Lime (KML and label cache improvements)
 * Assefa Yewondwossen (KML)
 * Tamas Szekeres (binary persistence, C# multithreaded tests)
 * Thomas Bonfort (Tilted Perspective)
 * Daniel Morissette