2013-06-23 44 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();