2017-08-28 4 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で呼び出されます。あなただけの必要な値

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, 

を変更し、起動しない場合に合格するためにあなたのpropsを使用してlineSymbolに値を初期化する必要が

+0

初期化の前にlineSymbolを変更できません。 'flightPath'?次のようなものがあります: 'lineSymbol.strokeOpacity = props.newOpacity'。 –

+0

複数のアイコンを持つことができると仮定すると、アイコンをループしてオブジェクトをマージ/オーバーライドする必要があります。 – Rajesh

答えて

1

with

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

でも、不透明度ではなく色のみが変更されます。 –

+0

oops小さなタイプミスが修正されました。 –

+0

これはうまくいく、ありがとう、私はオブジェクトを外部オブジェクトに割り当て、次に割り当てられたオブジェクトキーを呼び出さなければならない –

関連する問題