I'm using OpenLayers 4 to build a GetFeatureInfo url with a buffer parameter to a WMS layer in Mapserver in order to find the closest feature of the layer given some specific coordinates.
The problem is that the request never returns any result at all. So I don't know if there is something wrong in my code or I'm missing something.
Here is my code explained:
var layer = new ol.layer.Image({
source: new ol.source.ImageWMS({
url: 'http://www.juntadeandalucia.es/medioambiente/mapwms/REDIAM_PPHH_2012?',
params: {'LAYERS': 'MSPF_POLY'},
serverType: 'mapserver',
crossOrigin: 'anonymous'
})
});
// I create the layer only for requesting purpose so I don't add it to the map.
var coordinates = [311618.514508171, 4040090.26715453];
var srs = this.map_.getProjection().code; //"EPSG:25830"
const getFeatureInfoParams = {
'INFO_FORMAT': 'text/plain', //or application/vnd.ogc.gml
'FEATURE_COUNT': 1,
'SRS': srs,
'Buffer': 10;
};
var viewResolution = this.map_.getMapImpl().getView().getResolution();
// 353.3212194629518
var urlToRequest = layer.getSource().getGetFeatureInfoUrl(coordinates, viewResolution, srs,
getFeatureInfoParams);
return urlToRequest;
// urlToRequest is ==> http://www.juntadeandalucia.es/medioambiente/mapwms/REDIAM_PPHH_2012?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetFeatureInfo&FORMAT=image%2Fpng&TRANSPARENT=true&QUERY_LAYERS=MSPF_POLY&LAYERS=MSPF_POLY&INFO_FORMAT=text%2Fplain&FEATURE_COUNT=1&SRS=EPSG%3A25830&Buffer=10&I=50&J=50&CRS=EPSG%3A25830&STYLES=&WIDTH=101&HEIGHT=101&BBOX=293775.7929252919%2C4022247.5455716513%2C329461.2360910501%2C4057932.988737409
//I have seen that it always return I=50/J=50 and perhap this could be the problem I
//don't know. It is that correct? The pixel coordinates shouldn't be different in
//different bounding boxes values per request?
opacity: 0.01
and/or add it as the first layer so it is hidden below other layers – Mike