Страница 1 из 1

SLD: Filter Encoding

Добавлено: 05 апр 2010, 11:25
Mavka
UMN MapServer. Задаю фильтр в файле SLD (OGC Filter Encoding):
Конструкция эквивалентна 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> 
Это работает. Если Equal заменить на IsLike, то срабатывает только последнее сравнение в фильтре. Т.е. не выполняется OR. (Замена на wild-char "." или "*" дает тот же эффект).

Код: Выделить всё

<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> 
Может кто припомнит особенности IsLike, которые не позволяют объединять несколько сравнений?

Re: SLD: Filter Encoding

Добавлено: 05 апр 2010, 12:36
Mavka