that Andreas has been working so hard on. I think this is the single most awesome commit I've ever had the pleasure of committing. The results of this commit are described on http://trac.openlayers.org/wiki/Styles: essentially, this makes it possible to style features in all kinds of fun ways based on rules, and will also form the underlying basis for #533. Things this patch adds: * OL.Rule classes. These classes allow you to do tests against the propertie of a feature, and set a style based on these properties -- so you can compare the 'speedlimit' property of a line, and test if it is > 60, and if it is greater than 60, render it in a different color. You can also test combinations of rules using the OL.Rule.Logical class, and test featureids with the FeatureID class. * OL.Style class: The OL.Style class lets you wrap up Rules into styles that can be used with drawFeature to draw the feature in the selected style. * OL.Layer.Vector.drawFeature will check if the given style is an OL.Style object, and if so, it will draw the feature accordingly. examples/georss-flickr.html shows usage of these classes. Many, many thanks go to Andreas for all his hard work on this: this code really is very pretty, and includes unit tests for all the classes (and we know that I am a big fan of tests.) Three cheers for Andreas: Hip hip, hooray! hip hip, hooray! hip hip, hooray! git-svn-id: http://svn.openlayers.org/trunk/openlayers@5429 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
30 lines
776 B
HTML
30 lines
776 B
HTML
<html>
|
|
<head>
|
|
<script src="../lib/OpenLayers.js"></script>
|
|
<script type="text/javascript">
|
|
|
|
function test_Rule_constructor(t) {
|
|
t.plan(3);
|
|
|
|
var options = {'foo': 'bar'};
|
|
var rule = new OpenLayers.Rule(options);
|
|
t.ok(rule instanceof OpenLayers.Rule,
|
|
"new OpenLayers.Rule returns object" );
|
|
t.eq(rule.foo, "bar", "constructor sets options correctly");
|
|
t.eq(typeof rule.evaluate, "function", "rule has an evaluate function");
|
|
}
|
|
|
|
function test_Rule_destroy(t) {
|
|
t.plan(1);
|
|
|
|
var rule = new OpenLayers.Rule();
|
|
rule.destroy();
|
|
t.eq(rule.symbolizer, null, "symbolizer hash nulled properly");
|
|
}
|
|
|
|
</script>
|
|
</head>
|
|
<body>
|
|
</body>
|
|
</html>
|