OpenLayers.Control.SelectFeature


在OpenLayers中,控件SelectFeature主要用於操作(鼠標移入、移出、單擊、雙擊)矢量圖層(OpenLayers.Layer.Vector)的要素。那么它是如何實現的呢,還是讓我們看代碼吧。

  • 首先我們還是先把所有要用到類實例化出來,參考代碼:
View Code
1 var map=new OpenLayers.Map("map");
2 var vectorLayer = new OpenLayers.Layer.Vector();
3 map.addLayer(vectorLayer);
  • 矢量要素的單擊事件,僅需在實例化類時注冊onSelect事件即可,參考代碼:
View Code
1 var sf=new OpenLayer.Control.SelectFeature(vectorLayer,{onSelect:function(currentFeature){//todo}});
2 map.addControl(sf);
  • 矢量要素的鼠標移入事件,需要實例化時注冊onSelect事件,同時設置hover屬性為true,參考代碼:
View Code
1 var sf=new OpenLayer.Control.SelectFeature(vectorLayer,{onSelect:function(currentFeature){todo},hover:true});
2 map.addControl(sf);
  • 矢量要素的鼠標各種事件的混合操作,如需要鼠標移入、移出、單擊、雙擊等事件,參考代碼:
View Code
1 var callbacks = {
2     over:function(currentFeature){},
3     out:function(currentFeature){},
4     dblclick:function(currentFeature){}
5 };
6 var sf = new OpenLayers.Control.SelectFeature(vectorLayer,{
7     onSelect:function(currentFeature){},
8 });
9 map.addControl(sf);
  • 對於事件的混合操作行為,我們不能在callbacks對象中同時注冊click和dblclick事件,這樣的話單擊事件會屏蔽雙擊事件。對於下述代碼,dblclick事件永不觸發:
View Code
 1 var callbacks = {
 2      over:function(currentFeature){},
 3      out:function(currentFeature){},
 4      click:function(currentFeature){},
 5      dblclick:function(currentFeature){}
 6 };
 7 var sf = new OpenLayers.Control.SelectFeature(vectorLayer,{
 8      onSelect:function(currentFeature){},
 9  });
10 map.addControl(sf);

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM