2013-03-05 113 views
1

我一直在Google上搜索一下,試圖讓我的地圖重繪一次,我已經在我的矢量上設置了一個新標籤。如果我放大和縮小標籤確實可以正常工作,但我希望它能夠通過點擊功能進行刷新。OpenLayers重畫不能正常工作

   $(".openlayerLabel").change(function(){ 
        var theValue = $(this).val(); 
        if($(this).is(':checked')) { 
         console.log('Checkbox checked'); 
         plugins.search.setStyles(true); 
         plugins.search.selectLayer.refresh({force:true}); 
        } 
        else { 
         console.log('Checkbox unchecked'); 
        } 
       }); 

什麼是不工作是.refresh(其餘工作正常)。我看到有人寫我應該用武力:真的,所以我嘗試了這個,但沒有發生任何事情。我也試過.redraw,但是這給出了類似的結果。

任何擡頭?

回答

2

前段時間我在OpenLayers項目上工作過,所以我有點生疏,但如果我正確記得您可能需要遍歷圖層中的所有功能,並明確地呼籲所有這些功能layer.drawFeature(feature)。事情是這樣的:

var features = plugins.search.selectLayer.features; 
for(var i = 0; i < features.length; i++) { 
    plugins.search.selectLayer.drawFeature(features[i]); 
} 

文檔瀏覽:http://dev.openlayers.org/apidocs/files/OpenLayers/Layer/Vector-js.html#OpenLayers.Layer.Vector.drawFeature

還有在基層類 「重繪」 的方法,所以你可以嘗試:

plugins.search.selectLayer.redraw(); 

文檔瀏覽:http://dev.openlayers.org/apidocs/files/OpenLayers/Layer-js.html#OpenLayers.Layer.redraw

希望這兩種方法中的一種有效!

+0

我確實得到了在地圖上顯示的矢量,但是當我查看「特徵」時,它的數組爲0什麼都沒有? – WeeklyDad 2013-03-05 08:21:48

+0

當你說地圖上顯示「矢量」時,你指的是什麼類?據我所知,一個向量和一個功能是一樣的:http://dev.openlayers.org/apidocs/files/OpenLayers/Feature/Vector-js.html#OpenLayers.Feature.Vector.OpenLayers.Feature。向量 – 2013-03-05 17:41:13