尝试访问栅格像素值时返回奇怪的错误

Strange error returned while trying to access raster pixel value

我正在尝试通过 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>';
  }
});

wmsLayer 使用与请求相同的 'EPSG:4326' 坐标系。 谁能帮我获取点击位置的像素值:)

您传递给 #getGetFeatureInfoUrl() 方法的坐标的 SRS 需要与您作为参数提供的投影相匹配。所以你必须将代码更改为

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