【发布时间】:2017-09-07 11:52:47
【问题描述】:
我正在尝试通过 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”坐标系。 谁能帮我获取点击位置的像素值:)
【问题讨论】:
-
您的视图是什么投影?如果它与 EPSG:4326 不同,则需要将传递给
getGetFeatureInfoUrl的evt.coordinate转换为 EPSG:4326。 -
嗨,谢谢你的线索。我将视图中的投影定义为 EPSG:4326,它现在可以工作了!!!但是,我的地图现在看起来很紧张。是否可以在所有参数中使用 EPSG:3857,它会以这种方式工作吗?另一个问题:我在 .map 文件的 LAYER 类和第一个类中定义了 TEMPLATE,因为光栅被分类以显示更复杂的颜色范围。我必须为每个 CLASS 定义 TEMPLATE 吗?
-
无论如何,请继续添加您的评论作为答案,以便我确认并将问题标记为已回答。
标签: openlayers raster wms mapserver getfeatureinfo