2012-02-16 101 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.