2017-08-28 132 views
-3

我將值傳遞給函數addPolyline(道具)內的值的值更改路徑值和色彩動態如何改變一個對象是另一個對象

var lineSymbol = { 
    path: 'M 0,-1 0,1', 
    strokeOpacity: 1, 
    scale: 4,   
    strokeWeight: 2, 
}; 



function addPolyline(props){  
    flightPath = new google.maps.Polyline({ 
     path: props.flightPath, 
     geodesic: true, 
     strokeColor: props.color, 
     strokeOpacity: 0, 
     icons: [{ 
      icon: lineSymbol, 
      offset: '0', 
      repeat: '20px' 
     }] 
    }); 
} 

addPolyline({ 
    flightPath: flightPlanCoordinates, 
    color: "#f9a61e" 
}); 

但是我怎麼更改不透明度它在lineSymbol中,但在addPolyline中作爲圖標鍵的一部分調用。

+0

你不能在初始化之前修改lineSymbol 'flightPath'?例如:'lineSymbol.strokeOpacity = props.newOpacity'。 –

+0

假設你可以有多個圖標,你將不得不循環圖標和合並/覆蓋對象 – Rajesh

回答

1

你只需要使用您的props來初始化lineSymbol值來傳遞所需值

function addPolyline(props){ 
    lineSymbol.strokeOpacity = props.symbolOpacity; 
    flightPath = new google.maps.Polyline({ 
    ... 

,或者,如果你不希望修改全局lineSymbol

function addPolyline(props){ 
    var symbol = Object.assign({}, lineSymbol) 
    symbol.strokeOpacity = props.symbolOpacity; 
    flightPath = new google.maps.Polyline({ 
    ... 
    icons: [{ 
     icon: symbol, 

,並調用與

addPolyline({ 
    flightPath: flightPlanCoordinates, 
    color: "#f9a61e", 
    symbolOpacity: 0.8 
}); 
+0

即使現在只有顏色改變,而不是不透明 –

+0

oops小錯字,固定。 –

+0

這個工作,謝謝,所以我將不得不將對象分配給外部對象,然後調用分配的對象鍵 –

相關問題