【问题标题】:How to show one layer map with many style如何显示具有多种样式的图层图
【发布时间】: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} );

【问题讨论】:

    标签: javascript coding-style


    【解决方案1】:

    从您的代码 sn-p 中,我假设您希望为 GeoServer 提供的 WMS 图层提供服务。在这种情况下,您会收到由服务器渲染的图像文件,并且样式是 Geoserver (SLD) 的一部分。在客户端(OpenLayers),您只能设置矢量特征的样式。

    您可以为图层定义不同的样式 (SLD),并通过更改 WMS 查询参数在样式之间切换(请参阅http://docs.geoserver.org/latest/en/user/services/wms/reference.html)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-18
      • 1970-01-01
      • 2021-10-07
      相关资源
      最近更新 更多