2012-02-16 36 views
4

我已經集成了地圖,我想要顯示兩個位置之間的路線方向。 一切工作正常和方向是完全顯示, 但我想改變Polyline方向的顏色,如文檔中說我試過這段代碼:更改DirectionsRenderer中折線的顏色

//polyline options 
    var pOptions = { 
      map: map, 
      strokeColor: "#2249a3", 
      strokeOpacity: 0.9 , 
      strokeWeight: 12, 
      z-index: 99 
    }; 
    logJava(polylineOptions); 

    //directionsRenderer options 
    var mDirectionsRendererOptions = { 
      map: map, 
      suppressMarkers: true, 
      suppressInfoWindows: true, 
      polylineOptions: pOptions 
    }; 

    logJava(mDirectionsRendererOptions); 

    directionsDisplay = new google.maps.DirectionsRenderer(mDirectionsRendererOptions); 

但是當我添加此代碼,它會停止地圖,並且它什麼都不顯示,當我評論它時,一切工作正常。

這段代碼有什麼問題,以及如何更改多段線的顏色google maps javascript api v3

由於提前,

+0

任何幫助??????? – Houcine 2012-02-16 14:35:02

回答

20

在全局聲明

var polylineOptionsActual = new google.maps.Polyline({ 
    strokeColor: '#FF0000', 
    strokeOpacity: 1.0, 
    strokeWeight: 10 
    }); 

在初始化

function initialize() { 
    directionsDisplay = new google.maps.DirectionsRenderer({polylineOptions: polylineOptionsActual});  
+0

感謝您的回覆,我會嘗試 – Houcine 2012-02-16 18:53:21

+0

我試過了,它改變了顏色,但它似乎並沒有改變,而且,當我嘗試使用紅色或綠色顏色,它總是顯示黑色......任何IDEAS? – Houcine 2012-02-16 23:42:23

+0

終於有效了,謝謝 – Houcine 2012-02-17 10:14:28

2

@Seacat,要用新的PolylineOptions更新的DirectionsRenderer後,你必須重新渲染存儲在渲染器對象內的方向響應..

directionsRenderer.setDirections(directionsRenderer.directions); 
+0

工作,謝謝。 – mimic 2013-04-14 07:35:38

4

在回答標記爲已解決的問題中,我看到用於polylineOptions的對象Polyline。在我來說,我用下面的代碼

new google.maps.DirectionsRenderer({ suppressMarkers: true, polylineOptions: { strokeColor: '#5cb85c' } }); 

不同的是,我給你的PolylineOptions,不折線對象。不確定這可能會有幫助,但決定添加這些答案。

+2

它確實對我有所幫助,謝謝!使用Polyline,如果我通過多個航點,它只會呈現LAST部分!使用polylineOptions來代替,它呈現我的完整地圖。謝謝! – Pega88 2015-09-07 14:43:22

+0

這有效,但我無法更改顏色。 strokeColor屬性看起來沒有任何效果 – 2015-10-28 14:23:51

3

使用setOptions(options:DirectionsRendererOptions)使代碼更具可讀性。編碼是:

在全球層面:

var directionsDisplay; 

initialize()方法:

var polyline = new google.maps.Polyline({ 
    strokeColor: '#C00', 
    strokeOpacity: 0.7, 
    strokeWeight: 5 
    }); 
directionsDisplay = new google.maps.DirectionsRenderer(); 
directionsDisplay.setOptions({polylineOptions: polyline}); 
now directionDisplay can be used in any method with the custom poly line.