2015-06-05 334 views
0

我想在OpenLayers中將點擊事件添加到ol.Overlay。什麼是最好的方法來做到這一點?OpenLayers - 在ol.Overlay上添加點擊事件

使用ol.Overlay的原因:我想添加一個自定義標記,可以動態更改圖像和文本。對於這一點,我使用ol.Overlay在元素添加HTML如下:以下

// Add markers 
var marker = new ol.Overlay({ 
      position: ol.proj.fromLonLat(lng1, lat1), 
    positioning: 'center-center', 
    element: $(getMarkerContent()) 
}); 
map.addOverlay(marker); 

function getMarkerContent() { 
    var content = "<div>Name<........>"; 
    return content; 
} 

我曾嘗試:

  1. 新增onclick事件元素 - 這個工作

  2. 新增marker.on('click', function(evt){});,但從未被稱爲

有沒有一個bette如何做到這一點?

回答

2

嘗試直接設置疊加元素上單擊處理程序,而不是覆蓋:

var textElement = $('<p class="overlay text">Text</p>'); 
var overlay = new ol.Overlay({ 
    position: pos, 
    element: textElement 
}); 
map.addOverlay(overlay); 

textElement.click(function(evt) { 
    console.log('click'); 
}); 

http://jsfiddle.net/jvdv489j/

相關問題