每5秒在Google地图中绘制一条折线

时间:2018-12-05 10:15:12

标签: android multithreading maps

我基本上是想每5秒在google地图中绘制一条折线,我在ArrayList中添加了lat和lng并用于循环执行操作,现在如何在第一次绘制Polyline之后实现一个功能sleep(5s)然后再次执行?

所以我想在第一个

之后
new LatLng(latThread.get(i), lngThread.get(i)),
                            new LatLng(latThread.get(i+1), lngThread.get(i+1))

执行后,我希望线程休眠5秒,然后执行下一个for循环?

谢谢!

这是我的代码:

  @Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;

    //Thread



    ArrayList<Double> latThread = new ArrayList<>();
    ArrayList<Double>  lngThread=new ArrayList<>();



    //Thread for lat
    latThread.add(51.611290);
    latThread.add(51.591290);
    latThread.add(51.561290);
    latThread.add(51.531290);
    latThread.add(51.521290);
    latThread.add(51.501290);

    //Thread for lng
    lngThread.add(7.197380);
    lngThread.add(7.177380);
    lngThread.add(7.157380);
    lngThread.add(7.137380);
    lngThread.add(7.117380);
    lngThread.add(7.107380);




    for(int i = 0;i<5;i++) {
        //  LatLng l1=latThread.get(i);
        //    LatLng l1 = new LatLng(latThread.get(i), lngThread.get(i));

        Polyline polyline = googleMap.addPolyline(new PolylineOptions()
                .clickable(true)
                .add(


                        //new lat lng
                     //     new LatLng(list.get(0), 7.197380),
                     //   new LatLng(list.get(1), 7.177380

                        new LatLng(latThread.get(i), lngThread.get(i)),
                        new LatLng(latThread.get(i+1), lngThread.get(i+1))

                ));
        //polyline
        polyline.setEndCap(new RoundCap());
        polyline.setWidth(POLYLINE_STROKE_WIDTH_PX);
        polyline.setColor(COLOR_BLACK_ARGB);
        polyline.setJointType(JointType.ROUND);


        //  new LatLng(list.get(2),7.157380),
        //  new LatLng(list.get(3),7.137380)

        //    object.setEndCap(new RoundCap());
        //  object.setWidth(POLYLINE_STROKE_WIDTH_PX1);
        polyline.setColor(COLOR_BLACK_ARGB);
 //       mHandler.postDelayed(mUpdateTimeTask, 10000);

    }

    //Marker marker = new Marker();
    // Add a marker in Sydney and move the camera
    LatLng sydney = new LatLng(latThread.get(0),lngThread.get(0));

    mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
    mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));

    mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));

    //   mMap.setMaxZoomPreference(50);
    mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(sydney, 100.0f));

}

0 个答案:

没有答案