在多个谷歌地图标记之间绘制所有可能的折线?

时间:2016-12-08 19:53:14

标签: java android google-maps google-maps-api-3

我有一个包含纬度和经度(从sqlite数据库中检索)的Arraylist,我用它来设置地图上的标记,我正在尝试使用此代码在这些标记之间绘制所有可能的折线:

constructor

..但正如您在下面的屏幕截图中看到的那样,我没有获得所有可能的折线。

Screenshot of result

我在想嵌套循环,但我不知道如何实现它,非常感谢帮助!

2 个答案:

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