Some advices for creating a WMS service and a desktop client?
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开发者_如何学Go know if there are libraries that can help me. Can you give me some advices?
Thanks in advance!
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).
精彩评论