При попытке доступа к значению растрового пикселя возвращается странная ошибка
Я пытаюсь получить доступ к значению пикселя, обслуживаемого через MapServer, из webapp через OpenLayers getFeatureInfoUrl(). Сервер отвечает msWMSFeatureInfo(): ошибка сервера WMS. Недопустимые значения I/J Я пытался найти его в Google, но не смог найти никаких подсказок о том, что может быть связано с моим запросом, только то, что значения 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, что и запрос. Может кто-нибудь помочь мне получить значение пикселя в месте нажатия:)
1 ответ
SRS координаты, которую вы передаете #getGetFeatureInfoUrl()
Метод должен соответствовать проекции, которую вы предоставляете в качестве аргумента. Так что вам придется изменить свой код на
var url = vs.getSource().getGetFeatureInfoUrl(
ol.proj.toLonLat(evt.coordinate, view.getProjection()),
viewResolution, 'EPSG:4326', {'INFO_FORMAT': 'text/html'});