openlayers中有一个选项可以选择box下的功能。但是,我想在绘制线条时选择要素(使用Shift键向下绘制自由手绘图)。在我的脚本中,我已经实现了绘图和选择选项。我可以独立绘制线条和选择(多个)功能。现在,我想合并这两个。我想选择那些被我画线所触及的特征数据。有可用的示例吗?
在这里,我给出了示例代码 -
//Selection property---------------------------------------
var selectControl = new OpenLayers.Control.SelectFeature(
[vectorLayer],
{
clickout: true, toggle: true,
multiple: true, hover: false,
toggleKey: "ctrlKey", // ctrl key removes from selection
multipleKey: "shiftKey" // shift key adds to selection
}
);
map.addControl(selectControl);
selectControl.activate();
var draw = new OpenLayers.Control.DrawFeature(
vectorLayer, OpenLayers.Handler.Path,
{displayClass: "olControlDrawFeaturePoint", title: "Draw Features", handlerOptions: {holeModifier: "altKey"}}
);
提前谢谢。
答案 0 :(得分:0)
您必须注册事件“sketchcomplete”,该事件将在layer-bo-be-selected中的所有要素上运行,并检查它是否具有草绘线条的共享几何体。
这样的事情,不幸的是我现在无法测试。
vectorLayer.events.register('sketchcomplete', vectorLayer, sketchCompleteFunc);
function sketchCompleteFunc(obj) {
for (var i=0;i<layer-to-be-selected.features.length;i++) {
if (layer-to-be-selected.features[i].geometry.intersects(obj.geometry)) {
selectControl.select(layer-to-be-selected.features[i])
}
}
}