в целом:
Можно по-разному стиль некоторые особенности Wms из запроса одиночные Wms на основе CQL фильтра, или другого параметра?
в частности:
на запрос WMS, возвращая растр из набора функций (т.е. точек стилизованных в виде красных точек),
я хочу Geoserver'у, чтобы differrently стиль (синяя точка) только одной конкретной функции, идентифицированной как HTTP- REQ-параметр передан вместе с WMS запрашивать
держать остальных в коллекции со стилем по умолчанию
и избежать перекрытия двух WMS:
Стайлинг WMS по параметру запроса
ответ
Более быстрый (и, возможно, проще) путь, чем @ предложение ФМБА является просить слой дважды, один раз с цветом по умолчанию, и второй раз с фильтром и стиль подсветки , Вы можете либо сделать это в одном запросе, либо сделать два запроса, чтобы браузер мог кэшировать уровень по умолчанию и только обновлять основные моменты.
Для первого запроса он будет выглядеть примерно так:
http://....../wms?service=wms&.....&layers=dots,dots&styles=,highlight&cql_filter=INCLUDE;INTERSECT(the_geom,%20POINT%20(-74.817265%2040.5296504))
Это просит слой (точки) дважды, один раз со стилем по умолчанию (или вы можете использовать именованный стиль здесь тоже), а затем с выделить стиль. Наконец, вы должны предоставить два фильтра (первое верно для возврата всего).
, а во втором вы просто добавили бы другой слой, как обычно.
Это, безусловно, лучшее и простое решение, чем мое! ;) – Fbma
Отлично, вы просто попали! – aleclofabbro
@iant: примеры в моем оригинальном Q могут вводить в заблуждение, вызывать «выбранный» стиль, который имеет ту же форму, что и «невыбранный», работает ли он для разных форм или просто перекрывает два wms?[отредактировал Q, чтобы уточнить] – aleclofabbro
Для этого вы можете использовать оба фильтра и замену переменных. Ваш SLD может быть что-то вроде этого:
<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0"
xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd"
xmlns="http://www.opengis.net/sld"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- a Named Layer is the basic building block of an SLD document -->
<NamedLayer>
<Name>default_point</Name>
<UserStyle>
<!-- Styles can have names, titles and abstracts -->
<Title>Default Point</Title>
<Abstract>A sample style that draws a point</Abstract>
<FeatureTypeStyle>
<Rule>
<Name>rule1</Name>
<Title>Red Square</Title>
<PointSymbolizer>
<Graphic>
<Mark>
<WellKnownName>square</WellKnownName>
<Fill>
<CssParameter name="fill">#FF0000</CssParameter>
</Fill>
</Mark>
<Size>6</Size>
</Graphic>
</PointSymbolizer>
</Rule>
<Rule>
<Name>rule2</Name>
<Title>Blue Square</Title>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>name</ogc:PropertyName>
<ogc:Function name="env">
<ogc:Literal>element</ogc:Literal>
</ogc:Function>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<PointSymbolizer>
<Graphic>
<Mark>
<WellKnownName>square</WellKnownName>
<Fill>
<CssParameter name="fill">#0000FF</CssParameter>
</Fill>
</Mark>
<Size>6</Size>
</Graphic>
</PointSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
Смотрите, что мы используем параметр, называемый «элемент» (как мы определили в SLD) в параметре «окр» (в конце запроса), которым можно присвоить значение в запросе Wms, поэтому только функцию со значением «name_yo_want_to_filter» для «имя» атрибута будет визуализируется как синий, как это:
http://your_geoserver/wms?LAYERS=your_layer&STYLES=&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG%3A25830&BBOX=177329.45520721,4198063.2254456,177681.24924735,4198495.164411&WIDTH=417&HEIGHT=512&env=element:name_yo_want_to_filter
Имейте в виду, что «FID 'не будет действительным параметром, поскольку он обычно скрыт, поэтому геосервер не примет фильтр' PropertyIsEqualTo '.
Ref: http://docs.geoserver.org/latest/en/user/styling/sld-extensions/substitution.html Ref: http://docs.geoserver.org/latest/en/user/styling/sld-reference/filters.html
ну, Адаптер @iant действительно опережает мою конкретную проблему, но +1 для вашего очень полезного совета тоже! – aleclofabbro
- 1. Фильтр WMS по дате
- 2. Как Acces параметру запроса
- 3. Фильтрация по параметру & Routing
- 4. Нулевое значение по параметру
- 5. заказать по параметру
- 6. Общий порядок по параметру
- 7. Полиморфизм по функциональному параметру
- 8. DateAdd (по параметру
- 9. Группа SSRS по параметру
- 10. Таблица - Фильтр по параметру
- 11. ASP.NET MVC Маршрут по первому (безымянному) строковому параметру запроса
- 12. Регулярного выражения, которое соответствует по необязательному параметру строки запроса
- 13. Добавить CDATA по параметру строки запроса, используя только JAX-WS
- 14. Диагональ Textbox границы стайлинг по CSS
- 15. Передача результатов запроса параметру в хранимой процедуре
- 16. Используйте оператор LIKE по параметру
- 17. Construct Дата Строка по параметру
- 18. Пролог, сортировка фактов по параметру
- 19. Java Multithread, упорядоченный по параметру
- 20. Как отсортировать по второму параметру
- 21. Jenkins skip SCM по параметру
- 22. Сортировка и объект по параметру
- 23. Множество значений по одному параметру
- 24. Simplfying kind по фиксирующему параметру
- 25. Устранение зависимостей по пользовательскому параметру
- 26. Угловой маршрутизации по зашифрованному параметру
- 27. Перенаправление действий по параметру MVC
- 28. вары по первому параметру петель
- 29. XSL Группировка по вложенному параметру
- 30. Удаление объектов по параметру даты.
Как в [http://docs.geoserver.org/stable/en/user/styling/sld-working.html]: «Документ SLD может быть предоставлен непосредственно в запросе WMS GetMap GET с использованием стиля SLD_BODY = Параметр SLD XML должен быть закодирован в URL-адресе. ", будет ли это подходящим сценарием для вас, создавая SLD на лету за запрос с соответствующим фильтром? – Fbma
@Fbma Я думаю, что бы глобально переделал слой, я отредактировал свой Q, так как это может быть непонятно .. – aleclofabbro
ok я вижу .. перекрытия можно избежать, установив 1-й фильтр как отрицание второго;) – aleclofabbro