Экспорт OpenLayers.Layer.WMS в GeoJSON / KML

Я ищу способ экспортировать определенную область слоя WMS в некоторый формат XML (GeoJSON, GML, KML) с помощью OpenLayers и Geoserver. Я нашел, как экспортировать функциональные объекты с помощью OpenLayers.Format.GeoJSON.write (), но этот метод позволяет только преобразовывать функциональные объекты или геометрические объекты.

Пример моей идеи: я просматриваю карту определенной страны с парой слоев WMS с некоторыми данными. Затем я увеличиваю масштаб до определенного штата этой страны и хочу экспортировать то, что просматриваю, в GeoJSON или KML для использования в настольном приложении ГИС (например, QGIS).

Кто-нибудь знает как это сделать?

Спасибо.


person Lucas    schedule 12.09.2012    source источник


Ответы (2)


GeoServer WMS может возвращать данные в формате KML, поскольку это стилизованный формат, такой как SVG, но не в GeoJSON, который вместо этого генерируется WFS, поскольку это просто необработанные данные. Чтобы вернуть KML, просто сделайте тот же запрос, который вы сделали бы для PNG, но попросите "kml" в качестве выходного формата.

person Andrea Aime    schedule 12.09.2012
comment
Спасибо @Andrea Aime. Я пытаюсь это сделать, но у меня другая проблема. Когда я экспортирую kml с более чем одной геометрией в нем, Qgis загружает kml, но не отображает kml. Когда я смотрю на свойства, я вижу, что нет никакого связанного типа геометрии. - person Lucas; 13.09.2012

Служба веб-карт (WMS) работает только с изображениями. Чтобы «экспортировать» как XML, вам нужно будет использовать что-то вроде контекста веб-карты (WMC), как подробно описано здесь:

Я не уверен, поддерживает ли Qgis использование WMC.

person olly_uk    schedule 12.09.2012
comment
Спасибо @olly_uk. Судя по всему, Qgis внедряет WMC. [hub.qgis.org/projects/17/wiki/QGISWebClientIdeas/ annotate / 1] - person Lucas; 12.09.2012
comment
Итак, нет ли возможности реализовать стратегию экспорта в GeoJSON / KML с использованием OpenLayers или Geoserver для слоев WMS? Думаю реализовать свою стратегию, используя непосредственно таблицы PostGIS. Что вы думаете об этом? Может оно того стоит? - person Lucas; 12.09.2012
comment
не уверен, что ни один из этих стандартов (хотя на самом деле geojson не является стандартом) может это сделать. Также как бы вы могли заставить qgis понимать ваш собственный вывод? - person olly_uk; 12.09.2012
comment
Qgis поддерживает форматы GeoJSON, KML и GML. Я хочу экспортировать данные, которые я вижу на карте, в любом формате, который можно использовать в настольном приложении ГИС. - person Lucas; 12.09.2012
comment
но без информации о бэкэнде wms, что на самом деле будет делать geojson? снова wms возвращает только изображения, как их преобразовать в json? - person olly_uk; 12.09.2012
comment
также qgis поддерживает импорт WMS, так что этого недостаточно? - person olly_uk; 12.09.2012
comment
Я понимаю тебя. Я бы хотел получить доступ не ко всему слою WMS, а только к его определенной области из Qgis. Итак, я подумал, что экспорт этого региона был хорошей идеей :) Кроме того, мне нужен доступ к данным слоя, а у меня нет WFS, потому что я предоставляю свой собственный сервис, который напрямую подключается к PostGIS (по проблемам с производительностью) . Итак, я собираюсь еще раз подумать над решением, но я предполагаю, что стратегию экспорта я собираюсь реализовать на стороне сервера. - person Lucas; 12.09.2012