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