これはかなり簡単です。私はあなたがルートのリストまたは配列を持っていると信じています。 これを反復して、最小距離のインデックスを見つけます。 (通常は最初のものですが、確かめてください)。
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:最後に最短ルートを描画する必要があります。そうしないと、そのルートの一部が代替ルートでオーバーラップする可能性があります。したがって、青色と部分的な灰色のルートが残ります。
希望します。
ありがとうございますが、それは私の問題です。 :(私はすべてのルートを青に設定することしかできませんが、代替ルートの色を変更することはできませんが、これは私の古いコードでもあります。グレー。 :( –