如何设置wms参数(bbox,width,height,x,y)

How to set wms parameter (bbox, width, height, x, y)

我在创建 wms url 后访问地理服务器。然后我使用 getFeatureInfo 来获取信息。 如何设置参数获取多层信息?

宽度、高度、x、y、bbox 是什么意思?

var bboxControl = 0.0001;

var bbox = (coordinate[0]-bboxControl) + ',' +  
(coordinate[1]-bboxControl) + ',' +  
(coordinate[0]+bboxControl) + ',' +
(coordinate[1]+bboxControl);

var projection = map.getView().getProjection().getCode();

const parameter = "?SERVICE=WMS
&VERSION=1.1.1
&REQUEST=GetFeatureInfo
&FORMAT=image/png
&TRANSPARENT=true" 
+ "&QUERY_LAYERS=" + layers
+ "&LAYERS=" + layers
+ "&exceptions=application/vnd.ogc.se_inimage
&INFO_FORMAT=application/json
&FEATURE_COUNT=50
&X=50&Y=50"
+ "&SRS=" + projection
+ "&STYLE=&WIDTH=101&HEIGHT=101"
+ "&BBOX=" + bbox;

$(document).ready(function(){
    $.ajax({
        url: getFeatureInfoUrl + parameter,
        dataType : 'json',
        success: function(result){
            success(result);
        }           
    });
});

这有效但不依赖于缩放状态。

如果您想要更多层,在您的代码中的某处有一个名为 layers 的 list/array。添加你想要的每一层。

对于你的第二个问题,检查 here 是否有 GeoServer 请求。
但简而言之:

  • BBox表示边界框。它定义了 GeoServer 发送数据的区域。
  • 宽度和高度定义从 GeoServer 返回的地图大小。