Что лучше выбрать? WMS или WFS

9

Мне нужно выбрать один или несколько слоев, и мне интересно, каким образом мне следует обслуживать этот слой.

Требования заключаются в том, что мне нужно иметь возможность выбирать несколько объектов одновременно, рисуя прямоугольник или многоугольник. Они должны стать выделенными, и я должен отобразить данные для всех функций. Мне не нужно их редактировать.

Я использую геосервер и openlayers

Nate
источник
Вы смогли выполнить это приложение? Я хотел знать, как это можно реализовать?
Sam007
Для выбора, который вы описываете, возможна только WFS. Для WMS вы можете выбрать в определенном месте, или вы можете выбрать с помощью некоторых известных атрибутов / атрибутов и повторно символизировать с помощью SLD.
NMTOKEN

Ответы:

9

Похоже, вы хотите сохранить векторы в браузере и запросить их на стороне клиента. Для этого вам нужно использовать WFS.

Однако одно предостережение заключается в том, что браузеры имеют ограничения на количество векторов, которые они могут отображать одновременно. Если вы имеете дело с большими или сложными наборами данных, возможно, единственным вариантом будет использование WMS. Однако это было бы сложнее реализовать, потому что запросы должны были бы выполняться на стороне сервера.

canisrufus
источник
7
на самом деле OpenLayers не имеет ограничений на количество функций, которые он может отображать, браузеры имеют ограничения на количество функций, которые они могут отображать.
Ян Тертон
2
Максимальное количество функций зависит не только от веб-браузера, но и от функций клиентского компьютера, таких как процессор или оперативная память. Учитывая это, вы, разработчик, не знаете, на каком клиентском компьютере будет работать «ваша» программа просмотра карт на основе OpenLayers, поэтому рекомендуется придерживаться осторожного подхода при оценке этого лимита.
Дарьяпра
1
Я думаю, что WMS будет хорошо служить своей цели. Сохраняйте сложную обработку на стороне сервера (если возможно), и результат рендеринга на стороне клиента. У вас будет лучшая производительность, и вы все равно сможете использовать скриптовые фильтры, такие как Пересечения, Содержит, Внутри и т. Д. Посмотрите на геосервер.
OptimizePrime
2
Я бы посоветовал вам придерживаться любой парадигмы. 1. Клиент получает данные и обрабатывает / запрашивает их соответственно, сервер обслуживает только данные (WFS). 2. Клиент заботится только о рендеринге, сервер выполняет задачи обработки / запроса и доставляет результат (WMS). Оба имеют за и против, но не мешают процессу и загружают данные (WFS) и заставляют сервер также выполнять обработку / запросы. Это создает ненужные накладные расходы и усложняет ситуацию
OptimizePrime
@iant: Я понимаю, что у openlayers нет ограничений на количество отображаемых функций. Я думаю, что мы оба можем согласиться, что у этого есть ограничения, хотя;)
canisrufus
5

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

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

Кроме того, GeoServer Blog - отличная статья о двух сервисах и когда вам следует использовать их.

Редактировать: На дополнительном замечании, если вы делаете что-то кроме простого запроса данных объекта, я, как правило, просто использую WFS, это превосходит, когда дело доходит до манипулирования данными, по сравнению с другими сервисами OGC, которые я использовал в последнее время. Кроме того, примите это с недолгой солью, это то, что я испытал при использовании услуг, поэтому я приложил предыдущие и последующие ссылки.

Стандарты OGC:
WMS
WFS

dkroy
источник
+1 за ссылку о том, когда использовать типы услуг.
OptimizePrime
Я думаю, что есть опечатка. Ваше второе появление "WFS", похоже, должно читаться как "WMS".
canisrufus
Спасибо, случилось то, что я отредактировал, чтобы исправить поток предложений, а затем я считаю, что случайно изменил то, что изначально хотел сказать.
Дкрой