WxGUI WMS service rendering GSoC 2011
Aim of the project
This project aims to introduce several features that make WXGUI more user-friendly. These include adding WMS layer support for WXGUI. The selection features will be displayed as per the based on service GetCapabilities response. The parameters and the layers are to be displayed are extracted out of the xml response.
State of the art
The project uses WMS service to fetch images of the maps. The Get Feature service of WMS services provides a GML based interface to access the information about various layers available. The WMS layer knowledge is used to update the GUI of the GRASS according to the available features for a particular layer. Thw WX-GUI is to be modified and to be integrated with the WMS services.
Bulletin Board
Documentation
The sequence diagram and use case diagram for the proposed Gsoc project are shown below
Planned Timeline
1 - 7 June : To introduce toy changes in the source code. To get familiar with the source file structuring and existing code. Learn WxPython and get Comfortable with it.
7-14 June : To introduce meaningful changes in the WXGUI. Aim to write a module for statically updating the WXGUI without any back end support from WMS services.
14-21 June :To hard code for dynamic updating of GUI without WMS support
21-28 June : To establish correctness of the code , testing of the modules.
29 June - 5 July: To understand the available WMS services. To extract the features available through get feature module.
6 July - 13 July: To hard code for the WMS layer supports available so as to update the front end GUI.
14 July - 21 July: To integrate the front end WXGUI new modules for updating the interface with the backend support from WMS GetCapabilites services.
22 July- 29 July: To introduce get layers service of the WMS services in the front end of WXGUI
Weekly GSOC reports
Report #0 29-05-2011.
1) What do I have completed this week?
I have completed the following by this week.
- Creating the uml diagrams (sequence and use case) for the planned architecture of the project.
- Have read GUI documentation from the programmer's manual [0].
- Have gone through the source file structuring.
- Have setup the system, compiled the source and successfully installed it.
2) What am I going to achieve for next week?
I plan to introduce some toy changes in the source code, like print statements. I will try to familiarize myself with the wxPython.
3) Is there any blocking issue?
No major bottlenecks till now.
Report #1 3-06-2011.
1) What do I have completed this week?
I have completed the following by this week.
- Read the programmers manual for WXGUI [0], [2], [3].
- Written a standalone helloWorld application in WXGUI and learning WXGUI from [3]
- Added a button to GUI of GRASS, which for now essentially does nothing.
- Printing of dummy messages and changing the welcome messages.
- Test uploading on SVN and getting acquainted with svn.
2) What am I going to achieve for next week?
I plan to update the GUI with respect to available layers. Back end WMS support will be hard coded for the time being.
3) Is there any blocking issue?
Learning of WXPython. Never used it before. I am trying to get comfortable with it.
Report #2 9-06-2011.
1) What do I have completed this week?
This week, I have not been able to do much work due to my visit to Singapore this week and problem with ubuntu system to connect to the network here. I have completed the following by this week.
- Read the [4] , Chapter 1 and 2 for SVN.
- Build a simple text editor in wxpython, build drop down menus in wxpython.
- Test uploading of SVN
- Install Quantum GIS and study it's GUI functionality.
2) What am I going to achieve for next week?
1) Get familiar with WMS use in QGIS. 2) Continue to get familiar with wxpython and GRASS wxGUI.
3) Is there any blocking issue?
Network Connectivity problem with my ubuntu system not being able to connect to network delayed the work this week. I am now more comfortable with wxpython now.
Report #3 17-06-2011.
1) What do I have completed this week?
By this week I am quite acquanted with wxpython and ready to build applications in it.
- Study QGIS WMS layer support
- Launch a New window with an "Add WMS" button from main window of grass. New window has 3 buttons. Functionality not yet coded for the buttons.
- SVN readme file update.
2) What am I going to achieve for next week?
1) Add WMS support at the backend of the added new buttons.
3) Is there any blocking issue?
Nothing major problem till now
Report #4 24-06-2011.
1) What do I have completed this week?
- Implemented a button in grass7 GUI, which launches a new window. The new window has 3 button. On pressing the button 'GetCapabilities', xml data is fetched for WMS 'http://www.gisnet.lv/cgi-bin/topo', and the xml data is displayed as it in the window.
- Parser(Minidom) is used to parse the xml data and display it in the form it is displayed in QGIS
2) What am I going to achieve for next week?
1) Add functioanlity to retrieve getcappabilities of any wms, currently it is hard coded for one wms. 2) Fetch the maps after the user selects particular layers from the list of layers displayed.
3) Is there any blocking issue? Grass7 installation was having some problems, but its now solved with Maris's help.
References
- [0] http://grass.osgeo.org/programming6/
- [1] http://geo.fsv.cvut.cz/~landa/publications/2008/gis-ostrava-08/paper/landa-grass-gui-wxpython.pdf
- [2] http://geo.fsv.cvut.cz/~landa/publications/2008/gfoss-it-08/paper/grass-gfoss-tn.pdf
- [3] http://wiki.wxpython.org/
- [4] http://svnbook.red-bean.com/en/1.5/index.html