Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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
使用Openlayers 3将update()函数添加到cql过滤器_Openlayers_Updates_Geoserver - Fatal编程技术网

使用Openlayers 3将update()函数添加到cql过滤器

使用Openlayers 3将update()函数添加到cql过滤器,openlayers,updates,geoserver,Openlayers,Updates,Geoserver,已经三天了,我一直在寻找解决方案,但我没有找到答案。我第一次使用WFS请求显示我的图层时,使用update()函数从下拉列表中获取layer,并更改cql filter的值,它可以工作: <select name="pam" class='pam' id="pam" onchange='update()'> <option value="Arbuuned">Moyen</option> <option value="Bended">For

已经三天了,我一直在寻找解决方案,但我没有找到答案。我第一次使用
WFS
请求显示我的图层时,使用
update()
函数从
下拉列表中获取
layer
,并更改
cql filter
的值,它可以工作:

<select name="pam" class='pam' id="pam" onchange='update()'> 
  <option value="Arbuuned">Moyen</option>
  <option value="Bended">Fort</option>
</select>
<script>
var vector = new ol.layer.Vector( { source: new ol.source.Vector() })

var geojsonFormat = new ol.format.GeoJSON();

var vectorSource = new ol.source.Vector({
  loader: function(extent, resolution, projection) {
    var url = "http://localhost:8080/geoserver/opengeo/ows?service=WFS&" +
        "version=2.0.0&request=GetFeature&typename=opengeo:arbousiers0&CQL_FILTER=code_espec="+"'"+pam.value+"'"+
        "&outputFormat=text/javascript&format_options=callback:loadFeatures"+
        "&srsname=EPSG:3857";
    $.ajax({url: url, dataType: 'jsonp', jsonp: false});
  },
  strategy: ol.loadingstrategy.tile(ol.tilegrid.createXYZ({
    maxZoom: 19

  }))

});
window.loadFeatures = function(response) {
  vectorSource.addFeatures(geojsonFormat.readFeatures(response));
};
 window.update = function() {
 vectorSource.clear(true);
};

</script>

当我从
下拉列表
中选择我的
时,我什么也得不到。我不知道是有什么需要补充还是我犯了错误?谢谢

我认为更新值的函数有问题。 我建议:

 window.update = function(){ad.getSource().updateParams({'cql_filter':"code_espec"+"="+"'"+pam.value+"'"+"});};

         var ad =new ol.layer.Image({
                    name: 'Espece(Répartition)',
              source: new ol.source.ImageWMS({
                url: 'http://localhost:8080/geoserver/opengeo/wms',
                params: {'LAYERS': 'opengeo:arbousiers0'},
                serverType: 'geoserver'                                            
              })});

我认为更新值的函数中存在问题。 我建议:

 window.update = function(){ad.getSource().updateParams({'cql_filter':"code_espec"+"="+"'"+pam.value+"'"+"});};

         var ad =new ol.layer.Image({
                    name: 'Espece(Répartition)',
              source: new ol.source.ImageWMS({
                url: 'http://localhost:8080/geoserver/opengeo/wms',
                params: {'LAYERS': 'opengeo:arbousiers0'},
                serverType: 'geoserver'                                            
              })});