如何删除在另一个方法上创建的折线

时间:2017-08-02 08:09:08

标签: android google-maps polyline

我希望删除已在另一个方法上创建的折线。有没有办法删除特定的折线?以下是我添加折线的代码。

public void lardizabalToTayuman() {
map.addPolyline(new PolylineOptions().add(
                new LatLng(14.617071, 120.989945),
                new LatLng(14.605693, 121.000863),
                new LatLng(14.605599, 121.000939),
                new LatLng(14.603097, 121.001786),
                new LatLng(14.602900, 121.001089),
                new LatLng(14.605246, 121.000252),
                new LatLng(14.613429, 120.992410),
                new LatLng(14.611934, 120.990768),
                new LatLng(14.617094, 120.985795)
                )
                        .width(5)
                        .color(Color.RED)

        );
}

我的onMapReady代码:

  public void onMapReady(GoogleMap googleMap) {
        map = googleMap;

        LatLng manila = new LatLng(14.5995, 120.9842);
        MarkerOptions option = new MarkerOptions();
        option.position(manila).title("Manila");
        map.addMarker(option);
        map.moveCamera(CameraUpdateFactory.newLatLng(manila));
        lardizabalToTayuman();
}

1 个答案:

答案 0 :(得分:2)

您可以获取Polyline的引用,只需调用.remove(),它将删除折线。

Exp:

 Polyline myPolyline = map.addPolyline(new PolylineOptions().add(
                new LatLng(14.617071, 120.989945),..
                ));

并在删除时只需拨打myPolyline.remove();

注意:

  

添加Polyline myPolyline作为全局变量,以便您可以   以其他方式访问。

编辑:

在你的情况下,你可以这样做,

private Polyline myPolyline;

public void lardizabalToTayuman() {
   myPolyline = map.addPolyline(new PolylineOptions().add(
                new LatLng(14.617071, 120.989945),
                new LatLng(14.605693, 121.000863),
                new LatLng(14.605599, 121.000939),
                new LatLng(14.603097, 121.001786),
                new LatLng(14.602900, 121.001089),
                new LatLng(14.605246, 121.000252),
                new LatLng(14.613429, 120.992410),
                new LatLng(14.611934, 120.990768),
                new LatLng(14.617094, 120.985795)
                )
                        .width(5)
                        .color(Color.RED)

        );
}

如果要删除,只需调用此方法,

private void removeLardizabalToTayuman() {
    if(myPolyline != null) {
       myPolyline.remove();
    }
}