This repository was archived by the owner on Jan 12, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 131
This repository was archived by the owner on Jan 12, 2024. It is now read-only.
Only write XML rules that apply to minzoom/maxzoom of the containing layer #469
Copy link
Copy link
Closed
Labels
Milestone
Description
If a layer is restricted to certain zoom levels by minzoom/maxzoom properties it can get rule that can never apply for this layer because they only apply for scales outside minzoom/maxzoom. The following example output shows a case were only one of the rules is needed:
<Style name="place1" filter-mode="first">
<Rule>
<MaxScaleDenominator>50000</MaxScaleDenominator>
<MinScaleDenominator>5000</MinScaleDenominator>
<Filter>([type] = 'hamlet')</Filter>
<TextSymbolizer fontset-name="fontset-1" fill="#000000" placement="point" wrap-width="65" minimum-distance="10" halo-radius="2" halo-fill="#ffffff" size="10"><![CDATA[[name]]]></TextSymbolizer>
</Rule>
<Rule>
<MaxScaleDenominator>200000</MaxScaleDenominator>
<MinScaleDenominator>50000</MinScaleDenominator>
<Filter>([type] = 'suburb')</Filter>
<TextSymbolizer fontset-name="fontset-1" fill="#000000" placement="point" wrap-width="65" minimum-distance="10" halo-radius="2" halo-fill="#ffffff" size="10"><![CDATA[[name]]]></TextSymbolizer>
</Rule>
<Rule>
<MaxScaleDenominator>50000</MaxScaleDenominator>
<MinScaleDenominator>5000</MinScaleDenominator>
<Filter>([type] = 'village')</Filter>
<TextSymbolizer size="12" fontset-name="fontset-1" fill="#000000" placement="point" wrap-width="65" minimum-distance="10" halo-radius="2" halo-fill="#ffffff"><![CDATA[[name]]]></TextSymbolizer>
</Rule>
<Rule>
<MaxScaleDenominator>200000</MaxScaleDenominator>
<MinScaleDenominator>50000</MinScaleDenominator>
<Filter>([type] = 'village')</Filter>
<TextSymbolizer fontset-name="fontset-1" fill="#000000" placement="point" wrap-width="65" minimum-distance="10" halo-radius="2" halo-fill="#ffffff" size="10"><![CDATA[[name]]]></TextSymbolizer>
</Rule>
<Rule>
<MaxScaleDenominator>100000</MaxScaleDenominator>
<MinScaleDenominator>12500</MinScaleDenominator>
<Filter>([type] = 'town')</Filter>
<TextSymbolizer size="12" halo-fill="#ffffff" placement="point" wrap-width="65" minimum-distance="10" fontset-name="fontset-0" halo-radius="2" fill="#222222"><![CDATA[[name]]]></TextSymbolizer>
</Rule>
<Rule>
<MaxScaleDenominator>400000</MaxScaleDenominator>
<MinScaleDenominator>100000</MinScaleDenominator>
<Filter>([type] = 'town')</Filter>
<TextSymbolizer halo-fill="#ffffff" placement="point" wrap-width="65" minimum-distance="10" size="10" fontset-name="fontset-0" halo-radius="2" fill="#222222"><![CDATA[[name]]]></TextSymbolizer>
</Rule>
<Rule>
<MaxScaleDenominator>1500000</MaxScaleDenominator>
<MinScaleDenominator>400000</MinScaleDenominator>
<Filter>([type] = 'town')</Filter>
<TextSymbolizer placement="point" wrap-width="65" minimum-distance="10" size="10" fontset-name="fontset-0" halo-radius="2" fill="#222222" halo-fill="#eeeeee"><![CDATA[[name]]]></TextSymbolizer>
</Rule>
<Rule>
<MaxScaleDenominator>50000</MaxScaleDenominator>
<MinScaleDenominator>25000</MinScaleDenominator>
<Filter>([type] = 'city')</Filter>
<TextSymbolizer size="14" placement="point" wrap-width="65" minimum-distance="10" fontset-name="fontset-0" halo-radius="2" fill="#222222" halo-fill="#eeeeee"><![CDATA[[name]]]></TextSymbolizer>
</Rule>
<Rule>
<MaxScaleDenominator>1500000</MaxScaleDenominator>
<MinScaleDenominator>50000</MinScaleDenominator>
<Filter>([type] = 'city')</Filter>
<TextSymbolizer size="12" placement="point" wrap-width="65" minimum-distance="10" fontset-name="fontset-0" halo-radius="2" fill="#222222" halo-fill="#eeeeee"><![CDATA[[name]]]></TextSymbolizer>
</Rule>
<Rule>
<MaxScaleDenominator>50000000</MaxScaleDenominator>
<MinScaleDenominator>1500000</MinScaleDenominator>
<Filter>([type] = 'city')</Filter>
<TextSymbolizer placement="point" wrap-width="65" minimum-distance="10" fontset-name="fontset-0" halo-radius="2" fill="#222222" size="10" halo-fill="#eeeeee"><![CDATA[[name]]]></TextSymbolizer>
</Rule>
<Rule>
<MaxScaleDenominator>200000000</MaxScaleDenominator>
<MinScaleDenominator>50000000</MinScaleDenominator>
<Filter>([type] = 'country')</Filter>
<TextSymbolizer size="10" fontset-name="fontset-1" halo-radius="2" fill="#222222" halo-fill="#eeeeee" placement="point" wrap-width="65" minimum-distance="10"><![CDATA[[name]]]></TextSymbolizer>
</Rule>
<Rule>
<MaxScaleDenominator>200000000</MaxScaleDenominator>
<MinScaleDenominator>100000000</MinScaleDenominator>
<Filter>([type] = 'continent')</Filter>
<TextSymbolizer size="14" fontset-name="fontset-0" halo-radius="2" fill="#222222" halo-fill="#eeeeee" placement="point" wrap-width="65" minimum-distance="10"><![CDATA[[name]]]></TextSymbolizer>
</Rule>
<Rule>
<MaxScaleDenominator>500000000</MaxScaleDenominator>
<MinScaleDenominator>200000000</MinScaleDenominator>
<Filter>([type] = 'continent')</Filter>
<TextSymbolizer size="12" fontset-name="fontset-0" halo-radius="2" fill="#222222" halo-fill="#eeeeee" placement="point" wrap-width="65" minimum-distance="10"><![CDATA[[name]]]></TextSymbolizer>
</Rule>
</Style>
<Layer name="place1"
maximum-scale-denominator="50000000"
minimum-scale-denominator="1500000"
srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs +over">
<StyleName>place1</StyleName>
</Layer>