Prevent image filter duplication. Fixes #270

This commit is contained in:
Tom MacWright 2013-04-16 10:24:48 -04:00
parent 0f65b869fd
commit b113bfea99
4 changed files with 51 additions and 2 deletions

View File

@ -28,9 +28,11 @@ tree.StyleXML = function(name, attachment, definitions, env) {
var attrs_xml = '';
if (image_filters.length) {
attrs_xml += ' image-filters="' + image_filters.map(function(f) {
attrs_xml += ' image-filters="' + _.chain(image_filters)
// prevent identical filters from being duplicated in the style
.uniq(function(i) { return i.id; }).map(function(f) {
return f.ev(env).toXML(env, true, ',', 'image-filter');
}).join(',') + '"';
}).value().join(',') + '"';
}
if (comp_op.length) {

View File

@ -0,0 +1,15 @@
{
"srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
"Stylesheet": [
"imagefilter-duplication.mss"
],
"Layer": [{
"name": "world",
"srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
"Datasource": {
"file": "http://tilemill-data.s3.amazonaws.com/test_data/shape_demo.zip",
"type": "shape"
}
}]
}

View File

@ -0,0 +1,5 @@
#world {
image-filters:agg-stack-blur(3,3);
[zoom=2] { line-width: 3; }
[zoom=3] { line-width: 5; }
}

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Map[]>
<Map srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over" maximum-extent="-20037508.34,-20037508.34,20037508.34,20037508.34">
<Style name="world" filter-mode="first" image-filters="agg-stack-blur(3,3)">
<Rule>
<MaxScaleDenominator>100000000</MaxScaleDenominator>
<MinScaleDenominator>50000000</MinScaleDenominator>
<LineSymbolizer stroke-width="5" />
</Rule>
<Rule>
<MaxScaleDenominator>200000000</MaxScaleDenominator>
<MinScaleDenominator>100000000</MinScaleDenominator>
<LineSymbolizer stroke-width="3" />
</Rule>
</Style>
<Layer name="world"
srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over">
<StyleName>world</StyleName>
<Datasource>
<Parameter name="file"><![CDATA[[absolute path]]]></Parameter>
<Parameter name="type"><![CDATA[shape]]></Parameter>
</Datasource>
</Layer>
</Map>