![](/img/trans.png)
[英]WFS GetFeature request via http POST does not work with ArcGIS
[英]OpenLayers: GetFeature WFS request doesn't trigger the featureselected event prior to mouse input
我已经使用WFS协议设置了GetFeature控件,在添加并激活该控件后,单击鼠标即可正常工作。
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控件的Modifys属性为null:
.request(new OpenLayers.Bounds([lonLat.lon, lonLat.lat, lonLat.lon, lonLat.lat]), { single: true });
而不是单击地图对象。
一旦我通过单击地图来调用控件,修饰符属性将设置为{multiple:null,toggle:null}。
如果我像这样在控件上声明修饰符属性:
.modifiers = {multiple:null,toggle:null}
我可以在不单击地图的情况下运行.request。
这是我的疏忽吗? OL文档没有声明应手动声明修饰符。 但是,文档页面中未提供默认值。
丹尼斯
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.