【发布时间】:2014-12-21 16:27:32
【问题描述】:
我想根据图层中的某些属性显示具有多种样式的图层图,但不知道如何。如果我在 geoserver 中使用 SLD,我只显示一种样式,我尝试用 javascript(基于 Openlayer 库)编写一些东西,如下所示,但它不起作用,代码对图层图没有任何影响。任何建议将不胜感激。
//创建一个样式对象 var style = new OpenLayers.Style(); //用于所有多边形的规则 var rule_p1 = new OpenLayers.Rule({ 过滤器:新的 OpenLayers.Filter.Comparison({ 类型:OpenLayers.Filter.Comparison.EQUAL_TO, 属性:“vi_tri”, 值:“1”, }), 符号:{ 填充颜色:“#00FF00”, 填充不透明度:0.6, strokeColor: "#FF0000", 行程宽度:2, strokeDashstyle: "实心", } }); var rule_p2 = new OpenLayers.Rule({ 过滤器:新的 OpenLayers.Filter.Comparison({ 类型:OpenLayers.Filter.Comparison.EQUAL_TO, 属性:“vi_tri”, 值:“2”, }), 符号:{ 填充颜色:“#40FF00”, 填充不透明度:0.6, strokeColor: "#FF0000", 行程宽度:2, strokeDashstyle: "实心", } }); var rule_p3 = new OpenLayers.Rule({ 过滤器:新的 OpenLayers.Filter.Comparison({ 类型:OpenLayers.Filter.Comparison.EQUAL_TO, 属性:“vi_tri”, 值:“3”, }), 符号:{ 填充颜色:“#80FF00”, 填充不透明度:0.6, strokeColor: "#FF0000", 行程宽度:2, strokeDashstyle: "实心", } }); var rule_p4 = new OpenLayers.Rule({ 过滤器:新的 OpenLayers.Filter.Comparison({ 类型:OpenLayers.Filter.Comparison.EQUAL_TO, 属性:“vi_tri”, 值:“4”, }), 符号:{ 填充颜色:“#FFFF00”, 填充不透明度:0.6, strokeColor: "#FF0000", 行程宽度:2, strokeDashstyle: "实心", } }); style.addRules([rule_p1, rule_p2, rule_p3, rule_p4]); mybinh = 新的 OpenLayers.Layer.WMS( "Lớp Mỹ Bình", urlmapfile, { 图层:'演示:mybinh', 透明:“真实”, 格式:格式, styleMap: 风格 }, {singleTile: true, ratio: 1, isBaseLayer: false} );【问题讨论】: