我有一个包含纬度和经度(从sqlite数据库中检索)的Arraylist,我用它来设置地图上的标记,我正在尝试使用此代码在这些标记之间绘制所有可能的折线:
constructor
..但正如您在下面的屏幕截图中看到的那样,我没有获得所有可能的折线。
我在想嵌套循环,但我不知道如何实现它,非常感谢帮助!
答案 0 :(得分:1)
Random random = new Random();
for (LatLng positionI : list) {
for (LatLng positionJ : list) {
int color = Color.rgb(random.nextInt(255), random.nextInt(255), random.nextInt(255));
if (positionI != positionJ) {
Polyline line = CalRout.mMap.addPolyline(
new PolylineOptions().add(
positionI,
positionJ
).width(3).color(color)
);
}
}
}
答案 1 :(得分:0)
你的想法是正确的。要实现嵌套循环,只需在原始内容中插入另一个循环。
for (int i = 0; i < list.size() - 1; i++) {
for (int j = 0; j < list.size() - 1; j++) {
if (j != i) { // skip same point
LatLng src = list.get(i);
LatLng dest = list.get(j);
// mMap is the Map Object
Polyline line = CalRout.mMap.addPolyline(
new PolylineOptions().add(
new LatLng(src.latitude, src.longitude),
new LatLng(dest.latitude,dest.longitude)
).width(3).color(color)
);
}
}
}