Skip to content
This repository has been archived by the owner on Jan 12, 2024. It is now read-only.

Commit

Permalink
Support exponential notation in filter values
Browse files Browse the repository at this point in the history
Closes #311
Includes testcase
  • Loading branch information
Sandro Santilli committed Nov 7, 2013
1 parent 5a7429d commit ce4c61c
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/carto/parser.js
Expand Up @@ -462,7 +462,7 @@ carto.Parser = function Parser(env) {
dimension: function() { dimension: function() {
var c = input.charCodeAt(i); var c = input.charCodeAt(i);
if ((c > 57 || c < 45) || c === 47) return; if ((c > 57 || c < 45) || c === 47) return;
var value = $(/^(-?\d*\.?\d+)(\%|\w+)?/); var value = $(/^(-?\d*\.?\d+(?:[eE][-+]?\d+)?)(\%|\w+)?/);
if (value) { if (value) {
return new tree.Dimension(value[1], value[2], memo); return new tree.Dimension(value[1], value[2], memo);
} }
Expand Down
15 changes: 15 additions & 0 deletions test/rendering/filterexp.mml
@@ -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": [
"filterexp.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"
}
}]
}

1 change: 1 addition & 0 deletions test/rendering/filterexp.mss
@@ -0,0 +1 @@
#world [a = 1.2e3][b = 1.2e-3][c = 1.2e+3] { polygon-fill:#fff; }
21 changes: 21 additions & 0 deletions test/rendering/filterexp.result
@@ -0,0 +1,21 @@
<?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">
<Rule>
<Filter>([a] = 1200) and ([b] = 0.0012) and ([c] = 1200)</Filter>
<PolygonSymbolizer fill="#ffffff" />
</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>

0 comments on commit ce4c61c

Please sign in to comment.