2016-01-20 106 views
0

我試圖從服務器獲取圖層的樣式,但是layer.setStyle()函數不會執行任何操作,並且在創建圖層時定義樣式也不起作用。有我這樣的代碼:不設計圖層樣式

var stateStyle = { 
    "color": "#3D5229", 
    "weight": 1, 
    "opacity": .90, 
    "fillOpacity": .90 
}; 

    var mywms2 = L.tileLayer.wms("http://someserver/geoserver/somepage/wms", { 
    layers: 'SomeMaps:view_table_geom', 
    format: 'image/png', 
    transparent: true, 
    style: stateStyle , //not working 
    version: '1.1.0' 

}); 

//not working either 

mywms2.setStyle(stateStyle); 

問題是什麼?這不應該是一個問題。

我做了一個plunker,但由於某種原因它沒有顯示地圖,但是如果你將代碼粘貼到一個html代碼中,你可以看到我的問題。 https://plnkr.co/edit/38VVojm8zLKhdXu10nQC?p=preview

回答

1

單張的L.Tilelayer.WMS選項對象沒有style選項。但是它不支持的styles選項,但它並不需要JavaScript對象文本作爲值,但逗號分隔值的字符串:

的WMS風格逗號分隔列表。

http://leafletjs.com/reference.html#tilelayer-wms-styles

在單張及WMS的造型很好的解釋可以通過每Liedman在這裏找到了答案:

https://stackoverflow.com/a/23012106/2019281

+0

這樣'風格:stateStyle,'?現在圖層不顯示=/ –

+0

如果您閱讀我的答案,它清楚地表明它需要一串逗號分隔的值,而不是JavaScript對象字面值,如您在示例中所示。我甚至把這個參考聯繫起來。另外,您正在使用的WMS服務器可能不支持您使用的樣式屬性。這一切都在我已經鏈接到的答案中解釋。 – iH8