1

我正在学习使用 MapServer 创建 WMS 服务,之后我想开发一个可以访问它的 PyQt 桌面应用程序。我不知道最好的方法是什么,因为我看过很多网络解决方案,但这不是我想要的。我也不知道是否有图书馆可以帮助我。你能给我一些建议吗?

提前致谢!

4

1 回答 1

1

我假设您在 MapServer 上设置 WMS 服务没有问题。测试这是否与 GIS 桌面客户端或简单的 OpenLayers 网页一起使用。

为了开发 WMS 客户端,我将构建在GDAL库之上。这也包含在 MapServer 中。

GDAL 能够从远程 WMS 服务器读取图像,并将它们视为处理任何其他数据源:这意味着它可以获取图像,并将它们转换为任何其他格式,从 JPEG2000 到 GeoTIFF。

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

作为额外的奖励,GDAL 包括有助于编写脚本的Python 绑定。

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

您还需要libcurl来访问 URL。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 结果以便更快地使用(并在本地缓存)。

于 2010-07-11T12:44:36.733 回答