-1

我正在尝试通过 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”坐标系。谁能帮我获取点击位置的像素值:)

4

1 回答 1

2

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

var url = vs.getSource().getGetFeatureInfoUrl(
   ol.proj.toLonLat(evt.coordinate, view.getProjection()),
   viewResolution, 'EPSG:4326', {'INFO_FORMAT': 'text/html'});
于 2017-09-10T20:40:18.377 回答