Openlayers 尝试访问光栅像素值时返回奇怪错误

Openlayers 尝试访问光栅像素值时返回奇怪错误,openlayers,raster,wms,mapserver,getfeatureinfo,Openlayers,Raster,Wms,Mapserver,Getfeatureinfo,我试图通过OpenLayers getFeatureInfoUrl()从webapp通过MapServer访问像素的值。服务器以 msWMSFeatureInfo():WMS服务器错误。无效的I/J值 我曾尝试在谷歌上搜索,但无法找到任何线索,说明我的请求可能会导致什么问题,只是I/J值指的是鼠标点击的坐标,因此问题可能源于evt.coordinate: var vs = this.wmsLayer mapol.on('singleclick', function(evt) { docume

我试图通过OpenLayers getFeatureInfoUrl()从webapp通过MapServer访问像素的值。服务器以 msWMSFeatureInfo():WMS服务器错误。无效的I/J值 我曾尝试在谷歌上搜索,但无法找到任何线索,说明我的请求可能会导致什么问题,只是I/J值指的是鼠标点击的坐标,因此问题可能源于evt.coordinate:

var vs = this.wmsLayer
mapol.on('singleclick', function(evt) {
  document.getElementById('info').innerHTML = '';
  var viewResolution = /** @type {number} */ (view.getResolution());
  var url = vs.getSource().getGetFeatureInfoUrl(
     evt.coordinate, viewResolution, 'EPSG:4326',
      {'INFO_FORMAT': 'text/html'});
  if (url) {
    document.getElementById('info').innerHTML =
        '<iframe seamless src="' + url + '"></iframe>';
  }
});
var vs=this.wmsLayer
mapol.on('singleclick',函数(evt){
document.getElementById('info')。innerHTML='';
var viewsresolution=/**@type{number}*/(view.getResolution());
var url=vs.getSource().getFeatureInfoURL(
evt.坐标,视图分辨率,'EPSG:4326',
{'INFO_FORMAT':'text/html'});
如果(url){
document.getElementById('info').innerHTML=
'';
}
});
wmsLayer使用与请求相同的“EPSG:4326”坐标系。
是否有人可以帮助我获取单击位置的像素值:)

传递给
#getFeatureInfoUrl()
方法的坐标的SRS需要匹配作为参数提供的投影。所以你必须把你的代码改成

var url = vs.getSource().getGetFeatureInfoUrl(
   ol.proj.toLonLat(evt.coordinate, view.getProjection()),
   viewResolution, 'EPSG:4326', {'INFO_FORMAT': 'text/html'});

你的观点是什么?如果它与EPSG:4326不同,您需要将传递给
getFeatureInfoURL
evt.coordinate
转换为EPSG:4326.Hi,谢谢您的提示。我将我的视图中的投影定义为EPSG:4326,它现在可以工作了!!!然而,我的地图现在看起来很乱。是否可以在所有参数中使用EPSG:3857,并且是否可以这样工作。另一个问题:我在.map文件的图层类和第一个类中定义了模板,因为光栅被分类用于显示更复杂的颜色范围。我必须为每个类定义模板吗?无论如何,请继续添加您的注释作为答案,这样我可以确认并将问题标记为已回答。正如我所说,此解决方案有效,但仅当地图视图和图层都在epsg:4326中时。如果我想在epsg:3857中显示地图和图层,getFeatureInfoUrl()将返回notihing。这可能是MapServer配置问题。一些对此更了解的人可能想参与进来。为了进一步调试,如果您能够在所有这些情况下发布OpenLayers生成的GetFeatureInfo请求url,将会有所帮助。我总算设法使它运转起来了。问题不在于坐标系,而在于viewResolution和我的WMS具有非常大的单元格/像素。单击或靠近单元格中心返回正确的结果。非常感谢你的帮助!