我已使用以下代码向我的Open Layers 2地图添加了一个功能图。当我单击地图上的某个点时,它会根据要素图层正确检索该地点的要素名称。
代码:
featureControl = new OpenLayers.Control.WMSGetFeatureInfo({
url: featureLayer.url,
title: '',
layers: [featureLayer],
infoFormat: 'text/xml',
queryVisible: true
});
featureControl.events.register('getfeatureinfo', this, function (event) {
var xml = new window.DOMParser().parseFromString(event.text, 'application/xml'),
path = featureLayer.$featureInfoXPath,
featureName;
try {
featureName = xml.evaluate(path, xml, null, XPathResult.ANY_TYPE, null).iterateNext().value;
console.log('got the feature:', featureName)
} catch (error) {
console.log('error', error);
}
});
map.addControl(featureControl);
featureControl.activate();
但是,我想在其他事件上触发对功能名称的检索,例如当我在输入字段中键入地址时。所以我正在寻找一种机制来通过“点击”以外的方式触发getfeatureinfo事件。这可能吗?如果是这样,怎么样?