Clip / Filter Raster обслуживается геосервером как WMS - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть растровый слой imageMoasic в GeoServer. Я напрямую обрабатываю геотиды из моего API в данные экземпляра GeoServer и оттуда создаю растровый слой. Я получаю доступ к растровому слою как WMS. Моя проблема заключается в следующем: мои геотифы покрывают большой полигон, который может иметь 5-6 состояний, но на стороне клиента я хочу обрезать растр, чтобы показать конкретное состояние для конкретного клиента. Например, если мои чикагские клиенты входят в мое приложение, я не хочу, чтобы они видели другие части большого многоугольника, а только Чикаго. Какие варианты в этом случае?

Ответы [ 2 ]

0 голосов
/ 28 апреля 2018

Нет, вы ошибаетесь относительно природы WMS, она возвращает изображение ваших данных, а не растр. Таким образом, он всегда будет возвращать прямоугольное изображение, поэтому единственный способ «обрезать» результат - изменить слои, которые запрашивает ваш клиент.

Таким образом, вы можете разделить входные растры по областям, которые вы хотите разместить на сервере, и добавить их в GeoServer в виде отдельных слоев. Тогда ваш клиент в Чикаго только запрашивает слой Чикаго, а ваш нью-йоркский клиент только запрашивает слой Нью-Йорка.

В качестве альтернативы, если все, что вас интересует, это опыт зрителя, просто запустите клиента, уже увеличенного в интересующей области. Это не помешает пользователю из Нью-Йорка уменьшить масштаб и переместиться в Чикаго, но он не увидит Чикаго, чтобы начать.

0 голосов
/ 27 апреля 2018

Я подозреваю, что ваш лучший выбор - использовать геометрический параметр CQL_FILTER . Фильтры CQL могут использовать любую из доступных функций фильтрации в GeoServer.

Вот фрагмент из документации, которая достигает вашей цели, метинкс.

enter image description here

...