tags:

views:

40

answers:

1

Hi,

I'm learning to create a WMS service using MapServer and after that I want to develop a PyQt desktop application which will access it. I don't know what is the best way to do that because I have seen a lot of web solutions but it's not what I'm looking for. Neither I know if there are libraries that can help me. Can you give me some advices?

Thanks in advance!

+1  A: 

I'm assuming you have no trouble setting up a WMS service on MapServer. Test this is working with a GIS desktop client, or a simple OpenLayers web page.

To develop a WMS client I'd build on top of the GDAL library. This is also included in MapServer.

GDAL has the ability to read images from a remote WMS server, and treat them as it does any other data source: which means that it can take the images, and convert them to any other format, from JPEG2000 to GeoTIFF.

http://crschmidt.net/blog/archives/285/producing-a-large-image-from-openaerialmap/

As an added bonus GDAL includes Python bindings which will help with scripting.

http://pypi.python.org/pypi/GDAL/

You will also need libcurl to access URLs. libcurl too has Python bindings - http://curl.haxx.se/libcurl/python/

libcurl is also included in MapServer, which itself can be both a WMS server and client. You can also check out the C++ source code for how the MapServer client works - https://trac.osgeo.org/mapserver/browser/branches/branch-5-6/mapserver/mapwmslayer.c

A WMS service returns an image (apart from a few extra meta services), so the custom development will be based around building the correct WMS requests based on user actions.

If you want to have fast performance then have a look at TileCache which will cache the WMS results on the server for quicker use (and also cache locally).

geographika
Great Answer gographika! Thank you very much!!
Alfred