2012-04-03 273 views
3

我正在使用Openlayers到我的應用程序。如何更改openlayers標記圖標?

我成功地顯示標記,當我點擊地圖,但現在我想改變標記圖標,當我點擊,如何做到這一點。我沒有找到任何方法marker.setIcon();

我真的很困惑這裏。

map.events.register("click", map , function(e){ 
    var opx = map.getLonLatFromPixel(e.xy) ; 
    var marker = new OpenLayers.Marker(opx); 
    markers.addMarker(marker); 
    marker.events.register("click", marker, function(e){ 
    //here i want to change the icon to some other 
    popup = new OpenLayers.Popup.FramedCloud("chicken", 
         marker.lonlat, 
         new OpenLayers.Size(200, 200), 
         "example popup", 
         null, true); 

    map.addPopup(popup); 
     }); 
    // here i want to change to default. 
    }); 

回答

1

我得到的答案從here,這裏是在代碼

marker.events.register('click', marker, function() { 
    // Reset all markers. 
    for (var i=0; i<markers.length; i++) { 
    markers[i].icon.imageDiv.firstChild.setAttribute(
     'src', 'images/red.png'); 
    } 
    this.icon.imageDiv.firstChild.setAttribute('src', 'images/blue.png'); 
}); 
+1

這繞過了OpenLayers API,所以它有點hackish。 – jjrv 2012-04-03 18:48:48