gpt4 book ai didi

android - 在 map 上显示多条不同颜色的多段线

转载 作者:行者123 更新时间:2023-11-30 01:15:47 25 4
gpt4 key购买 nike

我正在使用此代码在谷歌地图上显示行车路线。问题是每当我想添加多条具有不同颜色的多段线时,我得到所有具有相同颜色的多段线,这是 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();
}

colorList 包含黑色和绿色,但是当显示路线时,我得到它们的颜色都相对于绿色(我尝试了多种组合,我总是得到最后一个循环的颜色)。有什么解决办法吗?

最佳答案

好吧,我遇到了同样的问题,我有多个路径在其中具有公共(public)区域。我试图将所选路径设为红色,其他所有颜色为灰色,但在两条多边形线的公共(public)区域中,我得到了颜色最后绘制的多边形线。我通过删除多边形线并重新绘制它们来解决我的问题。最后绘制了需要显示在顶部的多边形线。

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);
}

希望对您有所帮助。

关于android - 在 map 上显示多条不同颜色的多段线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37885385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com