Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Geoserver中的Javascript动态设置WMS层的样式_Javascript_Geoserver_Wms_Sld - Fatal编程技术网

使用Geoserver中的Javascript动态设置WMS层的样式

使用Geoserver中的Javascript动态设置WMS层的样式,javascript,geoserver,wms,sld,Javascript,Geoserver,Wms,Sld,我的web应用程序通过Geoserver2.6.0从Postgis向OpenLayers地图提供WMS图层,该应用程序运行良好,符合预期。 用户可以通过属性(通过HTML中的下拉框)过滤WMS层的某些元素,并按预期更新层。 现在我想添加一个附加的下拉框,根据附加的下拉框值改变WMS层的样式。 附加下拉列表的样式选项非常简单,“普通”或“高亮”。我认为在javascript中使用一个简单的“if-else”语句将迫使层以这两种样式之一绘制。不幸的是,当用户选择新样式并单击“更新”按钮时,样式没有更

我的web应用程序通过Geoserver2.6.0从Postgis向OpenLayers地图提供WMS图层,该应用程序运行良好,符合预期。 用户可以通过属性(通过HTML中的下拉框)过滤WMS层的某些元素,并按预期更新层。 现在我想添加一个附加的下拉框,根据附加的下拉框值改变WMS层的样式。 附加下拉列表的样式选项非常简单,“普通”或“高亮”。我认为在javascript中使用一个简单的“if-else”语句将迫使层以这两种样式之一绘制。不幸的是,当用户选择新样式并单击“更新”按钮时,样式没有更新,经过几天的努力,我完全被卡住了

图层样式的SLD语法可以单独工作(它们在Gesoserver界面中进行验证),但它们不能以这种方式一起工作,只剩下第一种样式

在类似的帖子中,我发现最接近的是这两个,但这似乎并不能解决我的问题

有什么想法吗? 提前感谢,代码如下

HTML的代码

国家/地区筛选器:

英格兰 威尔士 道路类型过滤器:

主干道 次要道路 状态筛选器:

使用中 在建工程 线条样式:

正常的 突出
我最终设法解决了这个问题——结果是我的“if”语句出现了问题,因为它只需要简化。 相关(工作)javascript如下所示

if(line\u style.value==“正常”){
layer.clearGrid();//这将摆脱以前的WMS显示。。。
layer.mergeNewParams({
“样式”:“图层\普通”,
“CQL_过滤器”:cql1.value+”和“+cql2.value+”和“+cql3.value+”和“+cql4.value”
})
}
否则{
layer.clearGrid();//这将摆脱以前的WMS显示。。。
layer.mergeNewParams({
“样式”:“图层突出显示”,
“CQL_过滤器”:cql1.value+”和“+cql2.value+”和“+cql3.value+”和“+cql4.value”
})
} 
重绘({force:true})