我正在寻找一种使用OpenLayers和Geoserver将WMS层的特定区域导出为某种XML格式(GeoJSON、GML、KML)的方法。我已经找到了如何使用OpenLayers.Format.GeoJSON.write()导出特征对象,但这种方法只允许转换特征对象或几何对象。
我的想法的一个例子是:我正在查看某个国家的地图,其中有几个WMS层和一些数据。然后我放大到该国家的一个特定状态,我想将我正在查看的内容导出到GeoJSON或KML,以便在桌面GIS应用程序(如QGIS)中使用。
有人知道怎么做吗?
谢谢。
GeoServer WMS可以以KML格式返回数据,因为它是一种类似SVG的样式格式,但不能以GeoJSON格式返回,GeoJSON是由WFS生成的,因为它只是原始数据。为了返回KML,只需发出与PNG相同的请求,但要求将"KML"作为输出格式
Web地图服务(WMS)只处理图像。要"导出"为XML,您需要使用类似于Web Map Context(WMC)的东西,详细信息如下:
-
http://dev.openlayers.org/docs/files/OpenLayers/Format/WMC-js.html
-
http://dev.openlayers.org/releases/OpenLayers-2.12/examples/wmc.html
-
http://www.opengeospatial.org/standards/wmc
我不确定Qgis是否支持使用WMC。