2013-06-23 45 views
0

我有一個函數:上的OpenLayers更新圖像映射

function images_styles(Isel){ 
    if (Isel==1){ 
     var marker_pic="/sites/all/themes/shakhty/images/map/icons/1.png"; 
    } 
    else{ 
     var marker_pic="http://www.openlayers.org/dev/img/marker.png"; 
    } 
    var styleImage = new OpenLayers.Style({ 
     graphicWidth: 43, 
     graphicHeight: 65, 
     graphicYOffset: -28,    
     label: "${label}", 
     externalGraphic: marker_pic, 
     fontSize: "1em", 
     strokeOpacity:5 
    }); 

    var vectorImage = new OpenLayers.Layer.Vector("Images", { 
     styleMap: new OpenLayers.StyleMap({ 
      "default": styleImage 
     }) 
    }); 


    map.addLayer(vectorImage); 
} 

我想改變圖像(marker_pic)當用戶在選擇形式的變體。但是當變體第一次選擇時,圖像不會改變,直到我重新加載頁面。

我該怎麼辦?

如何每次用戶選擇另一個變體時刷新圖像?

回答

0

要更新一個新的外部圖形的矢量圖層,請嘗試以下操作:

vectorImage.refresh({force:true}); 

或者,下面應該工作以及:

vectorImage.redraw();