SLD: Filter Encoding
Добавлено: 05 апр 2010, 11:25
UMN MapServer. Задаю фильтр в файле SLD (OGC Filter Encoding):
Конструкция эквивалентна c_ring_e = (UKRAINE || RUSSIA)
Это работает. Если Equal заменить на IsLike, то срабатывает только последнее сравнение в фильтре. Т.е. не выполняется OR. (Замена на wild-char "." или "*" дает тот же эффект).
Может кто припомнит особенности IsLike, которые не позволяют объединять несколько сравнений?
Конструкция эквивалентна c_ring_e = (UKRAINE || RUSSIA)
Код: Выделить всё
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
<OR>
<PropertyIsEqualTo>
<PropertyName>c_ring_e</PropertyName>
<Literal>UKRAINE</Literal>
</PropertyIsEqualTo>
<PropertyIsEqualTo>
<PropertyName>c_ring_e</PropertyName>
<Literal>RUSSIA</Literal>
</PropertyIsEqualTo>
</OR>
</ogc:Filter>
Код: Выделить всё
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
<ogc:Or>
<ogc:PropertyIsLike>
<ogc:PropertyName>c_ring_e</ogc:PropertyName>
<ogc:Literal>UKRAINE</ogc:Literal>
</ogc:PropertyIsLike>
<ogc:PropertyIsLike>
<ogc:PropertyName>c_ring_e</ogc:PropertyName>
<ogc:Literal>RUSSIA</ogc:Literal>
</ogc:PropertyIsLike>
</ogc:Or>
</ogc:Filter>