Android 在地图上显示具有不同颜色的多段线

Android 在地图上显示具有不同颜色的多段线,android,google-maps,polyline,Android,Google Maps,Polyline,我用这个代码在谷歌地图上显示一条驾驶路线。问题是,每当我想添加多条颜色不同的多段线时,我都会得到所有颜色相同的多段线,这是for循环中使用的最后一条 public void requestDirection(final LatLng nUserCurrentLoc, final LatLng objectiveLatLng) { Toast.makeText(getBaseContext(), "Requesting direction, just a moment...", Toast

我用这个代码在谷歌地图上显示一条驾驶路线。问题是,每当我想添加多条颜色不同的多段线时,我都会得到所有颜色相同的多段线,这是for循环中使用的最后一条

public void requestDirection(final LatLng nUserCurrentLoc, final LatLng objectiveLatLng) {
    Toast.makeText(getBaseContext(), "Requesting direction, just a moment...", Toast.LENGTH_SHORT).show();
    GoogleDirection.withServerKey(SERVER_API_KEY)
            .from(nUserCurrentLoc)
            .to(objectiveLatLng)
            .transportMode(TransportMode.DRIVING)
            .execute(this);

    uiHandler.postDelayed(new Runnable() {
        @Override
        public void run() {

            positionCamera(nUserCurrentLoc, objectiveLatLng);
        }
    }, 2800);
}
@Override
public void onDirectionSuccess(Direction direction, String rawBody) {

    if (direction.isOK()) {
        Toast.makeText(getBaseContext(), "Routes are marked successfully...", Toast.LENGTH_SHORT).show();
        final ArrayList<LatLng> directionPositionList = direction.getRouteList().get(0).getLegList().get(0).getDirectionPoint();
        int zzzz = -16711681;
        for(int i =0; i<colorList.size(); i++){
            String pls = (String)colorList.get(i);

            if (pls.equals("BLUE")) zzzz = -16711681;
            else if (pls.equals("RED")) zzzz = -65281;
            else if (pls.equals("GREEN")) zzzz = -256;
            else if (pls.equals("BLACK")) zzzz = -7829368;
            else if (pls.equals("DKGRAY")) zzzz = -3355444;

            itineraryLines = mMap.addPolyline(DirectionConverter.createPolyline(getApplicationContext(),
                    directionPositionList, 5, zzzz));
        }
    }else {
        Toast.makeText(getBaseContext(), "Routes are suspicious!", Toast.LENGTH_SHORT).show();
    }
}
@Override
public void onDirectionFailure(Throwable t) {
    Toast.makeText(getBaseContext(), "No routes found!", Toast.LENGTH_SHORT).show();
}
public void requestDirection(最终LatLng nUserCurrentLoc,最终LatLng objectiveLatLng){
Toast.makeText(getBaseContext(),“请求方向,请稍候…”,Toast.LENGTH_SHORT.show();
GoogleDirection.with服务器密钥(服务器API密钥)
.从(nUserCurrentLoc)
.to(objectivelatling)
.运输模式(运输模式.驾驶)
.执行(本);
uiHandler.postDelayed(新的Runnable(){
@凌驾
公开募捐{
位置摄像机(nUserCurrentLoc,ObjectiveLatling);
}
}, 2800);
}
@凌驾
public void onDirectionSuccess(方向、字符串主体){
if(direction.isOK()){
Toast.makeText(getBaseContext(),“路由已成功标记…”,Toast.LENGTH_SHORT.show();
final ArrayList directionPositionList=direction.getRouteList().get(0.getLegList().get(0.getDirectionPoint());
int zzzz=-16711681;

对于(int i=0;i我面临着同样的问题,我有多条路径,其中有公共区域。我试图使所选路径变成红色,其他所有颜色都变成灰色,但在两条多边形线的公共区域中,我得到了最后绘制的多边形线的颜色。我通过移除多边形线并重新绘制它们,得到了我的解决方案需要在顶部显示,最后绘制

public void getList(Direction direction,int a) 
{
    PolylineOptions abc=new PolylineOptions();

    ArrayList<LatLng> directionPositionList=new ArrayList<>();
    if(lines.size()>0)
    {

        for(int i=0;i<lines.size();i++)
        {
            lines.get(i).remove();
        }
        //map.clear();
        lines.clear();
        line=null;
    }


for (int i = 0; i < direction.getRouteList().size(); i++)
{
    line = null;

    for (int j = 0; j < direction.getRouteList().get(i).getLegList().size(); j++)
    {directionPositionList = direction.getRouteList().get(i).getLegList().get(j).getDirectionPoint();}

    if (i != a)
    {

          line = map.addPolyline(DirectionConverter.createPolyline(getContext(), directionPositionList, 5, Color.GRAY));
        lines.add(line);
        line.setClickable(true);
    }

    if(i==a)
    {
        line = map.addPolyline(DirectionConverter.createPolyline(getContext(), directionPositionList, 5, Color.TRANSPARENT));
        test=directionPositionList;
        lines.add(line);
        line.remove();
        index=i;
    }
}
    line = map.addPolyline(DirectionConverter.createPolyline(getContext(), test, 5, Color.RED));
    lines.set(index,line);
    line.setClickable(true);
}
public void getList(方向,int a)
{
PolylineOptions abc=新的PolylineOptions();
ArrayList directionPositionList=新建ArrayList();
如果(lines.size()>0)
{

对于(int i=0;我可以发布您的
DirectionConverter
类吗?