Как работать с WMSGetFeatureInfo аналогично OpenLayers.control.WMSGetFeatureInfo, где мне не нужно писать функцию map.on singleclick - PullRequest
0 голосов
/ 26 сентября 2019

Я портирую / обновляю свое приложение до OpenLayers 4 из OpenLayers2.Для получения векторной информации я использовал

var info = new OpenLayers.Control.WMSGetFeatureInfo({..... eventListeners: {
                                    getfeatureinfo: function (event) {....

и добавлял информацию в элемент управления карты, используя map.addcontrol(info); Когда я нажимаю на карту, событие приближается к getfeatureinfo....

Аналогичная вещькак я могу сделать в ol4 ?.

Спасибо.

Я думаю, что мы можем сделать это через map.on('singleclick...., но в приложении таких вызовов более 1000, поэтому мне нужно, чтобы эти многие операторы if / else были записаны.Есть ли другой способ сделать это.

var info = new OpenLayers.Control.WMSGetFeatureInfo({
                                title: 'Identify features by clicking',                                
                                queryVisible: true,
                                layers: [lObj], //wmsLayers,
                                layerUrls: ["http://" + ipaddressport + "/geoserver/wms"],
                                maxFeatures: 10000,
                                vendorParams: {
                                    buffer: 50,
                                    viewparams: vparams
                                },
                                eventListeners: {
                                    getfeatureinfo: function (event) {
                                        if (event.features.length > 0) {
...