创建wms网址后,我将访问geoserver。然后,我使用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的列表/数组。在其中添加所需的每一层。

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


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

09-20 06:55