Pullup commits from trunk to 2.6 branch:
* virtualStyle typo (Closes #1495) * JSON fix for Safari 3.1 (Closes #1493) * panzoombar off-by-one (Closes #1486) * Handler Hover exception (Closes #1480) * Popup.framedcloud exception (Closes #1479) * VML Renderer when including namespace in page (Closes #1477) * SLD/Rule/Filter changes -- most of this commit (Closes #1492) git-svn-id: http://svn.openlayers.org/branches/openlayers/2.6@6819 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -33,6 +33,23 @@
|
||||
map.addControl(control2, new OpenLayers.Pixel(100,100));
|
||||
t.eq( control2.div.style.top, "100px", "2nd control div is located correctly");
|
||||
}
|
||||
function test_Control_PanZoomBar_divClick (t) {
|
||||
t.plan(2);
|
||||
map = new OpenLayers.Map('map', {controls:[]});
|
||||
var layer = new OpenLayers.Layer.WMS("Test Layer",
|
||||
"http://octo.metacarta.com/cgi-bin/mapserv?",
|
||||
{map: "/mapdata/vmap_wms.map", layers: "basic"});
|
||||
map.addLayer(layer);
|
||||
control = new OpenLayers.Control.PanZoomBar();
|
||||
map.addControl(control);
|
||||
control.divClick({'xy': {'x': 0, 'y': 50}, which: 1});
|
||||
t.eq(map.zoom, 11, "zoom is correct on standard map");
|
||||
|
||||
map.fractionalZoom = true;
|
||||
control.divClick({'xy': {'x': 0, 'y': 49}, which: 1});
|
||||
t.eq(map.zoom.toFixed(3), '10.545', "zoom is correct on fractional zoom map");
|
||||
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
<html>
|
||||
<head>
|
||||
<script src="../lib/OpenLayers.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
function test_initialize(t) {
|
||||
t.plan(3);
|
||||
|
||||
var options = {'foo': 'bar'};
|
||||
var filter = new OpenLayers.Filter(options);
|
||||
t.ok(filter instanceof OpenLayers.Filter,
|
||||
"new OpenLayers.Filter returns object" );
|
||||
t.eq(filter.foo, "bar", "constructor sets options correctly");
|
||||
t.eq(typeof filter.evaluate, "function", "filter has an evaluate function");
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
@@ -7,41 +7,41 @@
|
||||
t.plan(3);
|
||||
|
||||
var options = {'foo': 'bar'};
|
||||
var rule = new OpenLayers.Rule.Comparison(options);
|
||||
t.ok(rule instanceof OpenLayers.Rule.Comparison,
|
||||
"new OpenLayers.Rule.Comparison returns object" );
|
||||
t.eq(rule.foo, "bar", "constructor sets options correctly");
|
||||
t.eq(typeof rule.evaluate, "function", "rule has an evaluate function");
|
||||
var filter = new OpenLayers.Filter.Comparison(options);
|
||||
t.ok(filter instanceof OpenLayers.Filter.Comparison,
|
||||
"new OpenLayers.Filter.Comparison returns object" );
|
||||
t.eq(filter.foo, "bar", "constructor sets options correctly");
|
||||
t.eq(typeof filter.evaluate, "function", "filter has an evaluate function");
|
||||
}
|
||||
|
||||
function test_Comparison_destroy(t) {
|
||||
t.plan(1);
|
||||
|
||||
var rule = new OpenLayers.Rule.Comparison();
|
||||
rule.destroy();
|
||||
t.eq(rule.symbolizer, null, "symbolizer hash nulled properly");
|
||||
var filter = new OpenLayers.Filter.Comparison();
|
||||
filter.destroy();
|
||||
t.eq(filter.symbolizer, null, "symbolizer hash nulled properly");
|
||||
}
|
||||
|
||||
function test_Comparison_value2regex(t) {
|
||||
t.plan(2);
|
||||
|
||||
var rule = new OpenLayers.Rule.Comparison({
|
||||
var filter = new OpenLayers.Filter.Comparison({
|
||||
property: "foo",
|
||||
value: "*b?r\\*\\?*",
|
||||
type: OpenLayers.Rule.Comparison.LIKE});
|
||||
rule.value2regex("*", "?", "\\");
|
||||
t.eq(rule.value, ".*b.r\\*\\?.*", "Regular expression generated correctly.");
|
||||
type: OpenLayers.Filter.Comparison.LIKE});
|
||||
filter.value2regex("*", "?", "\\");
|
||||
t.eq(filter.value, ".*b.r\\*\\?.*", "Regular expression generated correctly.");
|
||||
|
||||
rule.value = "%b.r!%!.%";
|
||||
rule.value2regex("%", ".", "!");
|
||||
t.eq(rule.value, ".*b.r\\%\\..*", "Regular expression with different wildcard and escape chars generated correctly.");
|
||||
filter.value = "%b.r!%!.%";
|
||||
filter.value2regex("%", ".", "!");
|
||||
t.eq(filter.value, ".*b.r\\%\\..*", "Regular expression with different wildcard and escape chars generated correctly.");
|
||||
}
|
||||
|
||||
function test_regex2value(t) {
|
||||
t.plan(8);
|
||||
|
||||
function r2v(regex) {
|
||||
return OpenLayers.Rule.Comparison.prototype.regex2value.call(
|
||||
return OpenLayers.Filter.Comparison.prototype.regex2value.call(
|
||||
{value: regex}
|
||||
);
|
||||
}
|
||||
@@ -60,11 +60,11 @@
|
||||
function test_Comparison_evaluate(t) {
|
||||
t.plan(5);
|
||||
|
||||
var rule = new OpenLayers.Rule.Comparison({
|
||||
var filter = new OpenLayers.Filter.Comparison({
|
||||
property: "area",
|
||||
lowerBoundary: 1000,
|
||||
upperBoundary: 4999,
|
||||
type: OpenLayers.Rule.Comparison.BETWEEN});
|
||||
type: OpenLayers.Filter.Comparison.BETWEEN});
|
||||
|
||||
var features = [
|
||||
new OpenLayers.Feature.Vector(null, {
|
||||
@@ -76,21 +76,21 @@
|
||||
new OpenLayers.Feature.Vector(null, {
|
||||
area: 5000})];
|
||||
// PropertyIsBetween filter: lower and upper boundary are inclusive
|
||||
var ruleResults = {
|
||||
var filterResults = {
|
||||
0: false,
|
||||
1: true,
|
||||
2: true,
|
||||
3: false};
|
||||
for (var i in ruleResults) {
|
||||
var result = rule.evaluate(features[i]);
|
||||
t.eq(result, ruleResults[i], "feature "+i+
|
||||
for (var i in filterResults) {
|
||||
var result = filter.evaluate(features[i].attributes);
|
||||
t.eq(result, filterResults[i], "feature "+i+
|
||||
" evaluates to "+result.toString()+" correctly.");
|
||||
}
|
||||
rule.context = {
|
||||
var context = {
|
||||
area: 4998
|
||||
}
|
||||
var result = rule.evaluate();
|
||||
t.eq(result, true, "evaluation against custom rule context works.");
|
||||
};
|
||||
var result = filter.evaluate(context);
|
||||
t.eq(result, true, "evaluation against custom filter context works.");
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
@@ -0,0 +1,47 @@
|
||||
<html>
|
||||
<head>
|
||||
<script src="../../lib/OpenLayers.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
function test_FeatureId_constructor(t) {
|
||||
t.plan(3);
|
||||
|
||||
var options = {'foo': 'bar'};
|
||||
var filter = new OpenLayers.Filter.FeatureId(options);
|
||||
t.ok(filter instanceof OpenLayers.Filter.FeatureId,
|
||||
"new OpenLayers.Filter.FeatureId returns object" );
|
||||
t.eq(filter.foo, "bar", "constructor sets options correctly");
|
||||
t.eq(typeof filter.evaluate, "function", "filter has an evaluate function");
|
||||
}
|
||||
|
||||
function test_FeatureId_destroy(t) {
|
||||
t.plan(1);
|
||||
|
||||
var filter = new OpenLayers.Filter.FeatureId();
|
||||
filter.destroy();
|
||||
t.eq(filter.symbolizer, null, "symbolizer hash nulled properly");
|
||||
}
|
||||
|
||||
function test_FeatureId_evaluate(t) {
|
||||
t.plan(3);
|
||||
|
||||
var filter = new OpenLayers.Filter.FeatureId(
|
||||
{fids: ["fid_1", "fid_3"]});
|
||||
|
||||
var filterResults = {
|
||||
"fid_1" : true,
|
||||
"fid_2" : false,
|
||||
"fid_3" : true};
|
||||
for (var i in filterResults) {
|
||||
var feature = new OpenLayers.Feature.Vector();
|
||||
feature.fid = i;
|
||||
var result = filter.evaluate(feature);
|
||||
t.eq(result, filterResults[i], "feature "+i+" evaluates to "+result.toString()+" correctly.");
|
||||
feature.destroy();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,41 @@
|
||||
<html>
|
||||
<head>
|
||||
<script src="../../lib/OpenLayers.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
function test_Logical_constructor(t) {
|
||||
t.plan(3);
|
||||
|
||||
var options = {'foo': 'bar'};
|
||||
var filter = new OpenLayers.Filter.Logical(options);
|
||||
t.ok(filter instanceof OpenLayers.Filter.Logical,
|
||||
"new OpenLayers.Filter.Logical returns object" );
|
||||
t.eq(filter.foo, "bar", "constructor sets options correctly");
|
||||
t.eq(typeof filter.evaluate, "function", "filter has an evaluate function");
|
||||
}
|
||||
|
||||
function test_Logical_destroy(t) {
|
||||
t.plan(1);
|
||||
|
||||
var filter = new OpenLayers.Filter.Logical();
|
||||
filter.destroy();
|
||||
t.eq(filter.filters, null, "filters array nulled properly");
|
||||
}
|
||||
|
||||
function test_Logical_evaluate(t) {
|
||||
t.plan(1);
|
||||
|
||||
var filter = new OpenLayers.Filter.Logical({
|
||||
type: OpenLayers.Filter.Logical.NOT});
|
||||
filter.filters.push(new OpenLayers.Filter());
|
||||
|
||||
var feature = new OpenLayers.Feature.Vector();
|
||||
|
||||
t.eq(filter.evaluate(feature.attributes), false,
|
||||
"feature evaluates to false correctly.");
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,158 @@
|
||||
<html>
|
||||
<head>
|
||||
<script src="../../../lib/OpenLayers.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
var sld =
|
||||
'<StyledLayerDescriptor version="1.0.0" ' +
|
||||
'xmlns="http://www.opengis.net/sld" ' +
|
||||
'xmlns:gml="http://www.opengis.net/gml" ' +
|
||||
'xmlns:ogc="http://www.opengis.net/ogc" ' +
|
||||
'xmlns:xlink="http://www.w3.org/1999/xlink" ' +
|
||||
'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' +
|
||||
'xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd">' +
|
||||
'<NamedLayer>' +
|
||||
'<Name>AAA161</Name>' +
|
||||
'<UserStyle>' +
|
||||
'<FeatureTypeStyle>' +
|
||||
'<Rule>' +
|
||||
'<Name>stortsteen</Name>' +
|
||||
'<ogc:Filter>' +
|
||||
'<ogc:PropertyIsEqualTo>' +
|
||||
'<ogc:PropertyName>CTE</ogc:PropertyName>' +
|
||||
'<ogc:Literal>V0305</ogc:Literal>' +
|
||||
'</ogc:PropertyIsEqualTo>' +
|
||||
'</ogc:Filter>' +
|
||||
'<MaxScaleDenominator>50000</MaxScaleDenominator>' +
|
||||
'<PolygonSymbolizer>' +
|
||||
'<Fill>' +
|
||||
'<CssParameter name="fill">#ffffff</CssParameter>' +
|
||||
'</Fill>' +
|
||||
'<Stroke>' +
|
||||
'<CssParameter name="stroke">#000000</CssParameter>' +
|
||||
'</Stroke>' +
|
||||
'</PolygonSymbolizer>' +
|
||||
'</Rule>' +
|
||||
'<Rule>' +
|
||||
'<Name>betonbekleding</Name>' +
|
||||
'<ogc:Filter>' +
|
||||
'<ogc:PropertyIsLessThan>' +
|
||||
'<ogc:PropertyName>CTE</ogc:PropertyName>' +
|
||||
'<ogc:Literal>1000</ogc:Literal>' +
|
||||
'</ogc:PropertyIsLessThan>' +
|
||||
'</ogc:Filter>' +
|
||||
'<MaxScaleDenominator>50000</MaxScaleDenominator>' +
|
||||
'<PolygonSymbolizer>' +
|
||||
'<Fill>' +
|
||||
'<CssParameter name="fill">#ffff00</CssParameter>' +
|
||||
'</Fill>' +
|
||||
'<Stroke>' +
|
||||
'<CssParameter name="stroke">#0000ff</CssParameter>' +
|
||||
'</Stroke>' +
|
||||
'</PolygonSymbolizer>' +
|
||||
'</Rule>' +
|
||||
'</FeatureTypeStyle>' +
|
||||
'</UserStyle>' +
|
||||
'</NamedLayer>' +
|
||||
'<NamedLayer>' +
|
||||
'<Name>Second Layer</Name>' +
|
||||
'<UserStyle>' +
|
||||
'<FeatureTypeStyle>' +
|
||||
'<Rule>' +
|
||||
'<Name>first rule second layer</Name>' +
|
||||
'<ogc:Filter>' +
|
||||
'<ogc:Or>' +
|
||||
'<ogc:PropertyIsBetween>' +
|
||||
'<ogc:PropertyName>number</ogc:PropertyName>' +
|
||||
'<ogc:LowerBoundary>' +
|
||||
'<ogc:Literal>1064866676</ogc:Literal>' +
|
||||
'</ogc:LowerBoundary>' +
|
||||
'<ogc:UpperBoundary>' +
|
||||
'<ogc:Literal>1065512599</ogc:Literal>' +
|
||||
'</ogc:UpperBoundary>' +
|
||||
'</ogc:PropertyIsBetween>' +
|
||||
'<ogc:PropertyIsLike wildCard="*" singleChar="." escape="!">' +
|
||||
'<ogc:PropertyName>cat</ogc:PropertyName>' +
|
||||
'<ogc:Literal>*dog.food!*good</ogc:Literal>' +
|
||||
'</ogc:PropertyIsLike>' +
|
||||
'<ogc:Not>' +
|
||||
'<ogc:PropertyIsLessThanOrEqualTo>' +
|
||||
'<ogc:PropertyName>FOO</ogc:PropertyName>' +
|
||||
'<ogc:Literal>5000</ogc:Literal>' +
|
||||
'</ogc:PropertyIsLessThanOrEqualTo>' +
|
||||
'</ogc:Not>' +
|
||||
'</ogc:Or>' +
|
||||
'</ogc:Filter>' +
|
||||
'<MaxScaleDenominator>10000</MaxScaleDenominator>' +
|
||||
'<PointSymbolizer>' +
|
||||
'<Graphic>' +
|
||||
'<Mark>' +
|
||||
'<WellKnownName>star</WellKnownName>' +
|
||||
'<Fill>' +
|
||||
'<CssParameter name="fill">lime</CssParameter>' +
|
||||
'</Fill>' +
|
||||
'<Stroke>' +
|
||||
'<CssParameter name="stroke">olive</CssParameter>' +
|
||||
'<CssParameter name="stroke-width">2</CssParameter>' +
|
||||
'</Stroke>' +
|
||||
'</Mark>' +
|
||||
'</Graphic>' +
|
||||
'</PointSymbolizer>' +
|
||||
'</Rule>' +
|
||||
'</FeatureTypeStyle>' +
|
||||
'</UserStyle>' +
|
||||
'</NamedLayer>' +
|
||||
'</StyledLayerDescriptor>';
|
||||
|
||||
function test_read(t) {
|
||||
t.plan(6);
|
||||
|
||||
var parser = new OpenLayers.Format.SLD.v1_0_0();
|
||||
var xml = new OpenLayers.Format.XML();
|
||||
var obj = parser.read(xml.read(sld));
|
||||
|
||||
// test the named layer count
|
||||
var count = 0;
|
||||
for(var key in obj.namedLayers) {
|
||||
++count;
|
||||
}
|
||||
t.eq(count, 2, "correct number of named layers");
|
||||
|
||||
var layer, style, rule;
|
||||
|
||||
// check the first named layer
|
||||
layer = obj.namedLayers["AAA161"];
|
||||
t.ok(layer, "first named layer exists");
|
||||
t.ok(layer.userStyles instanceof Array, "(AAA161) layer has array of user styles");
|
||||
t.eq(layer.userStyles.length, 1, "(AAA161) first layer has a single user style");
|
||||
|
||||
// check the first user style
|
||||
style = layer.userStyles[0];
|
||||
t.ok(style instanceof OpenLayers.Style, "(AAA161,0) user style is instance of OpenLayers.Style");
|
||||
t.eq(style.rules.length, 2, "(AAA161,0) user style has 2 rules");
|
||||
|
||||
// check the first rule
|
||||
// etc. I'm convinced read works, really wanted to test write (since examples don't test that)
|
||||
// I'll add more tests here later.
|
||||
|
||||
}
|
||||
|
||||
function test_write(t) {
|
||||
t.plan(1);
|
||||
|
||||
// read first - testing that write produces the SLD aboce
|
||||
var parser = new OpenLayers.Format.SLD.v1_0_0();
|
||||
var xml = new OpenLayers.Format.XML();
|
||||
var obj = parser.read(xml.read(sld));
|
||||
|
||||
var node = parser.write(obj);
|
||||
t.xml_eq(node, sld, "SLD correctly written");
|
||||
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,18 @@
|
||||
<html>
|
||||
<head>
|
||||
<script src="../../lib/OpenLayers.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
function test_Popup_FramedCloud_setHTML(t) {
|
||||
t.plan(1);
|
||||
popup = new OpenLayers.Popup.FramedCloud();
|
||||
popup.setContentHTML("<p></p>");
|
||||
t.ok("setHTML on popup not yet added to map doesn't fail");
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="map" style="width:512px; height:256px"> </div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,47 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<script src="../../lib/OpenLayers.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
function test_FeatureId_constructor(t) {
|
||||
t.plan(3);
|
||||
|
||||
var options = {'foo': 'bar'};
|
||||
var rule = new OpenLayers.Rule.FeatureId(options);
|
||||
t.ok(rule instanceof OpenLayers.Rule.FeatureId,
|
||||
"new OpenLayers.Rule.FeatureId returns object" );
|
||||
t.eq(rule.foo, "bar", "constructor sets options correctly");
|
||||
t.eq(typeof rule.evaluate, "function", "rule has an evaluate function");
|
||||
}
|
||||
|
||||
function test_FeatureId_destroy(t) {
|
||||
t.plan(1);
|
||||
|
||||
var rule = new OpenLayers.Rule.FeatureId();
|
||||
rule.destroy();
|
||||
t.eq(rule.symbolizer, null, "symbolizer hash nulled properly");
|
||||
}
|
||||
|
||||
function test_FeatureId_evaluate(t) {
|
||||
t.plan(3);
|
||||
|
||||
var rule = new OpenLayers.Rule.FeatureId(
|
||||
{fids: ["fid_1", "fid_3"]});
|
||||
|
||||
var ruleResults = {
|
||||
"fid_1" : true,
|
||||
"fid_2" : false,
|
||||
"fid_3" : true};
|
||||
for (var i in ruleResults) {
|
||||
var feature = new OpenLayers.Feature.Vector();
|
||||
feature.fid = i;
|
||||
var result = rule.evaluate(feature);
|
||||
t.eq(result, ruleResults[i], "feature "+i+" evaluates to "+result.toString()+" correctly.");
|
||||
feature.destroy();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,41 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<script src="../../lib/OpenLayers.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
function test_Logical_constructor(t) {
|
||||
t.plan(3);
|
||||
|
||||
var options = {'foo': 'bar'};
|
||||
var rule = new OpenLayers.Rule.Logical(options);
|
||||
t.ok(rule instanceof OpenLayers.Rule.Logical,
|
||||
"new OpenLayers.Rule.Logical returns object" );
|
||||
t.eq(rule.foo, "bar", "constructor sets options correctly");
|
||||
t.eq(typeof rule.evaluate, "function", "rule has an evaluate function");
|
||||
}
|
||||
|
||||
function test_Logical_destroy(t) {
|
||||
t.plan(1);
|
||||
|
||||
var rule = new OpenLayers.Rule.Logical();
|
||||
rule.destroy();
|
||||
t.eq(rule.rules, null, "rules array nulled properly");
|
||||
}
|
||||
|
||||
function test_Logical_evaluate(t) {
|
||||
t.plan(1);
|
||||
|
||||
var rule = new OpenLayers.Rule.Logical({
|
||||
type: OpenLayers.Rule.Logical.NOT});
|
||||
rule.rules.push(new OpenLayers.Rule());
|
||||
|
||||
var feature = new OpenLayers.Feature.Vector();
|
||||
|
||||
t.eq(rule.evaluate(feature), false,
|
||||
"feature evaluates to false correctly.");
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
+31
-19
@@ -27,20 +27,29 @@
|
||||
|
||||
var style = new OpenLayers.Style(baseStyle);
|
||||
|
||||
var rule1 = new OpenLayers.Rule.FeatureId({
|
||||
fids: ["1"],
|
||||
symbolizer: {"Point": {fillColor: "green"}},
|
||||
maxScaleDenominator: 500000});
|
||||
var rule2 = new OpenLayers.Rule.FeatureId({
|
||||
fids: ["1"],
|
||||
symbolizer: {"Point": {fillColor: "yellow"}},
|
||||
minScaleDenominator: 500000,
|
||||
maxScaleDenominator: 1000000});
|
||||
var rule3 = new OpenLayers.Rule.FeatureId({
|
||||
fids: ["1"],
|
||||
symbolizer: {"Point": {fillColor: "red"}},
|
||||
minScaleDenominator: 1000000,
|
||||
maxScaleDenominator: 2500000});
|
||||
var rule1 = new OpenLayers.Rule({
|
||||
symbolizer: {"Point": {fillColor: "green"}},
|
||||
maxScaleDenominator: 500000,
|
||||
filter: new OpenLayers.Filter.FeatureId({
|
||||
fids: ["1"]
|
||||
})
|
||||
});
|
||||
var rule2 = new OpenLayers.Rule({
|
||||
symbolizer: {"Point": {fillColor: "yellow"}},
|
||||
minScaleDenominator: 500000,
|
||||
maxScaleDenominator: 1000000,
|
||||
filter: new OpenLayers.Filter.FeatureId({
|
||||
fids: ["1"]
|
||||
})
|
||||
});
|
||||
var rule3 = new OpenLayers.Rule({
|
||||
symbolizer: {"Point": {fillColor: "red"}},
|
||||
minScaleDenominator: 1000000,
|
||||
maxScaleDenominator: 2500000,
|
||||
filter: new OpenLayers.Filter.FeatureId({
|
||||
fids: ["1"]
|
||||
})
|
||||
});
|
||||
|
||||
var feature = new OpenLayers.Feature.Vector(
|
||||
new OpenLayers.Geometry.Point(3,5),
|
||||
@@ -119,11 +128,14 @@
|
||||
|
||||
function test_Style_context(t) {
|
||||
t.plan(1);
|
||||
var rule = new OpenLayers.Rule.Comparison({
|
||||
type: OpenLayers.Rule.Comparison.LESS_THAN,
|
||||
property: "size",
|
||||
value: 11,
|
||||
symbolizer: {"Point": {externalGraphic: "${img1}"}}});
|
||||
var rule = new OpenLayers.Rule({
|
||||
symbolizer: {"Point": {externalGraphic: "${img1}"}},
|
||||
filter: new OpenLayers.Filter.Comparison({
|
||||
type: OpenLayers.Filter.Comparison.LESS_THAN,
|
||||
property: "size",
|
||||
value: 11
|
||||
})
|
||||
});
|
||||
var style = new OpenLayers.Style();
|
||||
style.context = {
|
||||
"img1": "myImage.png"
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
<li>Format/OSM.html</li>
|
||||
<li>Format/KML.html</li>
|
||||
<li>Format/SLD.html</li>
|
||||
<li>Format/SLD/v1_0_0.html</li>
|
||||
<li>Format/WKT.html</li>
|
||||
<li>Format/WMC.html</li>
|
||||
<li>Format/WMC/v1_1_0.html</li>
|
||||
@@ -40,14 +41,16 @@
|
||||
<li>Popup.html</li>
|
||||
<li>Popup/Anchored.html</li>
|
||||
<li>Popup/AnchoredBubble.html</li>
|
||||
<li>Popup/FramedCloud.html</li>
|
||||
<li>Feature.html</li>
|
||||
<li>Feature/Vector.html</li>
|
||||
<li>Style.html</li>
|
||||
<li>StyleMap.html</li>
|
||||
<li>Rule.html</li>
|
||||
<li>Rule/Comparison.html</li>
|
||||
<li>Rule/FeatureId.html</li>
|
||||
<li>Rule/Logical.html</li>
|
||||
<li>Filter.html</li>
|
||||
<li>Filter/Comparison.html</li>
|
||||
<li>Filter/FeatureId.html</li>
|
||||
<li>Filter/Logical.html</li>
|
||||
<li>Events.html</li>
|
||||
<li>Util.html</li>
|
||||
<li>Lang.html</li>
|
||||
|
||||
Reference in New Issue
Block a user