Javascript OpenLayers:GetFeature WFS请求不';t在鼠标输入之前触发featureselected事件
我用WFS协议设置了一个GetFeature控件,在添加并激活该控件后,只需单击鼠标即可正常工作Javascript OpenLayers:GetFeature WFS请求不';t在鼠标输入之前触发featureselected事件,javascript,openlayers,Javascript,Openlayers,我用WFS协议设置了一个GetFeature控件,在添加并激活该控件后,只需单击鼠标即可正常工作 selectControl.events.register("featureselected", this, function (e) { vectorLayer.addFeatures([e.feature]); }); selectControl.events.register("featureunselected", this, function (e) { vectorLay
selectControl.events.register("featureselected", this, function (e) {
vectorLayer.addFeatures([e.feature]);
});
selectControl.events.register("featureunselected", this, function (e) {
vectorLayer.removeFeatures([e.feature]);
});
map.addControl(selectControl);
selectControl.activate();
我想从新创建的点位置自动请求控件,如下所示:
map.controls[5].request(new OpenLayers.Bounds([lonLat.lon, lonLat.lat, lonLat.lon, lonLat.lat]), { single: true });
这是可行的,但只有在我用鼠标输入至少触发了一次请求之后。在手动请求之前,自动请求不会触发featureselected事件
一旦我用鼠标点击触发了事件,我就可以使用带有边界输入的控制请求方法
任何输入都是非常受欢迎的,因为我已经投入了很多时间
谢谢,
丹尼斯我自己发现了这个问题。我不确定这是否是OpenLayers脚本中的错误 当我像这样请求控件时,GetFeature控件的modifiers属性为null:
.request(new OpenLayers.Bounds([lonLat.lon, lonLat.lat, lonLat.lon, lonLat.lat]), { single: true });
.modifiers = {multiple:null,toggle:null}
而不是通过单击地图对象
通过在映射中单击调用控件后,modifiers属性设置为{multiple:null,toggle:null}
如果我在控件上声明modifiers属性,如下所示:
.request(new OpenLayers.Bounds([lonLat.lon, lonLat.lat, lonLat.lon, lonLat.lat]), { single: true });
.modifiers = {multiple:null,toggle:null}
我可以运行.request而无需单击地图
这是我的疏忽吗?OL文档没有说明应该手动声明修饰符。但是,文档页面中没有给出默认值
丹尼斯