2012-07-05 41 views
0

根據box,在openlayers中有一個選擇功能的選項。但是,我想在繪製線時使用這些功能(使用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

您必須註冊事件「sketchcomplete」,該事件將運行層選擇中的所有要素,並檢查它是否與草繪的線具有共享幾何。

就像這樣,不幸的是我現在無法測試它。

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]) 
     } 

    } 
} 
相關問題