Упростить вывод GeoServer WFS


12

Я имею дело с некоторыми большими наборами данных и хотел бы минимизировать объем данных, передаваемых по сети. Я использую BBox-стратегию OpenLayers только для передачи необходимых данных, но мне интересно, могу ли я упростить вывод, чтобы я мог показывать более низкие уровни масштабирования без необходимости передавать данные с ненужной точностью / детализацией.

Я использую GeoServer в качестве сервера WFS как часть пакета OpenGeo.

Ответы:


8

WFS / GeoServer на самом деле не предоставляет никакого способа сделать обобщение на лету в зависимости от масштаба, но есть специальное расширение, которое делает то, что вы ищете, выполняя некоторую предварительную генерализацию.

http://docs.geoserver.org/stable/en/user/data/featurepregen.html


1
+1 - очень хорошее расширение. Было бы неплохо иметь эквивалент MapServer ..
география

3

Некоторые возможные решения:

  • Вам действительно нужны данные в векторном формате? Если большие сложные многоугольники только для справки, то они будут хороши как WMS / изображения. Если вы можете упростить их, тогда вам, вероятно, геометрия не нужна.
  • Вы можете передать параметр обобщения слою карты через пользовательский параметр и использовать его для упрощения геометрии. Этот поток посвящен MapServer, но я предполагаю, что нечто подобное можно сделать с помощью GeoServer - http://osgeo-org.1803224.n2.nabble.com/WFS-Server-Control-output-by-scale-td2279383.html
  • Также упоминается в вышеупомянутой теме, вы можете хранить предварительно упрощенные наборы данных для разных масштабов и при необходимости скрывать / показывать их на карте.
  • Убедитесь, что на вашем веб-сервере включено сжатие gZip, поскольку это позволит уменьшить файлы GML / XML как минимум вдвое.

Я определенно нуждаюсь в них в векторном формате, так как хочу иметь возможность щелкать по ним, чтобы получить дополнительную информацию, а также редактировать многоугольники (хотя, очевидно, я хочу иметь возможность редактировать только истинные фигуры, а не упрощенные версии, которые могут быть немного сложно).
Mr_Chimp

1
@mr_chimp - вы можете использовать запрос WMS GetFeatureInfo, чтобы вернуть только геометрию и атрибуты для объекта при щелчке мыши.
география

3

Используя кластерную стратегию OL , вы можете упростить представление (для пользователей), но объем передаваемых данных не будет ниже, поскольку кластеризация выполняется на стороне клиента.

Смотрите также страницу документации .

(Я не знаю о доступных опциях на стороне сервера)


Может быть, я ошибаюсь, но кластерная стратегия, кажется, для точечных данных. У меня есть сложные данные многоугольника, которые я хотел бы упростить.
Mr_Chimp

Это не уменьшит сетевой трафик, поскольку все точки будут необходимы для кластеризации клиентской части.
география

@geographika> это то, что я хотел сказать, но, как вы можете догадаться, я забыл отрицание в своем предложении (восстановлено сейчас)! Это все еще хороший способ улучшить читаемость для конечных пользователей
simo

@Mr_Chimp> на самом деле нет эквивалента для полигонов
simo

0

Если вы обеспокоены тем, что WFS является «тяжелым» (его вывод GML многословен по своей природе), я советую вам вместо этого использовать хорошо известный текст (WKT), если это возможно. Я предполагаю, что BBL-стратегия OpenLayers «совместима» с WKT.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.