[OpenLayers-Dev] TurboGears GSoC 2008 Final Report - Sanjiv Singh
SinghSanjivK at gmail.com
Mon Aug 18 11:27:35 EDT 2008
Final status report for the project:
"ToscaWidgets Library for jQuery & OpenLayers"
Mentoring Org: TurboGears
Student: Sanjiv Singh
Mentor: Christopher Perkins
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 who showed faith in me and constantly
guided and encouraged me to move ahead. I would like to specially
thank TG2 project lead Mark Ramm and ToscaWidgets 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 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
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.
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
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
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.
More information about the Dev