2017-02-27 165 views
1

我已經遍尋搜索,我還沒有找到答案。 Similar to this 如何將顏色更改爲替代路線? urlDestination +"&alternatives=true" 添加該代碼將顯示最短路線和備用路線。問題是,我不知道如何將替代路線的顏色更改爲特定顏色。 示例:最短路線應爲藍色,備用路線應爲灰色。 幫助非常必要。安卓谷歌地圖交替路線和最短路徑

Something like this... that the alternate routes should be grey

回答

0

入住這Tutorial

你需要添加BelowLine。

polyLineOptions.color(Color.BLUE); 

希望這可能有所幫助。

+0

謝謝,但這就是我的問題所在。 :(我只能將所有路線設置爲藍色,但我無法更改替代路線的顏色,這是我的舊代碼,我需要做的是將最短路徑設置爲藍色,並將其他路線設置爲灰色。:( –

0

這非常簡單。我相信你有一個列表或數組路線。 通過迭代找到最小距離索引。 (通常它是第一個,但只是爲了確保)。

int minDistanceIndex = 0; 
int minDistance = Integer.MAX_VALUE; 
for(int i = 0; i < routes.size(); i++){ 
    Route route = routes.get(i); 
    int distance = route.getDistanceValue(); 
    if(distance < minDistance){ 
     minDistance = distance; 
     minDistanceIndex = i; 
    } 
} 

現在使用minDistanceIndex顯示默認路由(藍色)和其他像灰色一樣顯示如下。

PolylineOptions lineOptions; 
for (int i = 0; i < routes.size(); i++) { 
    points = routes.get(i).getPoints(); 
    lineOptions = new PolylineOptions(); 
    // Adding all the points in the route to LineOptions 
    lineOptions.addAll(points); 
    if(minDistanceIndex != i) { 
     lineOptions.width(15); 
     lineOptions.color(ContextCompat.getColor(getActivity(), android.R.color.darker_gray)); 
    } 
    lineOptions.clickable(true); 
    // Drawing polyline in the Google Map for the i-th route 
    if(map != null) { 
     polylines.add(map.addPolyline(lineOptions)); 
     map.setOnPolylineClickListener(polylineListener); 
    } 
} 
//finally draw the shortest route 
lineOptions = new PolylineOptions(); 
lineOptions.width(18); 
lineOptions.color(ContextCompat.getColor(getActivity(), android.R.color.holo_blue_dark)); 
// Drawing polyline in the Google Map for the i-th route 
if(map != null) { 
    polylines.add(map.addPolyline(lineOptions)); 
} 

當用戶選擇另一條多段線時,您可以添加點擊式多段線偵聽器來改變顏色,就像在Google地圖中一樣。

IMP:您需要在最後一個原因中繪製最短路線,否則該路線的一部分可能會被替代路線重疊,因此會留下部分藍色和部分灰色路線。

希望這會有所幫助!