Merge pull request #790 from tschaub/expression

Expression parsing
This commit is contained in:
Tim Schaub
2013-06-26 16:40:08 -07:00
40 changed files with 4832 additions and 1011 deletions

View File

@@ -1,11 +1,8 @@
goog.require('ol.Expression');
goog.require('ol.Map');
goog.require('ol.RendererHint');
goog.require('ol.View2D');
goog.require('ol.control.defaults');
goog.require('ol.filter.Filter');
goog.require('ol.filter.Geometry');
goog.require('ol.geom.GeometryType');
goog.require('ol.expr');
goog.require('ol.layer.Vector');
goog.require('ol.parser.GeoJSON');
goog.require('ol.proj');
@@ -19,21 +16,17 @@ goog.require('ol.style.Text');
var style = new ol.style.Style({rules: [
new ol.style.Rule({
filter: new ol.filter.Filter(function(feature) {
return feature.get('where') == 'outer';
}),
filter: 'where == "outer"',
symbolizers: [
new ol.style.Line({
strokeColor: new ol.Expression('color'),
strokeColor: ol.expr.parse('color'),
strokeWidth: 4,
opacity: 1
})
]
}),
new ol.style.Rule({
filter: new ol.filter.Filter(function(feature) {
return feature.get('where') == 'inner';
}),
filter: 'where == "inner"',
symbolizers: [
new ol.style.Line({
strokeColor: '#013',
@@ -41,14 +34,14 @@ var style = new ol.style.Style({rules: [
opacity: 1
}),
new ol.style.Line({
strokeColor: new ol.Expression('color'),
strokeColor: ol.expr.parse('color'),
strokeWidth: 2,
opacity: 1
})
]
}),
new ol.style.Rule({
filter: new ol.filter.Geometry(ol.geom.GeometryType.POINT),
filter: 'geometryType("point")',
symbolizers: [
new ol.style.Shape({
size: 40,
@@ -56,7 +49,7 @@ var style = new ol.style.Style({rules: [
}),
new ol.style.Text({
color: '#bada55',
text: new ol.Expression('label'),
text: ol.expr.parse('label'),
fontFamily: 'Calibri,sans-serif',
fontSize: 14
})

View File

@@ -1,8 +1,7 @@
goog.require('ol.Expression');
goog.require('ol.Map');
goog.require('ol.RendererHint');
goog.require('ol.View2D');
goog.require('ol.filter.Filter');
goog.require('ol.expr');
goog.require('ol.layer.TileLayer');
goog.require('ol.layer.Vector');
goog.require('ol.parser.GeoJSON');
@@ -19,6 +18,11 @@ var raster = new ol.layer.TileLayer({
source: new ol.source.MapQuestOpenAerial()
});
// TODO: discuss scale dependent rules
ol.expr.register('resolution', function() {
return map.getView().getView2D().getResolution();
});
var vector = new ol.layer.Vector({
source: new ol.source.Vector({
projection: ol.proj.get('EPSG:4326')
@@ -32,13 +36,11 @@ var vector = new ol.layer.Vector({
]
}),
new ol.style.Rule({
filter: new ol.filter.Filter(function() {
return map.getView().getResolution() < 5000;
}),
filter: 'resolution() < 5000',
symbolizers: [
new ol.style.Text({
color: '#bada55',
text: new ol.Expression('name'),
text: ol.expr.parse('name'),
fontFamily: 'Calibri,sans-serif',
fontSize: 12
})