[OpenLayers-Dev] TurboGears GSoC 2008 Final Report - Sanjiv Singh

Sanjiv SinghSanjivK at gmail.com
Mon Aug 18 11:27:35 EDT 2008

Final status report for the project:
"ToscaWidgets Library for jQuery & OpenLayers"
GSoC 2008
Mentoring Org: TurboGears
Student: Sanjiv Singh
Mentor: Christopher Perkins

Dear Community,

The coding for GSoC officially ends today at 19:00 UTC. Before I move
on to the report, I wish to convey my sincere thanks and gratitude to
my mentor Christopher Perkins[1] who showed faith in me and constantly
guided and encouraged me to move ahead. I would like to specially
thank TG2[2] project lead Mark Ramm and ToscaWidgets[3] creator
Alberto Valverde who have helped me  a lot during the project. I would
also like to thank our GSoC Admin Christopher Arndt, Michele Bertoldi,
Laureano Arcanio, Bruno Melo and rest of the TurboGears Community for
their help and support.

I also thank Eric Lemonie of Camp to Camp for helping me move ahead
with MapFish and to the entire MapFish and OpenLayers Community for
their support. I thank Christopher Schmidt of Metacarta Labs for
OpenLayers and TileCache.

Although the initial project accepted for GSoC involved creating
ToscaWidgets for OpenLayers and jQuery, after creating several widgets
with jQuery and ExtJS, it was felt that some work on bringing in
server side geo components to TG2 along with OpenLayers would enable
the use of TG for GIS Applications and the TurboGears Extension
tg.ext.geo[6] project was born. At the end of coding for GSoC 2008 the
status of all these works are as follows:-

1)  Widgets for jQuery and ExtJS
Several widgets were created for jQuery and ExtJS. These include
jQuery AjaxForm, jQuery Treeview, FlexiGrid, ExtJS SingleSelectCombo,
ItemSelector (aka SelectShuttle). The documentaion and examples for
these widgets with TG2 were in the old wiki documentation. They would
be moved into the official TG2 ToscaWidgets Cookbook docs soon.

2)  Widgets for JSUnit[4]
While coding for these widgets, a need for javascript unit testing
tool was felt and a widget for JSUnit[7] Javascript Unit Testing
framework was developed. A runner widget for in-browser running of the
tests was also created. The documentation for TG2 usage would be moved
from old wiki to official docs soon.

3)  OpenLayers[5]
A ToscaWidgets library has been created for OpenLayers Javascript
Mapping toolkit. At present it has support for maps with layers of
GoogleMaps, YahooMaps, VirtualEarth, WMS, OpenStreetMap layers using
Mapnik and OSMRender, and Vector Layers (GML). The standard map
control components like layer switcher, panzoom, etc. have been added.
Controls for vector editing are also supported. A demo application
with WMS and GML layers and vector editing of features can been seen
at http://sanjiv.homelinux.net:8081/ . Feel free to edit the vectors
and deform the geography as I have a backup of the db ;)

4)  TG2 Geo Extension with MapFish[6]
The tg.ext.geo extension implements the server side component for
vector query and editing.  It is mainly based on MapFish server.
However the templates are modified to suit the TG Object Distach
BaseController. This may change in future and be fully based on
MapFish server which uses a RESTFul controller. The extension makes
use of existing PythonGIS tools like Shapely and GeoJSON. Thanks to
Eric Lemonie, Sean Gillies, Matt Russell and the GISPython community
for bringing the GIS tools to python developers. A demo application
with openlayers based feature selection and a DojoGrid for displaying
the attribute data can be seen at http://sanjiv.homelinux.net/ .
Thanks to Michele Bertoldi for helping me with his Dojo Grid.

5)  TG2 Geo Extension for TileCache[7]
tg.ext.geo has a paster command for reading a tilecache config file
and generating controller code with TileCache mounted as a WSGI app in
TG2. This makes it possible to use TileCache within TG for caching of
WMS tiles using the WMS-C standard proposed by MetaCarta Labs. Once
again thanks to Christopher Schmidt for creating TileCache. A demo app
with backend tile generation using TileCache running in a TG2 app can
be seen at http://sanjiv.homelinux.net:8082/ .

Over the next couple of weeks I would write tests and documentation
for all  these components and would continue to develop and maintain
them in future as these works are far from complete. I would be
extremely happy to receive your views, suggestions, feedbacks, etc. I
would be most delighted to see people join in and move these tools

Thanks once again to the open source community and Google for this
great learning experience.


[1]  http://www.percious.com
[2]  http://turbogears.org
[3]  http://toscawidgets.org
[4]  http://jsunit.net
[5]  http://openlayers.org
[6]  http://mapfish.org
[7]  http://tilecache.org

More information about the Dev mailing list