Files
openlayers/examples/style-rules.js
Tim Schaub 12bee3178e Moving the feature management to the layer
The source will be responsible for fetching vector data.
2013-03-05 12:46:55 +01:00

100 lines
2.4 KiB
JavaScript

goog.require('ol.Collection');
goog.require('ol.Coordinate');
goog.require('ol.Expression');
goog.require('ol.Feature');
goog.require('ol.Map');
goog.require('ol.RendererHint');
goog.require('ol.View2D');
goog.require('ol.filter.Filter');
goog.require('ol.geom.LineString');
goog.require('ol.layer.Vector');
goog.require('ol.projection');
goog.require('ol.source.Vector');
goog.require('ol.style.Line');
goog.require('ol.style.Rule');
goog.require('ol.style.Style');
var style = new ol.style.Style({rules: [
new ol.style.Rule({
filter: new ol.filter.Filter(function(feature) {
return feature.get('where') == 'outer';
}),
symbolizers: [
new ol.style.Line({
strokeStyle: new ol.Expression('color'),
strokeWidth: 4,
opacity: 1
})
]
}),
new ol.style.Rule({
filter: new ol.filter.Filter(function(feature) {
return feature.get('where') == 'inner';
}),
symbolizers: [
new ol.style.Line({
strokeStyle: '#013',
strokeWidth: 4,
opacity: 1
}),
new ol.style.Line({
strokeStyle: new ol.Expression('color'),
strokeWidth: 2,
opacity: 1
})
]
})
]});
var vector = new ol.layer.Vector({
style: style,
source: new ol.source.Vector({
projection: ol.projection.getFromCode('EPSG:3857')
})
});
vector.addFeatures([
new ol.Feature({
g: new ol.geom.LineString([[-10000000, -10000000], [10000000, 10000000]]),
'color': '#BADA55',
'where': 'inner'
}),
new ol.Feature({
g: new ol.geom.LineString([[-10000000, 10000000], [10000000, -10000000]]),
'color': '#BADA55',
'where': 'inner'
}),
new ol.Feature({
g: new ol.geom.LineString([[-10000000, -10000000], [-10000000, 10000000]]),
'color': '#013',
'where': 'outer'
}),
new ol.Feature({
g: new ol.geom.LineString([[-10000000, 10000000], [10000000, 10000000]]),
'color': '#013',
'where': 'outer'
}),
new ol.Feature({
g: new ol.geom.LineString([[10000000, 10000000], [10000000, -10000000]]),
'color': '#013',
'where': 'outer'
}),
new ol.Feature({
g: new ol.geom.LineString([[10000000, -10000000], [-10000000, -10000000]]),
'color': '#013',
'where': 'outer'
})
]);
var map = new ol.Map({
layers: new ol.Collection([vector]),
renderer: ol.RendererHint.CANVAS,
target: 'map',
view: new ol.View2D({
center: new ol.Coordinate(0, 0),
zoom: 2
})
});