将OpenLayers.Layer.WMS导出到GeoJSON/KML

将OpenLayers.Layer.WMS导出到GeoJSON/KML,openlayers,kml,geoserver,geojson,wms,Openlayers,Kml,Geoserver,Geojson,Wms,我正在寻找一种使用OpenLayers和Geoserver将WMS层的特定区域导出为某种XML格式(GeoJSON、GML、KML)的方法。 我已经找到了如何使用OpenLayers.Format.GeoJSON.write()导出要素对象,但该方法只允许转换要素对象或几何体对象 我的想法的一个例子是:我正在查看某个国家的地图,其中有几个WMS图层和一些数据。然后我缩放到该国的一个特定州,我想将我正在查看的内容导出到GeoJSON或KML,以便在桌面GIS应用程序(如QGIS)中使用 有人知道怎

我正在寻找一种使用OpenLayers和Geoserver将WMS层的特定区域导出为某种XML格式(GeoJSON、GML、KML)的方法。 我已经找到了如何使用OpenLayers.Format.GeoJSON.write()导出要素对象,但该方法只允许转换要素对象或几何体对象

我的想法的一个例子是:我正在查看某个国家的地图,其中有几个WMS图层和一些数据。然后我缩放到该国的一个特定州,我想将我正在查看的内容导出到GeoJSON或KML,以便在桌面GIS应用程序(如QGIS)中使用

有人知道怎么做吗

谢谢。

网络地图服务(WMS)只处理图像。要将“导出”为XML,您需要使用类似Web地图上下文(WMC)的内容,如下所述:


但我不确定Qgis是否支持使用WMC。

GeoServer WMS可以以KML格式返回数据,因为它是一种类似SVG的样式格式,但不是GeoJSON格式,GeoJSON由WFS生成,因为它只是原始数据。
为了返回KML,只需提出与PNG相同的请求,但要求输出格式为“KML”

谢谢@olly_uk。显然,Qgis正在实施WMC。[那么,是否没有机会使用OpenLayers或Geoserver for WMS层实现到GeoJSON/KML的导出策略?我正在考虑直接使用PostGIS表实现我自己的策略。你怎么看?是否值得?不确定这两个标准中的哪一个(尽管GeoJSON不是真正的标准)可以。您如何让qgis理解您的自定义输出?qgis支持GeoJSON、KML和GML格式。我想要的是将我在地图中看到的数据导出为桌面GIS应用程序中可以使用的任何格式。但是,如果没有后端wms信息,GeoJSON实际会做什么?同样,wms只返回图像,它们怎么能返回转换为json?谢谢@Andrea Aime。我正在尝试,但我有另一个问题。当我导出包含多个几何体的kml时,Qgis加载kml,但它不显示kml。查看属性时,我发现没有关联的几何体类型。