我正在学习使用MapServer创建WMS服务,之后我想开发一个可以访问它的PyQt桌面应用程序。我不知道最好的方法是什么,因为我看过很多网络解决方案,但这不是我想要的。我都不知道是否有图书馆可以帮助我。你能给我一些建议吗?
提前致谢!
答案 0 :(得分:1)
我假设您在MapServer上设置WMS服务没有问题。测试这与GIS桌面客户端或简单的OpenLayers网页一起使用。
要开发WMS客户端,我将构建在 GDAL 库之上。这也包含在MapServer中。
GDAL具有阅读图像的能力 从远程WMS服务器,并处理 它们与任何其他数据源一样: 这意味着它可以采取 图像,并将它们转换为任何其他图像 格式,从JPEG2000到GeoTIFF。
http://crschmidt.net/blog/archives/285/producing-a-large-image-from-openaerialmap/
作为额外的奖励,GDAL包含 Python绑定,这将有助于编写脚本。
http://pypi.python.org/pypi/GDAL/
您还需要 libcurl 来访问网址。 libcurl也有Python绑定 - http://curl.haxx.se/libcurl/python/
libcurl也包含在MapServer中,它本身可以是WMS服务器和客户端。您还可以查看有关MapServer客户端如何工作的C ++源代码 - https://trac.osgeo.org/mapserver/browser/branches/branch-5-6/mapserver/mapwmslayer.c
WMS服务返回一个图像(除了一些额外的元服务),因此自定义开发将基于根据用户操作构建正确的WMS请求。
如果您希望获得快速性能,请查看 TileCache ,它会将WMS结果缓存在服务器上以便更快地使用(并且还可以在本地缓存)。