0

私は機能を持っています:

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) を変更したい。しかし、バリアントが初めて選択されたとき、ページをリロードするまで画像は変わりません。

私は何をすべきか?

ユーザーが別のバリアントを選択するたびに画像を更新する方法は?

4

1 に答える 1

0

ベクターレイヤーを新しい外部グラフィックで更新するには、次のことを試してください。

vectorImage.refresh({force:true});

または、以下も同様に機能するはずです。

vectorImage.redraw();
于 2014-05-03T19:47:49.907 に答える